An interactive CLI that scaffolds an addi-stack app using modern web technologies.
- SvelteKit - Full-stack web framework
- Cloudflare Workers - Edge computing platform
- Cloudflare D1 - SQLite database
- Drizzle ORM - Type-safe database queries
- Better Auth - Authentication solution
- shadcn-svelte - Component library
- Tailwind CSS - Utility-first CSS framework
- Package Manager Agnostic - Works with npm, pnpm, yarn, bun, and deno
- Cross-Platform - Windows, macOS, and Linux support
- Interactive & Non-Interactive Modes - CLI flags for automation
- TypeScript Support - Full TypeScript integration
- Modern Tooling - ESLint, Prettier, and dev tools pre-configured
This CLI works on Windows, macOS, and Linux. On Windows, the CLI automatically handles path spaces and uses appropriate command execution to ensure compatibility.
Using your favorite package manager (npm, pnpm, yarn, bun, deno) run the following command:
npm|pnpm|yarn|bun|deno create addi-appThe CLI supports both interactive and non-interactive modes. You can specify an app name as a positional argument and use flags to skip prompts.
app-name- Name of the app to create (optional, will prompt if not provided)
--database, --no-database- Include/Exclude Database (Drizzle ORM)--auth, --no-auth- Include/Exclude Authentication (Better Auth)--useful, --no-useful- Include/Exclude Useful Packages (runed/neverthrow)--debug- Show verbose output from all commands (useful for troubleshooting)--help, -h- Show help message
# Interactive mode with defaults
npm create addi-app
# Create app named 'my-app'
npm create addi-app my-app
# Create app with specific options
npm create addi-app my-app --database --no-auth
# Non-interactive with all options
npm create addi-app --no-database --no-useful
# Show help
npm create addi-app --help
# Debug mode (verbose output)
npm create addi-app --debugIf you encounter issues, use the --debug flag to see verbose output from all commands, which can help identify specific problems:
npm create addi-app --debugOnce your app is created, you'll get a well-structured project with:
my-app/
├── src/
│ ├── lib/
│ │ ├── components/ # shadcn-svelte components
│ │ ├── server/ # Server-side code
│ │ │ ├── db/ # Database setup (if enabled)
│ │ │ └── auth.ts # Authentication config (if enabled)
│ │ └── utils.ts # Utility functions
│ ├── routes/ # SvelteKit routes
│ ├── app.html # App shell
│ └── app.d.ts # Type declarations
├── package.json
├── svelte.config.js
├── vite.config.ts
├── tailwind.config.js
├── drizzle.config.ts # If database enabled
└── wrangler.toml # Cloudflare config
This is a CLI tool for scaffolding the addi-stack. Contributions are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see the LICENSE file for details.