Next.js SaaS Stack Guide for Solo Developers
Complete guide to the Next.js SaaS stack - when to use it, setup, pros/cons, and alternatives.
The Stack
| Layer | Tool | Why |
|---|---|---|
| Frontend + API | Next.js (App Router) | Full-stack TypeScript, server components, API routes |
| Database | Supabase (PostgreSQL) | Hosted Postgres with auth, real-time, and storage built in |
| Auth | Clerk or Supabase Auth | Drop-in auth with social logins, MFA, user management |
| Payments | Stripe | Industry standard for subscriptions and one-time payments |
| Hosting | Vercel | Zero-config deployment, edge functions, preview deploys |
| Resend | Developer-friendly transactional email with React templates |
This is the most popular SaaS stack in the indie developer world right now, and for good reason. Every layer is designed to minimize configuration time and maximize shipping speed. You can go from zero to a deployed SaaS with authentication, database, and payment processing in a single weekend if you scope aggressively.
When to Use This Stack
Perfect for: SaaS products, B2B tools, dashboards, subscription-based apps, AI wrapper products, internal tools with auth.
Not ideal for: Content-heavy sites (use Astro instead), mobile apps (though you can pair it with React Native), CPU-intensive backends (Vercel's serverless has execution time limits), or anything requiring long-running background jobs without a separate worker.
This stack shines when your product is a web application that users log into and interact with. If you're building something where users create accounts, use features behind a paywall, and pay monthly, this is probably the right choice.
Why Solo Developers Love It
Full-stack TypeScript. One language across your entire application. Frontend components, API routes, database queries (with Prisma or Drizzle), even your email templates with Resend. No context switching between languages. For a solo developer juggling everything, this is a massive productivity boost.
Supabase gives you a backend for free. PostgreSQL database, authentication, row-level security, real-time subscriptions, file storage, and edge functions. All from one dashboard. I've built projects where Supabase replaced what would have been 3-4 separate services.
Vercel makes deployment invisible. Push to GitHub, it deploys. Create a branch, you get a preview URL. No Docker files, no CI/CD configuration, no server management. I used to spend days setting up deployment pipelines. With Vercel it's genuinely zero configuration.
Stripe's developer experience is excellent. The documentation is the best in the industry. The webhooks work reliably. The subscription management handles edge cases you didn't even know existed (prorations, trial periods, payment failures, invoice retries).
The Parts Nobody Warns You About
Vercel costs can surprise you. The free tier is generous for development, but production traffic adds up. Server-side rendering, API routes, and image optimization all count against your usage. I've seen indie SaaS products hit $50-100/month on Vercel earlier than expected. Monitor your usage and consider self-hosting on a VPS if costs get uncomfortable.
Supabase's row-level security has a learning curve. RLS policies are powerful but tricky to debug. When your query returns empty results and you're sure the data is there, it's almost always an RLS policy blocking it. Test your policies thoroughly and use Supabase's SQL editor to debug.
The App Router is still evolving. Server components, server actions, and the new caching model are powerful but the mental model is different from traditional React. Some libraries don't fully support server components yet. You'll hit edge cases that require workarounds.
Clerk vs Supabase Auth is a real decision. Supabase Auth is free and tightly integrated with your database. Clerk is a separate service ($25/month for production features) but gives you a much better user management UI, organization support, and pre-built components. For a simple SaaS, Supabase Auth is fine. For anything with teams, organizations, or complex auth flows, Clerk saves significant development time.
Setting Up the Stack
The fastest path is using a starter template. Projects like next-saas-starter, Shipfast, or Supastarter give you auth, billing, database, and basic SaaS pages out of the box. They cost $100-300 but save weeks of boilerplate.
If you're building from scratch, here's the order I'd recommend.
First, set up Next.js with the App Router and TypeScript. Initialize your Supabase project and connect it. Set up your database schema with migrations (Supabase CLI or Prisma). Wire up authentication. Build a basic dashboard with protected routes.
Second, integrate Stripe. Create your products and prices in the Stripe dashboard. Build webhook handlers for subscription lifecycle events (created, updated, cancelled, payment failed). Connect subscription status to your user model in Supabase.
Third, build your actual features. At this point you have auth, database, and payments. Now focus 100% on whatever your SaaS actually does. This is the part that matters.
Cost Breakdown
| Service | Free Tier | Paid |
|---|---|---|
| Vercel | Hobby (personal projects) | $20/month Pro |
| Supabase | 500MB database, 50k auth users | $25/month Pro |
| Clerk | 10k MAU | $25/month Pro |
| Stripe | No monthly fee | 2.9% + 30c per transaction |
| Resend | 3,000 emails/month | $20/month for 50k |
Total at launch: $0 (free tiers cover MVP and early users) Total at scale: $70-90/month once you need paid plans
For a solo developer, you can operate for free until you have enough paying customers to cover the infrastructure costs. That's the whole point of this stack.
Alternatives to Consider
If you want cheaper hosting: Replace Vercel with Railway ($5/month) or self-host on a VPS with Coolify. You lose the seamless deployment experience but save money at scale.
If you don't want vendor lock-in: Replace Supabase with a self-hosted PostgreSQL and Lucia Auth (or AuthJS). More work to set up but zero dependency on managed services.
If you prefer Python: The Django equivalent of this stack is Django + PostgreSQL + Stripe + Railway. Different ecosystem, same concept.
If you want more control over the backend: Replace Supabase with a separate Express/NestJS API. More infrastructure to manage but more flexibility for complex business logic.
My Take
This is the stack I'd recommend to any solo developer building a SaaS in 2025. Not because every tool is the absolute best in its category, but because the combination minimizes friction at every step. You're shipping features, not configuring infrastructure.
The one caveat is cost awareness. Monitor your Vercel and Supabase usage as you grow. The free tiers are generous but not infinite. Have a plan for what you'll do when you outgrow them. But honestly, by the time that's a problem, you should have enough revenue to cover it.
Related Articles
AI Wrapper Stack Guide for Solo Developers
Complete guide to the AI wrapper stack - when to use it, setup, pros/cons, and alternatives.
Best Tech Stack for Building an AI Wrapper as a Solo Developer
The ideal tech stack for solo developers building an AI wrapper in 2026.
Best Tech Stack for an Analytics Dashboard as a Solo Developer
The best tech stack for building an analytics dashboard as a solo developer - frameworks, databases, hosting, and tools.