DR / / drodriguez.site
case study / / 01 / /

Multi-tenant SaaS starter

Production SaaS foundation

statuslive
stackNext.js 15, Drizzle ORM, Stripe
updated2026
Next.jsStripePostgresDrizzle
01 / / the problem

About 40% of senior SaaS engineering jobs ask for the same foundation: multi-tenant architecture, role-based access, subscription billing. Most demos show one of these in isolation. This shows them working together in a way you can actually log into.

02 / / what i built
Email and Google OAuth authentication
Organization/workspace concept with invite system
Three-tier roles: Owner, Admin, Member
Stripe Checkout with three subscription tiers
Stripe customer portal for self-service billing
Webhook handler for full subscription lifecycle
Feature gating tied to subscription tier
Light and dark mode
03 / / how i built it
Next.js 15
App Router + Server Actions for type-safe mutations
Drizzle ORM
Lighter than Prisma with better SQL escape hatch
Stripe
Industry standard, full webhook coverage
Resend
Reliable transactional email, simple API
04 / / live demo
→ open live demo at https://saas.drodriguez.site
Loom walkthrough — 90 seconds

Demo credentials shown on the demo's landing page.

05 / / production extensions

Things deliberately out of scope for the demo, but I'd add for production:

SAML/SSO for enterprise tier
Audit logs for compliance
Two-factor authentication
Custom roles and granular permissions