Short version: The Vercel SaaS starter is genuinely the best free starting point for Next.js + Drizzle. It's clean, official, and well-documented. Already is what you build after you realise you need billing, auth hardening, multi-tenancy, an admin dashboard, and background jobs before you can ship your product. It ships all of those — for $199, once.
Feature matrix
| Feature | Next.js SaaS Starter | Already |
|---|---|---|
| Framework & Language | ||
| Next.js App Router | ✓ | ✓ |
| TypeScript | ✓ | ✓ |
| Tailwind CSS | ✓ | ✓ |
| shadcn/ui components | ✓ | ✓ |
| Drizzle ORM | ✓ | ✓ |
| Database | raw Postgres | Supabase Postgres |
| Authentication | ||
| Auth.js (NextAuth v5) | ✓ | — |
| Supabase Auth | — | ✓ |
| Basic sign-in / sign-up forms | ✓ | ✓ |
| OAuth (Google, GitHub) | ✓ | ✓ |
| Magic link (passwordless) | — | ✓ |
| TOTP 2FA (authenticator app) | — | ✓ |
| Passkeys (WebAuthn) | — | ✓ |
| Auth event audit log | — | ✓ |
| Billing & Payments | ||
| Stripe integration | ~basic | ✓ |
| Idempotent webhook handler | — | ✓ |
| Dead-letter queue for failed webhooks | — | ✓ |
| Plan-based feature gating | — | ✓ |
| Customer billing portal | — | ✓ |
| Trial + grace period | — | ✓ |
| Multi-tenancy & Orgs | ||
| Organisation / workspace model | — | ✓ |
| Role-based access control (RBAC) | — | ✓ |
| Member invitations | — | ✓ |
| Row-level security (Postgres RLS) | — | ✓ |
| Admin dashboard with impersonation | — | ✓ |
| Messaging | ||
| Transactional email | — | ✓ |
| In-app notifications (Realtime) | — | ✓ |
| Background Work | ||
| Cron-based background jobs | — | ✓ |
| Postgres-backed job queue | — | ✓ |
| API key management (hashed at rest) | — | ✓ |
| Security & Hardening | ||
| CSP nonces | — | ✓ |
| Rate limiting | — | ✓ |
| Suspicious activity detection | — | ✓ |
| GDPR export + deletion endpoints | — | ✓ |
| AI & Developer Experience | ||
| Multi-provider AI module | — | ✓ |
| AI credits ledger | — | ✓ |
| Feature flags (PostHog) | — | ✓ |
| AI-native context (CLAUDE.md / Cursor rules) | — | ✓ |
| i18n (next-intl) | — | ✓ |
| Cost | ||
| Price | Free (MIT) | $199 one-time |
| Officially Vercel-maintained | ✓ | — |
✓ Included · — Not included · Amber text = partial implementation.
Auth
Next.js SaaS Starter free
Uses Auth.js v5 (NextAuth) with email + password and OAuth. Basic sign-in and sign-up forms are included. No magic link, no TOTP 2FA, no passkeys, and no auth audit log. For a free starting point, the coverage is reasonable and the implementation is clean.
Already complete
Supabase Auth with pre-built screens for every flow: email + password, magic link, OAuth, TOTP, and passkeys. Auth event log tracks every sign-in by device, IP, and timestamp. Email enumeration protection and rate limiting on all auth endpoints are on by default.
Billing
Next.js SaaS Starter free
Includes a basic Stripe subscription setup — enough to get a pricing page live and process a first payment. The webhook handler is minimal: no idempotency guarantees and no dead-letter queue. Plan-based feature gating, customer portal, and trial periods are not included.
Already complete
Full Stripe integration with idempotent webhook handling and a dead-letter queue for failed events. Plan-based feature gating, customer portal, trial periods with grace periods, and billing email notifications are all wired. Production-grade from day one.
Multi-tenancy — what the Vercel starter intentionally omits
Next.js SaaS Starter free
No multi-tenancy. The starter is explicitly scoped to single-user SaaS — Vercel's own documentation notes it as a starting point, not a complete product. Teams, organisations, member invitations, RBAC, and admin tooling are all out of scope and left to the developer.
Already complete
Full multi-tenant org model with Postgres RLS and query-layer tenant scoping. Member invitations with role assignment, RBAC across all routes, and an admin dashboard with user impersonation. Tested for cross-tenant data isolation. Standard B2B SaaS infrastructure, shipped.
The Supabase vs. direct Postgres difference
The Vercel starter connects to a direct Postgres database — no Supabase. This is a deliberate choice: it keeps the starter portable and not tied to a specific managed service. For a learning project or an internal tool with simple requirements, that's fine.
Already uses Supabase, which adds Realtime (for in-app notifications), Row-Level Security (enforced at the database layer), Storage, and a managed Auth service. If you're building a multi-tenant product, the Supabase stack is meaningfully better tooled — you get RLS for free, Realtime for notifications, and managed auth. The trade-off is vendor lock-in, which Already accepts as a deliberate decision.
Who should use what
Use Next.js SaaS Starter when
- You need a free, MIT-licensed starting point
- You're building a demo, internal tool, or prototype
- You prefer to pick your own managed database provider
- Vercel's official codebase and maintenance matter to you
- Your product is single-user or doesn't require teams/orgs
- You have time to build billing, admin, and background jobs yourself
Use Already when
- You're building commercial B2B SaaS and need billing from day one
- Your product needs workspaces, teams, or multi-tenancy
- An admin dashboard and user management are table stakes
- Background jobs and a job queue are on your roadmap
- AI integration and AI-native DX (CLAUDE.md) matter to your workflow
- You want 16 modules wired and tested — not assembled from scratch
The honest comparison
The Vercel Next.js SaaS Starter is the right answer when the answer to every module in this comparison is "we'll build that ourselves." It's clean, free, officially maintained, and uses the same Next.js + Drizzle foundation as Already. For teams with time, strong opinions on infrastructure, or a budget of $0, it's a great foundation.
Already is for the team that has built SaaS before and knows that billing, multi-tenancy, background jobs, and security hardening are 6–8 weeks of work before the first line of product code. The $199 one-time price is the cost of skipping that infrastructure build — with all 16 modules tested, documented, and ready to extend.