Stack Selector
Choose tech stack automatically. User doesn't decide.
Decision Tree
What type of app?
├─ Web app with auth/db
│ ├─ Needs real-time? → nextjs-supabase (Supabase realtime)
│ ├─ Heavy backend logic? → fastapi-postgres
│ └─ Default → nextjs-supabase
│
├─ API/Backend only
│ ├─ Python/ML focus? → fastapi-postgres
│ └─ Edge/serverless? → hono-drizzle
│
├─ Landing page / Marketing
│ └─ → landing-page (static)
│
└─ Unsure → nextjs-supabase (most flexible)
Templates
| Template |
Stack |
Best For |
| nextjs-supabase |
Next.js 15, Supabase, Tailwind |
Web apps, SaaS, dashboards |
| fastapi-postgres |
FastAPI, PostgreSQL, SQLAlchemy |
APIs, ML backends |
| hono-drizzle |
Hono, Drizzle, Cloudflare |
Edge, serverless |
| landing-page |
Astro, Tailwind |
Marketing, portfolios |
Selection Criteria
| Requirement |
Template |
| "auth", "login", "users" |
nextjs-supabase |
| "api", "backend", "python" |
fastapi-postgres |
| "fast", "edge", "serverless" |
hono-drizzle |
| "landing", "marketing", "simple" |
landing-page |
| "dashboard", "admin" |
nextjs-supabase |
| "ml", "ai", "data" |
fastapi-postgres |
Usage
Called internally by /mvp:build:
- Analyze PRD from idea-validation
- Match requirements to criteria
- Select template
- Generate project from template
User sees: "Setting up your project..." (not the decision)
1---2name: stack-selector3description: Automatically choose the best tech stack based on requirements. User never sees this. Use when: starting a new project after idea validation. Triggers: internal use only, called by build pipeline.4---5
6# Stack Selector
7
8Choose tech stack automatically. User doesn't decide.
9
10## Decision Tree
11
12```
13What type of app?
14├─ Web app with auth/db
15│ ├─ Needs real-time? → nextjs-supabase (Supabase realtime)
16│ ├─ Heavy backend logic? → fastapi-postgres
17│ └─ Default → nextjs-supabase
18│
19├─ API/Backend only
20│ ├─ Python/ML focus? → fastapi-postgres
21│ └─ Edge/serverless? → hono-drizzle
22│
23├─ Landing page / Marketing
24│ └─ → landing-page (static)
25│
26└─ Unsure → nextjs-supabase (most flexible)
27```
28
29## Templates
30
31| Template | Stack | Best For |
32|----------|-------|----------|
33| nextjs-supabase | Next.js 15, Supabase, Tailwind | Web apps, SaaS, dashboards |
34| fastapi-postgres | FastAPI, PostgreSQL, SQLAlchemy | APIs, ML backends |
35| hono-drizzle | Hono, Drizzle, Cloudflare | Edge, serverless |
36| landing-page | Astro, Tailwind | Marketing, portfolios |
37
38## Selection Criteria
39
40| Requirement | Template |
41|-------------|----------|
42| "auth", "login", "users" | nextjs-supabase |
43| "api", "backend", "python" | fastapi-postgres |
44| "fast", "edge", "serverless" | hono-drizzle |
45| "landing", "marketing", "simple" | landing-page |
46| "dashboard", "admin" | nextjs-supabase |
47| "ml", "ai", "data" | fastapi-postgres |
48
49## Usage
50
51Called internally by `/mvp:build`:
52
531. Analyze PRD from idea-validation
542. Match requirements to criteria
553. Select template
564. Generate project from template
57
58User sees: "Setting up your project..." (not the decision)