Modern CLI scaffolding tool for production-ready projects with 2025 tech stacks. Multi-language support (TypeScript, Python, Go, Rust, Deno), AI/ML integrations, and security best practices baked in.
- Multi-Language: TypeScript/Node, Python, Go, Rust, Deno support
- 2025 Tech Stacks: Supabase, Neon, Turso, Hono, TanStack Start, and more
- AI/ML Ready: Vector databases, embeddings, local AI (Ollama, MLX for Apple Silicon)
- Modern Auth: Clerk, Kinde, Auth0, Better Auth, Supabase Auth
- 14 Presets: One-command project setup for common use cases
- Interactive Docs: HTML documentation accessible via CLI
npm install -g project-kickoffOr run directly with npx:
npx project-kickoff create my-app# Create a new project with interactive wizard
kickoff create my-app
# Use a preset for instant setup
kickoff create my-app --preset saas-starter
# List all available presets
kickoff list
# Dry run to see what would be created
kickoff create my-app --dry-run# Open quick start guide in browser
kickoff docs
# Browse all presets with examples
kickoff presets
# Explore 2025 tech stacks
kickoff stacks| Preset | Stack | Description |
|---|---|---|
saas-starter |
Next.js + Supabase + Drizzle | Production SaaS with auth, DB, design system |
tanstack-hono |
TanStack Start + Turso + Better Auth | Type-safe full-stack with edge DB |
edge-api |
Hono + Turso + Bun | Blazing fast edge API |
api-microservice |
Hono + Neon + Drizzle | Serverless microservice |
fastapi-starter |
FastAPI + PostgreSQL + SQLAlchemy | Python API with modern tooling |
python-ml-api |
FastAPI + pgvector + LangChain | ML-ready Python API |
go-microservice |
Gin + PostgreSQL + GORM | Go microservice |
rust-api |
Axum + PostgreSQL + SQLx | Rust API with compile-time safety |
ai-rag-app |
Next.js + Supabase Vector + Vercel AI | RAG application |
ai-agent |
Hono + Ollama + LangChain | Local AI agent |
mlx-local |
FastAPI + MLX + Chroma | Apple Silicon optimized AI |
quick-cli |
Commander + TypeScript | CLI tool |
landing-page |
HTML/CSS/JS + nginx | Static site |
mcp-tool |
TypeScript + stdio/SSE | MCP server for AI tools |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
nextjs |
Next.js 15 | App Router, RSC, Server Actions | app/, components/, lib/, next.config.ts |
tanstack-start |
TanStack Start | React 19, type-safe routing | app/, routes/, tanstack.config.ts |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
vite-react |
Vite + React 19 | SPA with TypeScript | src/, vite.config.ts, index.html |
static |
HTML/CSS/JS | Static site with nginx | public/, nginx.conf |
| Type | Framework | Runtime | Generated Files |
|---|---|---|---|
hono-api |
Hono | Bun/Node | src/index.ts, src/routes/, src/middleware/ |
elysia-api |
Elysia | Bun | src/index.ts, src/routes/, Eden types |
express-api |
Express | Node | src/index.ts, src/routes/, src/middleware/ |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
fresh-api |
Fresh | Islands architecture | routes/, islands/, fresh.config.ts |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
fastapi |
FastAPI | Async, auto-docs | app/, main.py, requirements.txt/pyproject.toml |
litestar |
Litestar | High-performance | app/, main.py, requirements.txt |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
gin-api |
Gin | Fast, popular | main.go, handlers/, models/, go.mod |
fiber-api |
Fiber | Express-like | main.go, handlers/, go.mod |
echo-api |
Echo | Minimalist | main.go, handlers/, go.mod |
| Type | Framework | Description | Generated Files |
|---|---|---|---|
axum-api |
Axum | Tokio-based | src/main.rs, src/handlers/, Cargo.toml |
actix-api |
Actix | Actor-based, fastest | src/main.rs, src/handlers/, Cargo.toml |
| Type | Description | Generated Files |
|---|---|---|
cli |
Commander CLI | src/index.ts, src/commands/, optional prompts/config |
mcp-server |
MCP server | src/index.ts, src/tools/, stdio/SSE transport |
library |
npm package | src/index.ts, tsup.config.ts, vitest/jest |
worker |
Background jobs | src/worker.ts, BullMQ + Redis |
| Provider | Type | Features | Required Keys | Monthly Cost |
|---|---|---|---|---|
supabase |
PostgreSQL | Auth + Storage + Realtime | SUPABASE_URL, SUPABASE_ANON_KEY |
Free tier / $25+ |
neon |
PostgreSQL | Branching, edge, scale-to-zero | DATABASE_URL |
Free tier / $19+ |
turso |
SQLite (libSQL) | Edge-first, global replication | TURSO_DATABASE_URL, TURSO_AUTH_TOKEN |
Free tier / $29+ |
convex |
Reactive BaaS | Real-time, type-safe | CONVEX_DEPLOYMENT |
Free tier / $25+ |
| Provider | Type | Features | Required Keys | Monthly Cost |
|---|---|---|---|---|
pocketbase |
SQLite BaaS | Single file, auth, realtime | None (self-hosted) | Free (self-hosted) |
firebase |
NoSQL | Google BaaS, auth, storage | FIREBASE_* config |
Free tier / Pay-as-you-go |
| Provider | Type | Docker Image | Memory | Generated Files |
|---|---|---|---|---|
postgres-local |
PostgreSQL | postgres:16-alpine |
256MB+ | docker-compose.yml, init.sql |
mysql-local |
MySQL | mysql:8 |
512MB+ | docker-compose.yml, init.sql |
mongodb-local |
MongoDB | mongo:7 |
512MB+ | docker-compose.yml |
sqlite |
SQLite | None | N/A | db/ directory |
| Provider | Type | Features | Required Keys | Monthly Cost |
|---|---|---|---|---|
planetscale |
MySQL + Vitess | Branching, serverless | DATABASE_URL |
Free tier / $29+ |
cockroachdb |
Distributed SQL | Multi-region, ACID | DATABASE_URL |
Free tier / $0.50/vCPU-hr |
| ORM | Style | Features | Generated Files |
|---|---|---|---|
drizzle |
SQL-like | Fast, lightweight, type-safe | src/db/schema.ts, drizzle.config.ts |
prisma |
Schema-first | Great DX, migrations | prisma/schema.prisma, src/db/client.ts |
kysely |
Query builder | Type-safe SQL | src/db/kysely.ts |
| ORM | Style | Features | Generated Files |
|---|---|---|---|
sqlalchemy |
Standard | Mature, flexible | app/models.py, app/database.py |
sqlmodel |
Pydantic | FastAPI creator's ORM | app/models.py |
tortoise |
Async | Django-like, async-first | app/models.py |
| ORM | Style | Features | Generated Files |
|---|---|---|---|
gorm |
Full ORM | Auto-migrations, hooks | models/, database/db.go |
sqlx-go |
Raw SQL | Type-safe, no ORM magic | database/queries.go |
| ORM | Style | Features | Generated Files |
|---|---|---|---|
sqlx-rust |
Compile-time | Async, checked queries | src/db.rs, migrations/ |
sea-orm |
Active Record | Async, built on SQLx | src/entities/, src/db.rs |
diesel |
Sync | Mature, type-safe | src/schema.rs, diesel.toml |
| Provider | Features | Required Keys | Monthly Cost |
|---|---|---|---|
clerk |
Pre-built components, social login | CLERK_SECRET_KEY, NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Free tier / $25+ |
kinde |
B2B-focused, SAML SSO, feature flags | KINDE_* config |
Free tier / $25+ |
auth0 |
Enterprise-grade, Okta-owned | AUTH0_* config |
Free tier / $23+ |
workos |
Enterprise SSO, directory sync | WORKOS_* config |
Free tier / Pay-as-you-go |
| Provider | Features | Required Keys | Generated Files |
|---|---|---|---|
better-auth |
Modern, great DX | BETTER_AUTH_SECRET |
src/lib/auth.ts |
lucia |
Lightweight, minimal | LUCIA_* config |
src/lib/auth/ |
authjs |
NextAuth successor | AUTH_SECRET, AUTH_* |
auth.ts, middleware.ts |
| Provider | Platform | Features | Required Keys |
|---|---|---|---|
supabase-auth |
Supabase | Built-in with DB | Supabase keys |
convex-auth |
Convex | Built-in with DB | Convex keys |
firebase-auth |
Firebase | Built-in with DB | Firebase config |
pocketbase-auth |
PocketBase | Built-in with DB | None |
| Framework | Language | Features | Required Keys | Generated Files |
|---|---|---|---|---|
vercel-ai |
TypeScript | React hooks, streaming | OPENAI_API_KEY or other |
src/lib/ai.ts, app/api/chat/ |
langchain |
Python/JS | Chains, agents, RAG | Model provider keys | src/lib/langchain/ |
llamaindex |
Python/JS | Data framework, RAG | Model provider keys | src/lib/llamaindex/ |
mastra |
TypeScript | TypeScript-first | Model provider keys | src/lib/mastra/ |
instructor |
Python/JS | Structured outputs | Model provider keys | src/lib/instructor/ |
| Provider | Type | Features | Required Keys | Monthly Cost |
|---|---|---|---|---|
pinecone |
Managed | Scalable, production-ready | PINECONE_API_KEY |
Free tier / $70+ |
supabase-vector |
pgvector | Built into Supabase | Supabase keys | Included |
pgvector |
PostgreSQL ext | Use existing Postgres | None | Included with DB |
qdrant |
Self-hosted | Rust-based, fast | None | Free (self-hosted) |
chroma |
Self-hosted | Lightweight, dev-friendly | None | Free (self-hosted) |
weaviate |
Self-hosted | GraphQL, hybrid search | None | Free (self-hosted) |
turbopuffer |
Managed | Serverless, edge | TURBOPUFFER_API_KEY |
Pay-as-you-go |
milvus |
Self-hosted | Enterprise, distributed | None | Free (self-hosted) |
| Provider | Models | Required Keys | Cost per 1M tokens |
|---|---|---|---|
openai |
text-embedding-3-small/large | OPENAI_API_KEY |
$0.02 / $0.13 |
voyage |
voyage-large-2, code-optimized | VOYAGE_API_KEY |
$0.10+ |
cohere |
embed-english-v3 | COHERE_API_KEY |
$0.10 |
google |
text-embedding-004 | GOOGLE_API_KEY |
$0.025 |
together |
Various | TOGETHER_API_KEY |
$0.008 |
ollama |
nomic-embed, mxbai | None (local) | Free |
huggingface |
sentence-transformers | None (local) | Free |
fastembed |
Lightweight | None (local) | Free |
| Provider | Platform | Features | Memory | GPU Required |
|---|---|---|---|---|
ollama |
Cross-platform | Easy setup, many models | 8GB+ | Optional |
lmstudio |
Desktop | GUI + server mode | 8GB+ | Optional |
jan |
Desktop | Desktop app + API | 8GB+ | Optional |
mlx |
Apple Silicon | MLX framework, fast on Mac | 16GB+ | No (uses Neural Engine) |
mlx-lm |
Apple Silicon | MLX LLM package | 16GB+ | No |
vllm |
Linux/CUDA | Production serving | 16GB+ | Yes (CUDA) |
localai |
Docker | OpenAI drop-in replacement | 8GB+ | Optional |
tgi |
Docker | HuggingFace inference | 16GB+ | Yes (CUDA) |
llamacpp |
Cross-platform | Low-level, max control | 8GB+ | Optional |
text-gen-webui |
Docker | Full-featured UI | 16GB+ | Yes (recommended) |
| Server | Features | Config File | Use Case |
|---|---|---|---|
caddy |
Auto-HTTPS, simple config | Caddyfile |
Recommended for most projects |
nginx |
High-performance, battle-tested | nginx.conf |
High-traffic, complex routing |
traefik |
Docker/K8s native, auto-discovery | traefik.yml |
Container orchestration |
| Runtime | Version | Best For | Package Manager |
|---|---|---|---|
node |
20+ | Compatibility, ecosystem | npm/pnpm/yarn |
bun |
1.0+ | Speed, all-in-one | bun |
deno |
2.0+ | Security, web standards | deno |
python |
3.11+ | ML/AI, data science | pip/poetry/uv |
go |
1.21+ | Performance, simplicity | go mod |
rust |
stable | Safety, performance | cargo |
| Manager | Features | Generated Files |
|---|---|---|
uv |
Fast, Rust-based (recommended) | pyproject.toml, uv.lock |
poetry |
Dependency management + publishing | pyproject.toml, poetry.lock |
pip |
Standard, battle-tested | requirements.txt |
pipenv |
Pipfile + lock file | Pipfile, Pipfile.lock |
| Configuration | RAM | CPU | Storage | Cost |
|---|---|---|---|---|
| Minimal (Node/Bun) | 8GB | 2 cores | 10GB | - |
| Standard (with Docker) | 16GB | 4 cores | 50GB | - |
| AI/ML (local models) | 32GB+ | 8 cores | 100GB+ | - |
| Apple Silicon AI (MLX) | 16GB+ unified | M1/M2/M3/M4 | 50GB+ | - |
| Provider | Config | RAM | CPU | Cost | Best For |
|---|---|---|---|---|---|
| Hetzner | CX22 | 4GB | 2 vCPU | $4.50 | Basic APIs |
| Hetzner | CX32 | 8GB | 4 vCPU | $8 | Standard apps |
| Hetzner | CX42 | 16GB | 8 vCPU | $16 | Heavy workloads |
| Railway | Starter | 8GB | 8 vCPU | $5+ | Serverless |
| Fly.io | Small | 1GB | 1 shared | $5 | Edge deployment |
| DigitalOcean | Basic | 4GB | 2 vCPU | $24 | General purpose |
| Provider | GPU | RAM | Cost/hour | Best For |
|---|---|---|---|---|
| RunPod | RTX 3090 | 24GB | $0.39 | Development |
| Lambda Labs | A10 | 24GB | $0.75 | Production |
| Vast.ai | Various | Varies | $0.20+ | Budget |
- Project name: kebab-case, max 50 characters
- GitHub username: For deployment workflows
| Feature | Required Data | Environment Variables |
|---|---|---|
| Supabase | Supabase project | SUPABASE_URL, SUPABASE_ANON_KEY |
| Neon | Neon project | DATABASE_URL |
| Turso | Turso database | TURSO_DATABASE_URL, TURSO_AUTH_TOKEN |
| Clerk | Clerk app | CLERK_SECRET_KEY, NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
| Kinde | Kinde app | KINDE_ISSUER_URL, KINDE_CLIENT_ID, KINDE_CLIENT_SECRET |
| Auth0 | Auth0 tenant | AUTH0_SECRET, AUTH0_BASE_URL, AUTH0_ISSUER_BASE_URL, AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET |
| OpenAI | API key | OPENAI_API_KEY |
| Pinecone | API key + index | PINECONE_API_KEY, PINECONE_INDEX |
| Production domain | Domain name | DOMAIN (for Traefik/Caddy) |
| Go projects | Module path | go.mod path |
| Rust projects | Crate name | Cargo.toml |
project/
├── CLAUDE.md # AI coding assistant context
├── README.md # Project documentation
├── .gitignore # Git ignore rules
├── .env.example # Environment template
└── .github/
└── workflows/
└── deploy.yml # CI/CD pipeline
project/
├── Dockerfile # Multi-stage, secure build
├── docker-compose.yml # With resource limits
└── .dockerignore # Docker ignore
project/
├── src/db/
│ ├── schema.ts # Drizzle/Prisma schema
│ └── client.ts # Database client
└── drizzle.config.ts # or prisma/schema.prisma
project/
├── src/lib/auth/
│ ├── index.ts # Auth configuration
│ └── middleware.ts # Auth middleware
└── middleware.ts # Route protection
project/
├── src/lib/ai/
│ ├── index.ts # AI client setup
│ ├── embeddings.ts # Embedding functions
│ └── chains/ # LangChain chains (if applicable)
└── .env.example # With AI API keys
Kickoff includes intelligent stack validation that catches compatibility issues before you start coding.
| Mode | Speed | Requires API Key | Best For |
|---|---|---|---|
| Rule-based | Instant | No | Known incompatibilities, common mistakes |
| LLM-enhanced | 2-5s | Yes | Architecture advice, edge cases, recommendations |
# Rule-based validation only (default, always runs)
kickoff create my-app
# Enable AI-enhanced validation
kickoff create my-app --validate
# Choose specific LLM provider
kickoff create my-app --validate --provider anthropic
kickoff create my-app --validate --provider openai
kickoff create my-app --validate --provider gemini| Provider | Model | Environment Variable |
|---|---|---|
| Anthropic | Claude Sonnet 4.5 | ANTHROPIC_API_KEY |
| OpenAI | GPT-5 | OPENAI_API_KEY |
| Gemini 3 Flash | GEMINI_API_KEY |
Set any of these in your .env file. The validator auto-detects available providers and falls back gracefully.
Rule-based checks:
- D1 + Prisma incompatibility (edge runtime issues)
- NoSQL databases with SQL ORMs
- Platform-specific auth requiring matching database
- Apple Silicon-only options (MLX) on other platforms
AI-enhanced analysis:
- Architecture recommendations for your stack
- Performance considerations (e.g., Turbopuffer cold query latency)
- Better alternatives based on your use case
- Edge case compatibility issues
Stack Validation Results
──────────────────────────────────────────────────
📋 Rule-Based Validation:
✅ No compatibility issues found
🤖 AI-Enhanced Validation (Claude - 92% confidence):
⚠️ Warning: Better-Auth + Next.js + Bun
Build failures reported with this combination
💡 Consider using Node.js runtime or Clerk for auth
💡 Recommendations:
• Consider adding rate limiting for production API
• Supabase RLS pairs well with your auth choice
──────────────────────────────────────────────────
✅ Validation PASSED with warnings - Review recommendations
Based on production incident lessons:
- Never build on VPS: GitHub Actions builds only
- Non-root containers: All Dockerfiles use
USER appuser(uid 1001) - Resource limits: CPU/memory limits in docker-compose
- Security headers: Traefik/Caddy middleware for HSTS, CSP, XSS
- Health endpoints:
/api/healthor/healthfor monitoring - Secrets management:
.env.exampletemplates, no hardcoded secrets - Security scanning: npm audit, Trivy in CI/CD
# Run all tests
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage# Clone
git clone https://github.com/abe238/project-kickoff.git
cd project-kickoff
# Install
npm install
# Development
npm run dev
# Build
npm run build
# Test
npm testISC
Built with lessons learned from production deployments, security incidents, and real-world AI/ML applications.
Hola. I'm Abe Diaz. By day, I'm Sr. Manager of Disaster Relief at Amazon, leading a team that uses AI and logistics to deliver 26+ million relief items and response technology across 200+ disasters worldwide. On weekends, I build artisanal developer tools like this :-P
| Project | Description |
|---|---|
| gg-deploy | Domain → GitHub Pages in 60 seconds |
| gemini-deep-research | CLI for Gemini's Deep Research Agent |
| aipm-resume-analyzer | Resume analysis against AI PM frameworks |