Overview of Custom Presetter Presets
CLAUDE.md instructions, MCP definitions, and plugin lists) across repositories to avoid manual copying.website·Indexed 29 days ago
https://presetter.devA tool for standardizing development environments and AI agent setups across repositories using opinionated configuration presets. It provides specialized presets for TypeScript, Node.js, Bun, React, ESM, and CommonJS, and includes a CLI for running scripts sequentially or in parallel. Features include support for monorepos, custom preset creation, and migration paths from Create React App (CRA).
CLAUDE.md instructions, MCP definitions, and plugin lists) across repositories to avoid manual copying.@presetter/preset-essentials, inheriting its defaults for TypeScript, ESLint 9, Prettier 3, Vitest 4, Husky, lint-staged, git-cliff, and zx. Its primary purpose is to surface Node.js ambient types (such as process, Buffer, and fs) so they type-check out of the box without manual wiring.@presetter/preset-web is a focused browser layer that provides browser-aware generated configuration. It does not extend @presetter/preset-essentials and does not include Storybook; it should be composed with other presets (like TypeScript, React, or Next.js) as needed.
Key features include:
tsconfig.json with DOM, DOM.Iterable, and ESNext libraries.globals.browser.eslint-plugin-better-tailwindcss for TailwindCSS linting, automatically discovering entry and config files..gitignore..eslintrc.js, tsconfig.json, and vitest.config.ts) and managing dev dependencies across TypeScript projects. It uses a preset-based approach to set up the development environment via a single command, ensuring consistency across multiple projects.@presetter/preset-essentials to avoid conflicts with Bun's built-in toolchain (bundler, test runner, and transpiler). It provides automatic typing for Bun APIs (e.g., Bun.serve, Bun.file) and configures build scripts to use bun build.CLAUDE.md, AGENTS.md, .mcp.json, .claude/settings.json) that often drift across repositories when copy-pasted. Presetter solves this by allowing teams to define a shared baseline in a versioned preset package. Repositories compose this preset in a presetter.config.ts file, which then generates the actual files the agent tools expect on disk. This ensures shared rules are intentional and differences are explicit overrides.Presetter v9 introduces several new standalone presets and CLI features:
New Presets:
@presetter/preset-node: Node-tuned TypeScript configuration.@presetter/preset-bun: Configuration for Bun projects.@presetter/preset-storybook: Storybook configuration with a11y and Vitest browser testing.New Features:
presetter bootstrap --packages: Bootstrap by package-name glob.lint-staged pre-commit and pre-push hooks.git-cliff for changelog generation.presetter core package along with the preset that matches your project architecture using pnpm.# For TypeScript Libraries
pnpm add -D presetter @presetter/preset-essentials
# For React Applications
pnpm add -D presetter @presetter/preset-react
# For ES Module Libraries
pnpm add -D presetter @presetter/preset-esm
# For Monorepos
pnpm add -D presetter @presetter/preset-monorepoPresetter provides specialized configurations to handle different JavaScript module formats and compatibility requirements. Depending on the target environment, you can use one of the following presets:
@presetter/preset-esm: Used for modern ES Modules development.@presetter/preset-cjs: Used for CommonJS modules, primarily for Node.js and legacy compatibility.@presetter/preset-hybrid: Used for dual CommonJS/ESM package delivery to ensure maximum compatibility across different environments.Choose a recommended preset based on your project's architecture and requirements:
| Project Type | Recommended Preset | Additional Options |
|---|---|---|
| Modern TypeScript App | @presetter/preset-esm | + strict for quality |
| NPM Library | @presetter/preset-hybrid | + rollup for bundling |
| React Application | @presetter/preset-react | Add web for browser globals |
| Node.js Service or CLI | @presetter/preset-node | + esm + strict |
| Bun Service or CLI | @presetter/preset-bun | Standalone (no essentials) |
| Legacy Node.js | @presetter/preset-cjs | + strict for quality |
| Monorepo | @presetter/preset-monorepo | Includes essentials + strict |
| Web Frontend | @presetter/preset-web | Browser globals + TailwindCSS linting |
@presetter/* scope. This version establishes TypeScript 6 as the public baseline and introduces three new presets: node, bun, and storybook.