Bake fresh projects from recipes - a modular project scaffolder with best-in-class tooling pre-configured.
Starting a new project means hours of setup: configuring TypeScript, choosing a linter, setting up formatters, writing CI pipelines, configuring Docker, creating Makefiles. This tool eliminates that friction.
Run one command, answer a few questions, and get a production-ready project with modern tooling.
curl -fsSL https://raw.githubusercontent.com/jvalentini/bakery/master/install.sh | bashThis downloads and runs the interactive wizard directly. No permanent installation required.
# With bun
bun install -g bakery
# With npm
npm install -g bakerygit clone https://github.com/jvalentini/bakery.git
cd bakery
make install
bun run src/cli.ts# Run the interactive wizard
bakery
# Or specify output directory
bakery -o ./my-projectBakery offers multiple project archetypes (recipes):
| Archetype | Description | Best For |
|---|---|---|
| CLI Tool | Command-line applications | DevOps tools, utilities, automation |
| REST API | Backend with Hono/Express/Elysia | Web services, microservices |
| Full-Stack | Monorepo with API + Web | SaaS apps, dashboards |
| Effect CLI/API | Effect-ts patterns for backend/CLI | Type-safe, functional backend |
| Effect Full-Stack | Effect + Convex + TanStack Start | Real-time collaborative apps |
Perfect for command-line utilities, DevOps tools, and automation scripts.
bakery -o my-cli
# Select: CLI Tool
# Your CLI with binary compilation, version management, and help generationIncludes: Bun for native binary compilation, commander.js for CLI framework, automatic version flags.
Backend services with your choice of framework.
bakery -o my-api
# Select: REST API
# Choose: Hono, Express, or ElysiaFramework Options:
- Hono - Lightweight, fast, great with Bun. Best for edge deployments.
- Express - Battle-tested, huge ecosystem. Best for complex enterprise apps.
- Elysia - Bun-native, TypeScript-first. Best for end-to-end type safety.
Monorepo with API backend and web frontend in coordinated packages.
bakery -o my-app
# Select: Full-Stack
# Choose API: Hono/Express/Elysia
# Choose Web: React/Next.js/Vue/TanStack StartWeb Framework Options:
- React (Vite) - Fast development, flexible architecture
- Next.js - SSR, API routes, great DX
- Vue - Progressive, gentle learning curve
- TanStack Start - Full-stack type safety, file-based routing
For projects using Effect-ts for robust, type-safe functional programming.
bakery -o my-effect-app
# Select: Effect CLI/API or Effect Full-StackEffect Full-Stack combines:
- Effect for type-safe business logic
- Convex for real-time database
- TanStack Start for the frontend
Enhance any archetype with optional features:
| Addon | Description |
|---|---|
| Docker | Dockerfile + docker-compose for containerized development |
| GitHub Actions | CI/CD pipelines, automated testing, binary releases |
| Convex | Real-time database with automatic sync |
| TanStack Query | Powerful data fetching and caching |
| TanStack Router | Type-safe routing for React |
| TanStack Form | Performant, type-safe forms |
| TypeDoc | API documentation generation |
| Trivy | Container security scanning |
All generated projects include:
- TypeScript + Bun - Fast development and execution
- Biome + Oxlint - Comprehensive linting and formatting
- Lefthook - Git hooks that catch issues before commit
- Makefile - Consistent commands for humans and AI agents
Every project uses the same Makefile interface:
make install # Install dependencies
make dev # Run in development mode
make check # Run typecheck + lint + oxlint
make test # Run tests
make build # Build to dist/
make build-binary # Build native binary (CLI projects)Bakery supports plugins for extending functionality with custom archetypes, addons, and templates.
Plugins are loaded automatically from:
- Local project -
./bakery-plugins/plugin-name/ - User directory -
~/.bakery/plugins/plugin-name/ - npm packages -
bakery-plugin-*in node_modules
# List installed plugins
bakery plugins
# Plugins automatically add their archetypes/addons to the wizard
bakerySee docs/plugins.md for the complete plugin authoring guide.
A minimal plugin structure:
my-plugin/
├── plugin.json # Plugin manifest
├── templates/
│ └── my-addon/
│ ├── template.json
│ └── files/
└── index.ts # Optional: hooks and prompts
4x faster than Node.js, built-in TypeScript support, fast package installs, native binary compilation.
Replaces ESLint + Prettier with a single, faster tool. Written in Rust, 25x faster than ESLint.
Supplementary linter with TypeScript type-aware rules. Catches async/promise bugs that Biome misses. Written in Rust, extremely fast.
Git hooks manager that runs checks automatically on commit/push. Faster than Husky, written in Go.
# Clone this repo
git clone https://github.com/jvalentini/bakery.git
cd bakery
# Install dependencies
make install
# Run checks
make check
# Run tests
make test
# Test the wizard
bun run src/cli.ts --helpSee CONTRIBUTING.md for guidelines on contributing to Bakery.
MIT
