/ tech-stacks / Next.js SaaS Stack Guide for Solo Developers
tech-stacks 6 min read

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
Email 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.