Production-ready Bun projects in seconds.
bunkit is a CLI that scaffolds Bun-powered projects with the right defaults. Pick a preset, answer a few questions, and get a working project with TypeScript, linting, testing, and your choice of database, auth, and UI already wired up.
bunx bunkit-cli initbunkit ships 8 presets covering single apps through enterprise monorepos.
| Preset | Stack | Use case |
|---|---|---|
minimal |
Bun + TypeScript | CLIs, scripts, utilities |
nextjs |
Next.js 16 + React 19 + Tailwind CSS 4 | Web apps, landing pages |
hono-api |
Hono 4 + Bun.serve() | REST APIs with middleware |
bun-api |
Bun.serve() native routing | Zero-dependency APIs |
bun-fullstack |
Bun.serve() + React 19 + Tailwind CSS 4 | Full-stack without Next.js |
| Preset | Structure | Use case |
|---|---|---|
nextjs-monorepo |
2 Next.js apps + Hono API + shared packages | SaaS products |
bun-monorepo |
Bun.serve() web + API + shared packages | Full-stack without Next.js |
enterprise-monorepo |
3 Next.js apps + identity service + shared packages | Multi-product platforms |
Monorepo presets generate a complete workspace structure:
my-app/
apps/
web/ # Customer-facing app
platform/ # Admin dashboard
api/ # Backend API
packages/
ui/ # Shared shadcn/ui components
types/ # Shared TypeScript types
utils/ # Shared utilities
# Interactive — walks you through every option
bunx bunkit-cli init
# Direct — skip prompts, use sensible defaults
bunx bunkit-cli create nextjs my-app
bunx bunkit-cli create nextjs-monorepo my-saasbunkit init \
--name my-saas \
--preset nextjs-monorepo \
--database supabase-drizzle \
--auth better-auth \
--docker --cicdbunkit init Interactive project creation
bunkit create <preset> <name> Quick creation with defaults
bunkit add workspace Add an app to a monorepo
bunkit add package Add a shared package
bunkit add component Add shadcn/ui components
bunkit migrate <type> Run shadcn/ui migrations (radix, rtl, icons)
bunkit catalog add <pkg> [version] Add a package to the dependency catalog
bunkit catalog sync Sync catalog versions across workspaces
bunkit preset list List saved custom presets
Full CLI reference: docs/CLI.md
Every option below is available as an interactive prompt or a CLI flag.
Database — Postgres, MySQL, or SQLite with Drizzle ORM or Prisma. Supabase with optional Drizzle overlay.
Auth — better-auth, NextAuth.js, or Supabase Auth.
UI — shadcn/ui with 10 visual styles across Radix UI and Base UI foundations. Default: radix-maia with Iconoir icons.
Code quality — Biome or Ultracite. TypeScript strict mode by default.
Testing — Bun Test or Vitest.
Infrastructure — Docker multi-stage builds, GitHub Actions CI/CD, Redis caching, .env templates.
bunkit generates a fully configured shadcn/ui setup with the February 2026 features:
- 10 styles — 5 Radix UI (
radix-maia,radix-vega,radix-nova,radix-lyra,radix-mira) and 5 Base UI variants - Unified
radix-uipackage — no more 20+ individual@radix-ui/react-*imports - RTL support — optional right-to-left layout for all components
- Iconoir icons — 1,600+ tree-shakeable icons as the default library
- Monorepo-ready — shared
packages/uiwith centralized components.json
Migrate existing projects:
bunkit migrate radix # Upgrade to unified radix-ui package
bunkit migrate rtl # Enable RTL support
bunkit migrate icons # Switch icon librarybunkit takes advantage of Bun 1.3+ workspace features:
- Dependency catalogs — centralize versions in root
package.json, reference with"catalog:"in workspaces - Isolated installs — each workspace only accesses its declared dependencies
- Workspace protocol —
"workspace:*"for local package linking
- Bun 1.3.0+
- Node.js 20.9.0+ (for Next.js presets)
- CLI Reference — all commands and flags
- Presets Reference — detailed preset descriptions
- Changelog — version history
- Contributing — how to contribute