Stack Micro-SaaS 2025: Real Costs From 0€ to 10K€/Month
5/13/2026
The article from the previous messages is already in the conversation context. Let me do the voice review directly.
The Exact Stack to Launch a Solo Micro-SaaS to 10K€/Month in 2025 — With Real Costs
90% of articles about micro-SaaS stacks give you a shopping list of tools. Not one tells you what it actually costs when you have 3 users and 0€ MRR.
I know because I read them all before launching Interactive React. I ended up spending 47€/month for six months while making exactly zero revenue. Not because the tools were wrong — because nobody told me which ones I needed at that stage versus which ones I'd need at 500 paying users.
I've been shipping React interfaces for 9 years. Seven of those in agencies and startups in Paris, building everything from B2B dashboards to e-commerce frontends. Then I left my CDI to build a solo product from my house near Aix-en-Provence, with a MacBook, too much coffee, and a golden retriever who thinks my standing desk is his personal sofa.
My SaaS — Interactive React, a platform where you learn by writing actual code instead of watching 40-hour YouTube playlists — passed 50 paying users in a few months. I tracked every single invoice, every migration, every "why am I paying for this, I have 7 users" moment.
This isn't another tool catalogue for indie makers. It's a cost-progression breakdown of the three layers — infra, product, ops — from 0€/month to the stack that sustains 10K€ MRR. With actual numbers, actual commands, and the actual mistakes I made so you don't.
The Complete Micro-SaaS Stack Comparison: 0€ vs 50€ vs 200€/Month
Before we dive in, here's the overview. Screenshot this or something.
| Layer | Stack at 0€/month | Stack at ~50€/month | Stack at ~200€/month |
|-------|-------------------|--------------------|--------------------|
| Database | SQLite (Turso free tier) | Supabase free → Pro at scale | PlanetScale or Neon Pro |
| Hosting | Cloudflare Pages | Vercel Hobby → Pro | Vercel Pro + dedicated |
| Auth | Better-Auth / Lucia | Better-Auth + OAuth providers | Same (don't pay for auth) |
| Payments | Lemon Squeezy (% only) | Stripe (% only) | Stripe + revenue recovery |
| Email | Resend free tier (100/day) | Resend Pro (50K/month) | Resend + dedicated IP |
| Monitoring | Console.log + Sentry free | Sentry Pro + Axiom | Full observability stack |
| CI/CD | GitHub Actions free | Same | Same + preview deploys |
| Total fixed cost | 0€ | 40-60€ | 180-250€ |
| Scales to | ~100 users | ~1,000 users | ~5,000+ users |
Now let's break down why each choice, and when you actually need to upgrade.
Layer 1: Infrastructure Costs for a Micro-SaaS Solo Developer
This is where your money actually goes. And where most solo founders overspend because some Medium article told them to "think about scale from day one." You don't have scale. You have a localhost and a dream.
Database: Start With SQLite, Seriously
I can hear the Supabase fans already. "But real-time! But Row Level Security! But hosted Postgres!"
You have 0 users. You don't need real-time anything. Your dog doesn't count as a concurrent connection.
At 0 users (0€/month):
SQLite via Turso. Free tier gives you 9GB storage and 500 million row reads/month. That's absurd for a micro-SaaS. Your schema fits in one file. Migrations are instant. Backups are a file copy.
npm install @libsql/client
npx turso db create my-saas
npx turso db tokens create my-saas
Total setup time: 4 minutes. Cost: 0€. Time I spent overthinking this decision: 3 days. Don't be me.
At 100 users (~2-5K€ MRR):
You're still fine on Turso's free tier. SQLite handles concurrent reads beautifully. If you're doing heavy writes (collaborative features, real-time updates), now you consider Supabase or Neon. Not before.
Supabase free tier: 500MB, 2 projects. Supabase Pro: 25$/month. You won't need Pro until you hit the connection limit or need more than 8GB.
At 1,000 users (8-12K€ MRR):
PlanetScale Scaler Pro at 29$/month or Neon Pro at 19$/month. At this point you're making enough that 30€/month for a managed database is a rounding error on your revenue.
The classic mistake: Paying 25$/month for Supabase Pro from day one "just in case." That's 300€/year to store 47 rows in your users table. I did this. Don't.
Hosting: Cloudflare Pages is the 0€ King
At 0 users:
Cloudflare Pages. Free. Unlimited bandwidth. Unlimited requests. Supports Next.js via @cloudflare/next-on-pages. Edge runtime, globally distributed.
npm install -D @cloudflare/next-on-pages
npx wrangler pages project create my-saas
Limitations: No Node.js runtime (edge only), some Next.js features don't work (ISR is limited, middleware has quirks). For a micro-SaaS with a dashboard and an API? More than enough.
At 100 users:
Still Cloudflare Pages. Or if you need full Node.js runtime features: Vercel Hobby (free, 100GB bandwidth). The second you need server-side heavy lifting (file uploads, webhook processing, long-running tasks), Vercel makes more sense.
At 1,000 users:
Vercel Pro at 20$/month per team member (so 20$/month for you, the solo dev). You get 1TB bandwidth, longer function execution times, and preview deployments that actually matter when you're shipping daily.
The classic mistake: Jumping to Vercel Pro at launch "for the analytics." The analytics dashboard is nice. It's not 240€/year nice when you have 12 users and one of them is your mum testing the signup flow.
Vendor Lock-in: The Hidden Cost Nobody Mentions
Here's what the "just use Vercel" crowd won't tell you: once your app uses Vercel-specific features (Edge Config, KV, Blob storage), migrating costs real engineering time. I'm talking weekends you could spend hiking in the Garlaban instead of rewriting storage adapters.
My rule: use Vercel for compute and CDN. Use separate providers for everything else. Your database isn't on Vercel. Your auth isn't on Vercel. Your file storage isn't on Vercel. If Vercel doubles their prices tomorrow — and VC-funded companies absolutely do that — you move your Next.js app to Cloudflare or Railway in an afternoon.
Layer 2: Product Stack — Auth, Payments, and the Next.js Micro-SaaS Setup
This is the code that actually makes money. Choose wrong here and you'll spend weeks migrating instead of building features users pay for.
Authentication: Stop Paying for This
This is my hill and I will die on it.
Never pay for auth at the micro-SaaS stage.
Clerk costs 25$/month after 10,000 MAU. Auth0 has a free tier that's generous but locks you into their SDK. Supabase Auth is free but ties you to Supabase.
Use Better-Auth or Lucia. Both are free, open-source, and give you full control.
npm install better-auth
Better-Auth gives you:
- Email/password
- OAuth (Google, GitHub, etc.)
- Magic links
- Session management
- Two-factor auth
All of that. For 0€. With code you own and can actually debug when something breaks at midnight.
At 100 users: Same stack. Add OAuth providers as users request them. Google OAuth is free. GitHub OAuth is free. You're spending 0€ on auth.
At 1,000 users: Still 0€ on auth infrastructure. Maybe you add rate limiting (built into Cloudflare for free) and improve your session invalidation logic. That's code work, not money.
The classic mistake: "I'll use Clerk because it saves me 2 hours of setup." Cool. Then you pay 25$/month forever because migrating off Clerk means rebuilding your entire auth flow. Those "2 hours saved" cost you 600€ over two years. I can do that arithmetic. So can you.
Payments: Lemon Squeezy vs Stripe — The Real Trade-off
Lemon Squeezy (now owned by Stripe, ironically):
- Merchant of Record: they handle VAT, sales tax, everything
- 5% + 0.50€ per transaction
- No monthly fee
- Built-in license keys, affiliate system, subscription management
Stripe:
- You're the merchant of record: handle VAT yourself (or pay Stripe Tax)
- 1.5% + 0.25€ per transaction (EU cards)
- No monthly fee on base, but Stripe Tax is 0.5% extra
- More control, better webhooks, more integrations
My recommendation:
At 0-50 users: Lemon Squeezy. The 5% fee on 500€ MRR is 25€. That's cheaper than the hours you'd spend setting up tax compliance for 27 EU countries. Paddle is the alternative if you want similar MoR.
At 200+ users (5K+ MRR): Migrate to Stripe. The 5% fee on 10K€ is 500€/month. Stripe's ~2% is 200€/month. You save 300€/month. That's 3,600€/year. Worth the migration effort.
# Lemon Squeezy setup
npm install @lemonsqueezy/lemonsqueezy.js
Stripe setup (when you migrate)
npm install stripe @stripe/stripe-js
The classic mistake: Using Stripe from day one and spending 3 days configuring tax rules for 7 countries when you have 4 customers. I've seen indie makers delay launch by a week because "Stripe Tax integration isn't working." You have 0 revenue. Ship with Lemon Squeezy. Migrate when the math tells you to.
Why Next.js is the Right Framework for a Micro-SaaS in 2025
Yes, Next.js. No, not because it's trendy — I've been reading every React release note since 2016, I don't follow trends, I follow the runtime. Here's why:
- One codebase for your marketing site, dashboard, and API
- Server Components mean your dashboard loads fast without a separate backend
- The ecosystem (shadcn/ui, Better-Auth integrations, Prisma/Drizzle) is unmatched for solo devs
- You can deploy to Vercel, Cloudflare, or self-host
npx create-next-app@latest my-saas --typescript --tailwind --app --src-dir
But here's my specific, slightly controversial advice: don't use a boilerplate.
I see "SaaS boilerplates" selling for 150-300€ on Twitter. ShipFast, Supastarter, whatever. They include auth, payments, email, landing page — everything pre-wired.
The problem: you inherit someone else's technical debt, their dependency choices, their architectural opinions. When something breaks at 2am (and it will), you need to understand the code. If you didn't write it, debugging takes 3x longer. I've spent 9 years watching junior devs struggle with code they copied but don't understand. Same thing applies to boilerplates.
Build your own. It takes a weekend. You learn every line. When Stripe changes their webhook format or Next.js ships a breaking change in a minor release (don't get me started on the App Router migration), you know exactly where to look.
The exception: If you've already shipped 3+ SaaS products and know exactly what you want, a boilerplate saves time. For your first micro-SaaS? Write it yourself. That's literally how you learn — by coding, not by downloading.
ORM: Drizzle Over Prisma for Solo Micro-SaaS
Controversial take. I use Prisma at work (Interactive React runs on it). But for a fresh micro-SaaS in 2025:
Drizzle:
- No code generation step (faster DX)
- Smaller bundle size
- Works perfectly with SQLite/Turso
- SQL-like syntax means you know what query actually runs
npm install drizzle-orm
npm install -D drizzle-kit
Prisma:
- Better if you already know it
- Better for complex relational queries
- Requires a generate step after schema changes
- Heavier
If you're starting fresh and using SQLite: Drizzle. If you're using Postgres and want the safety net of a typed client with migrations: Prisma. Both work. Pick one and ship. Don't spend 3 days reading comparison articles. I already did that for you.
Layer 3: Operations Tools for Indie Makers — Monitoring, Email, Analytics
The stuff that keeps you sane after launch. Most solo developers either ignore this layer entirely (then panic when something breaks in production) or overspend on enterprise tools designed for 50-person teams. Here's the middle ground.
Email: Resend, No Discussion
Transactional email in 2025 has one answer for solo devs: Resend.
- Free tier: 100 emails/day, 3,000/month
- Pro: 20$/month for 50,000 emails/month
At 0-100 users, the free tier covers welcome emails, password resets, and invoices. You won't send more than 100/day unless you're spamming people, and please don't do that.
npm install resend
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
await resend.emails.send({
from: 'noreply@yourdomain.com',
to: user.email,
subject: 'Welcome',
html: '<p>You are in.</p>'
});
Done. No template engine, no complex setup. React Email if you want pretty templates later.
Don't even look at: SendGrid (pricing page gives me a headache), Mailgun (API changed again last month), AWS SES (I don't hate myself enough to configure IAM policies for a 10-user app).
Monitoring: Sentry Free → Axiom
At 0 users:
Sentry free tier. 5,000 errors/month. Source maps. Performance monitoring. That's enough to catch the stupid bugs.
npm install @sentry/nextjs
npx @sentry/wizard@latest -i nextjs
At 100 users:
Still Sentry free. Add Axiom free tier for log aggregation if you need to debug production issues that aren't errors (slow queries, weird user flows).
At 1,000 users:
Sentry Team at 26$/month. Axiom at 25$/month. You now have real observability, and it's worth it because a 30-minute outage at 10K€ MRR costs you ~14€ in lost revenue per hour. Paying 50€/month for tools that cut your debugging time in half is an obvious trade.
Analytics: Don't Overthink This
Plausible Cloud: 9€/month. Privacy-friendly, lightweight, gives you pageviews, sources, conversions.
Or Plausible self-hosted on a 5€ VPS. Or PostHog free tier (1 million events/month).
Don't install Google Analytics. It's free in money but expensive in GDPR compliance headaches and cookie banners that annoy every European user who lands on your page.
At 0 users: PostHog free tier. More than enough.
At 100 users: Plausible at 9€/month or stay on PostHog.
At 1,000 users: PostHog Growth (free up to 1M events) + Plausible for public dashboard if you're into the transparency thing.
CI/CD: GitHub Actions Free Tier Covers Everything
2,000 minutes/month on free tier. Your micro-SaaS build takes what, 2 minutes? That's 1,000 deploys/month. You're not deploying 1,000 times a month. If you are, stop and go touch some grass. Or a dog. Dogs are good.
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- run: pnpm install
- run: pnpm build
- run: pnpm test
# Deploy step depends on your host
Never pay for CI until you have a team. Solo dev + GitHub Actions free = unlimited for practical purposes.
Real Micro-SaaS Costs: Month-by-Month From 0 to 10K€ MRR
Here's what your hosting/tooling bill actually looks like as you grow. Based on my invoices and publicly verifiable pricing — not some hypothetical spreadsheet.
Month 1-3 (Building, 0 users): 0€/month
- Turso free, Cloudflare Pages free, Better-Auth free, GitHub free, Resend free, Sentry free
- You're spending 0€. Your only cost is your time and the electricity bill for that MacBook.
Month 4-6 (Launch, 1-20 users, 0-500€ MRR): 9-15€/month
- Add Plausible: 9€
- Domain: ~1€/month (12€/year)
- Maybe a custom email via Zoho free tier or Proton: 0-5€
- Total: 10-15€/month
Month 7-12 (Growth, 50-200 users, 2-5K€ MRR): 40-70€/month
- Vercel Pro: 20€
- Resend Pro: 20€ (if you do marketing emails)
- Plausible: 9€
- Sentry still free or Team at 26€
- Database still on free tier or Supabase Pro at 25€
- Total: 40-70€
Month 12+ (Scale, 500+ users, 8-12K€ MRR): 150-250€/month
- Vercel Pro: 20€
- Database Pro (Neon/PlanetScale): 20-30€
- Resend Pro: 20€
- Sentry Team: 26€
- Axiom: 25€
- Plausible: 19€ (higher tier)
- Misc (domain, DNS, secrets manager): 20€
- Total: 150-200€
Your margin at 10K€ MRR with 200€/month in tooling costs: 98%. This is why micro-SaaS is beautiful. No investors, no team of 12, no office lease. Just you, your code, and an embarrassingly healthy margin.
5 Expensive Mistakes When Launching a Micro-SaaS (I Made Them All)
I'm not theorizing here. These are real euros I burned. Learn from my stupidity.
Mistake 1: Supabase Pro on Day One
I signed up for Supabase Pro because "I'll need real-time eventually." I paid 25$/month for 8 months before my first user signed up. That's 200$ for a database with 3 tables and 0 rows of user data. My dog could have told me that was dumb, and he eats socks.
Fix: Start with Turso or Supabase free tier. Upgrade when you hit limits, not when you imagine you might.
Mistake 2: Over-Engineering Auth
I spent 4 days implementing a custom auth system with refresh tokens, device fingerprinting, and rate limiting. I had 0 users. Nobody was trying to brute-force my login page. The only person logging in was me, and I already knew my own password.
Fix: Better-Auth + email/password. Add OAuth when users ask. Add 2FA when you have enterprise customers who require it. Not before.
Mistake 3: Buying a Boilerplate for 200€
149€ for a "Next.js SaaS starter." I ended up rewriting 60% of it because the auth library was two major versions behind, the Stripe integration used a deprecated API, and the folder structure was someone else's brain that wasn't mine.
Fix: Start from create-next-app. Add features as you need them. Your codebase should only contain code you understand. This is the exact same principle I teach on Interactive React — you don't learn by downloading, you learn by writing.
Mistake 4: Vercel Pro for Preview Deployments
I wanted preview URLs for each PR. I'm a solo dev. I'm the only one reviewing PRs. I was paying 20$/month to show myself my own work. That's a very expensive mirror.
Fix: Vercel Pro makes sense when you have beta testers or a co-founder who needs to review. Solo? localhost:3000 works fine.
Mistake 5: Spending 2 Weeks on Landing Page Design
I treated the landing page like an art project. Custom animations, perfect responsive design, interactive demos. Meanwhile: 0 users, because the product wasn't shipped. I was polishing a storefront with no product inside.
Fix: Use a pre-built landing page component library (shadcn/ui + a template). Ship something that explains what you do in 10 seconds. Make it pretty later when you have revenue to justify spending a weekend on CSS instead of hiking.
The Exact Micro-SaaS Stack I'd Use If I Started Today
If I were starting a new micro-SaaS tomorrow morning (which, knowing my side-project addiction, is entirely possible), here's the exact commands I'd run:
# Framework
npx create-next-app@latest my-saas --typescript --tailwind --app --src-dir
Database
npm install drizzle-orm @libsql/client
npm install -D drizzle-kit
Auth
npm install better-auth
Payments (start here)
npm install @lemonsqueezy/lemonsqueezy.js
UI
npx shadcn@latest init
npx shadcn@latest add button card input label
Email
npm install resend
Monitoring
npx @sentry/wizard@latest -i nextjs
Deploy
npm install -D wrangler @cloudflare/next-on-pages
Total dependencies: 8 packages. Total cost: 0€/month. Deployable in under an hour if you've done this before.
The Stack Progression Path for Solo Founders
Don't think of your tech stack as a fixed decision. Think of it as a ladder you climb one rung at a time:
- 0€ tier (0-100 users): SQLite + Cloudflare + Better-Auth + Lemon Squeezy + Resend free
- 50€ tier (100-500 users): Migrate to Postgres (Supabase/Neon) + Vercel + same auth + consider Stripe migration
- 200€ tier (500-2000 users): Managed DB + Vercel Pro + Stripe + full monitoring + dedicated email
Each migration happens when you hit a specific, measurable limit. Not before. Not "just in case." When you actually feel the pain. When the Turso dashboard shows you're at 80% of free tier. When Lemon Squeezy's 5% costs you more than Stripe's 2% would. Concrete triggers, not vibes.
The golden rule: never spend more than 5% of your MRR on tooling. At 1K€ MRR, that's 50€. At 10K€ MRR, that's 500€. You'll never need 500€/month in infrastructure as a solo dev unless you're doing something very wrong or very interesting.
What Really Gets You to 10K€/Month
Here's the thing nobody wants to hear: the stack isn't what makes or breaks your micro-SaaS. I've seen people hit 10K€/month on a WordPress plugin with no frontend framework. I've seen people with perfect Next.js + Vercel + Stripe stacks make 0€ because nobody wanted their product.
The stack matters for exactly two reasons:
- Speed of iteration. The less time you spend on infra, the more time you spend on features users pay for.
- Cost management. Every euro not spent on tools is a euro that extends your runway.
That's it. Pick tools that let you ship fast and cost nothing until you're making money. Everything else is premature optimization — and I say that as someone who spent his twenties prematurely optimizing React renders that were already fast enough.
I build Interactive React with this exact philosophy. 180 coding exercises, zero video fluff. The platform started on SQLite, moved to Postgres when I hit real concurrent users doing exercises simultaneously. Not a minute before. The tech served the product. Never the other way around.
Your micro-SaaS isn't a tech demo. It's a business. Treat the stack like what it is: the cheapest possible foundation that lets you build the thing people actually want to pay for.
Download the Full Stack Comparison + Starter Template
I've put together the complete comparison table of all three micro-SaaS stacks (0€, 50€, 200€/month) with exact costs at each user threshold, installation commands, environment configs ready to copy-paste, and the Drizzle schemas for auth + subscriptions + basic CRUD.
You can grab the comparison PDF, or clone the starter repo that ships with Better-Auth, Lemon Squeezy webhooks, and Cloudflare Pages deployment — all wired up and deployable in one command.
[Download the 3-stack comparison table + clone the starter template →]
Stop reading stack articles. Start shipping. The best micro-SaaS stack in 2025 is the one that costs you nothing while you find your first 10 paying users.