STEP 02
Choose your tier
The rule: build one tier below where your ego says. You can always move up — you cannot get back the six weeks you spent building infrastructure for users who never arrived.
THE 30-SECOND DECISION TREE
Does anyone log in?
│
├─ No ──────────────────────────────────────→ TIER 0 Validate
│
└─ Yes — are you charging money today?
│
├─ No ───────────────────────────────────→ TIER 1 MVP
│
└─ Yes — how many kinds of user?
│
├─ 1–2 kinds, simple ownership ───────→ TIER 2 SaaS
│
└─ 3+ kinds, or scoped permissions ───→ TIER 3 PlatformA site, not an app
A landing page that explains the product and collects emails. 100 signups means build it. Four means you just saved three months — the highest-return three days in software.
- FrontendNext.js + Tailwind + shadcn/ui
- FormsTally · Google Sheet · Resend
- DeployVercel
GRADUATE WHEN
- People are asking when they can actually use it.
$npx create-vibe-app --tier 0
One codebase. One deploy. One git push.
A complete, launchable product — thousands of real businesses run on exactly this stack. No separate backend, nothing you don't need at 100 users.
- FrontendNext.js — App Router, TypeScript
- UIshadcn/ui + Tailwind
- BackendNext.js Route Handlers (same project)
- DatabaseSupabase — managed Postgres
- AuthSupabase Auth — email + Google
- FilesSupabase Storage
- DeployVercel
GRADUATE WHEN
- Money is moving through it.
- A data leak would be an incident, not an embarrassment.
- You need work that outlives a request, or a mobile app.
$npx create-vibe-app --tier 1
The backend moves into its own service.
People pay you, and downtime costs money. The single most important architectural decision in the guide: business logic gets its own home, and your API becomes reusable.
- BackendNode + Express + TypeScript, own deploy
- DB accessPrisma migrations + Kysely typed SQL
- CachingTanStack Query — dashboards feel instant
- StorageS3 / GCS with signed URLs
- EmailResend or AWS SES
- PaymentsStripe / Razorpay
- ErrorsSentry
GRADUATE WHEN
- Three or more kinds of user with different permissions.
- Work must happen on a schedule with nobody watching.
- You need push notifications to a phone.
$npx create-vibe-app --tier 2
The whole playbook, applied.
The product is the business. Multiple user roles, scoped permissions, an admin console, background jobs, push + PWA, and an audit trail — the full module list, wired together and running in production.
- RBACrequireAuth → requireRole → requireResourceAccess
- Admin consoleOwn route group, nav and theming
- Background jobsScheduled sync · bulk mail · reports
- Push + PWAInstallable, no app store needed
- ObservabilityStructured logs + audit trail
- AI featuresOnly if core — never decoration
GRADUATE WHEN
- This is the top. From here, you scale it — you don't rebuild it.
$npx create-vibe-app --tier 3
THREE RULES FOR MOVING BETWEEN TIERS
- 1. Move when a checkbox forces you — the graduation lists are the trigger. "It feels small" is not.
- 2. Moving up is a refactor, not a rewrite — if you followed the API-layer card from day one, it's days, not months.
- 3. You can be split-tier — a Tier 2 backend with a Tier 1 admin panel is completely reasonable.