0.0.7 • Published 6 months ago
bunzilla v0.0.7
The Ultimate Bun Project Generator
🚀 Quick Start
# Option 1: Run directly with bunx
bunx bunzilla create my-awesome-app
# Option 2: Install globally
bun add -g bunzilla
bunzilla create my-awesome-app
# Navigate to your project
cd my-awesome-app
# Start development
bun dev
📦 Available Commands
Create Project
bunzilla create [options]
Options:
--name <name> Project name
--type <type> Project type (utility|webapp|api|monorepo|cli)
--frontend <fw> Frontend framework for webapp (react|solid|svelte)
--framework <fw> API framework (hono|fastify|express)
--defaults Skip prompts and use defaults
By default, running bunzilla create
without options starts an interactive CLI that guides you through project creation:
# Interactive mode (recommended)
bunzilla create
# Will prompt you to:
# 1. Enter project name
# 2. Select project type
# 3. Choose framework/platform based on type:
# - Webapp: React, Solid, or Svelte
# - API: Hono, Fastify, or Express
# - Monorepo: Select initial packages
Use the --defaults
flag to skip prompts and use configured defaults:
# Non-interactive mode with defaults
bunzilla create my-app --type webapp --defaults # Uses default frontend (React)
bunzilla create my-api --type api --defaults # Uses default framework (Hono)
Evolve Project
bunzilla evolve [options]
Options:
--add <feature> Add features (cli|frontend|api)
--convert <type> Convert to different project type
--project-dir <dir> Target project directory
Manage Configuration
bunzilla config [options]
Options:
--get <key> Get config value
--set <key> <value> Set config value
--list List all config values
--delete <key> Delete config value
🎨 Project Types
Utility Package
- TypeScript configuration
- Testing with Vitest
- Linting with Biome
- Build configuration
- NPM publishing setup
Web Application
- React, Solid, or Svelte
- TailwindCSS for styling
- React Router for navigation
- React Query for data fetching
- Vite for fast development
API Service
- Hono, Fastify, or Express
- OpenAPI documentation
- JWT authentication
- Database integration with Drizzle
- End-to-end type safety
CLI Tool
- Interactive command-line interface
- Configuration management
- Update notifications
- Progress spinners
- Colorful output
Monorepo
- Workspace management
- Shared configurations
- Independent versioning
- Build pipeline
- Cross-package testing
🛠 Development Scripts
All projects include these common scripts:
bun run dev # Start development
bun run build # Build for production
bun run test # Run tests
bun run lint # Run linter
bun run format # Format code
bun run typecheck # Type check
🔧 Configuration
Bunzilla stores global configuration in ~/.bunzilla/config.json
. Default values:
{
"defaultTemplate": "utility",
"defaultFramework": "hono",
"defaultFrontend": "react"
}
🔄 Evolution Paths
Utility → CLI
Start with a simple utility package and evolve it into a CLI tool:
# Create a utility package
bunzilla create my-package --type utility
# Later, add CLI capabilities
bunzilla evolve --add cli --project-dir my-package
API → Full Stack
Begin with a backend API and gradually add frontend components:
# Create an API service
bunzilla create my-api --type api --framework hono
# Later, add frontend
bunzilla evolve --add frontend --project-dir my-api
Single Package → Monorepo
Scale any project to a monorepo structure when needed:
# Convert existing project to monorepo
bunzilla evolve --convert monorepo --project-dir my-project
🤝 Contributing
We welcome contributions! Feel free to:
- Submit bug reports
- Propose new features
- Create pull requests
- Improve documentation
📝 License
MIT © Bunzilla
Built with ❤️ by developers, for developers