SaaS is the dominant software business model. The recurring revenue math is compelling. The architecture decisions you make at the start will either accelerate or constrain you for years.
Multi-Tenancy: The Foundation Decision
Every SaaS product needs to isolate one customer's data from another's. There are three approaches:
Database-per-tenant. Each customer gets their own database. Maximum isolation, easy compliance, expensive to operate at scale. Use for enterprise/regulated markets.
Schema-per-tenant (PostgreSQL). One database, separate schemas. Good isolation, moderate ops complexity. Good mid-ground for B2B.
Shared schema with tenant_id. All customers in same tables, filtered by tenant_id. Most efficient, lowest isolation. Fine for most B2C/SMB SaaS.
Most SaaS products start with shared schema and add isolation for enterprise customers later. This is correct.
Auth: Don't Build It
Authentication is solved. Use a service:
- Clerk - best DX, Next.js native, $25/month for most startups
- Auth0 - more enterprise features, more configuration
- Supabase Auth - free tier, open source, works if you're already using Supabase
Building auth from scratch (password hashing, session management, OAuth flows, MFA, email verification) takes 3-4 weeks and is a permanent maintenance burden. Don't.
Billing: Also Don't Build It
Stripe handles subscriptions, trials, metered billing, proration, dunning (failed payment retries), invoicing, and tax calculation. The Stripe Billing API is complex but comprehensive.
Alternative: Paddle (handles VAT/GST as merchant of record - valuable for non-US companies).
Custom billing: viable only if your pricing model is genuinely too exotic for Stripe (rare).
Core Tech Stack
Frontend: Next.js 15 (App Router)
Backend: Node.js + Express or Next.js API routes
Database: PostgreSQL (primary) + Redis (cache/sessions)
Auth: Clerk or Auth0
Billing: Stripe
Email: Resend or Postmark
File storage: AWS S3 or Cloudflare R2
Infra: Vercel (frontend) + Railway/Render (backend) for MVP
→ migrate to dedicated VPS as you scale
What to Build in Phase 1
- Auth (login, signup, password reset, email verification)
- Organization/workspace concept with user invites
- Core product feature (the thing people pay for)
- Subscription plans with Stripe
- Basic usage dashboard
- Email notifications for key events
That's it. No admin panel, no analytics, no integrations - after you have 10 paying customers.
Cost to Build a SaaS MVP
| Scope | Cost | Timeline |
|---|---|---|
| Simple SaaS (1 core feature) | $8,000-18,000 | 8-14 weeks |
| Mid-complexity (team features, integrations) | $18,000-45,000 | 3-5 months |
| Complex SaaS (AI, multi-tenant enterprise) | $45,000-120,000 | 5-9 months |
The Feature Nobody Talks About
Onboarding. First 5 minutes determine whether a user activates. "Empty state" - what the user sees before they've done anything - is a product problem, not a design problem. Solve this before building your second feature.
Talk to us about your SaaS project →
Aunimeda develops websites and web applications for businesses - corporate sites, e-commerce, portals, and custom platforms.
Contact us to discuss your web project. See also: Web Development, E-commerce Development