SupaNuxt SaaS is an open-source boilerplate for building multi-tenant SaaS applications on Nuxt 3, combining Supabase authentication, Prisma, tRPC, Pinia, Stripe billing, and Tailwind CSS with daisyUI.
What is SupaNuxt SaaS?
SupaNuxt SaaS is a production-oriented starter kit that gives you a complete SaaS foundation: authentication, team management, subscription billing, role-based access control, and a demo notes feature with AI generation. It takes your Supabase and Stripe credentials as input and produces a running Nuxt 3 application with a PostgreSQL database schema, seeded plans, and a Stripe webhook endpoint for subscription events. The project is maintained by the community via a Discord server and includes a live demo site and a real-world example at Pottery Helper.
Key Features
- Full authentication stack — Social sign-on via Google and other Supabase OAuth providers, email/password sign-on, password recovery, and email capture on initial login.
- Multi-tenant teams — Users can upgrade individual accounts to team accounts, switch between teams, generate invite links, and let owners/admins manage member roles and remove users.
- Plan and feature-flag system — Plans are stored in the database with feature flags and limits (e.g., max notes), and features are copied to accounts on successful subscription; admins can tweak account features without new plans.
- Stripe subscription integration — Each plan links to a Stripe Product ID, supports multiple prices, and uses webhooks to activate the correct plan on subscription events.
- Prisma schema management — Database schema is managed through Prisma with a seed script that populates plan and Stripe product data; Prisma generates a strongly typed client.
- tRPC with REST fallback — Server/client communication uses tRPC for full type safety, and a REST endpoint example under
server/api/note.tsis included for flexibility (e.g., for Flutter clients). - AI note generation — OpenAI text completions generate notes, with per-account, per-month usage limits enforced.
- SSR and SPA pages — The demo Notes dashboard is a SPA page (via Pinia), while individual note pages are SSR-rendered for SEO.
Who is it for?
- SaaS founders who want to launch a subscription product without wiring up auth, billing, and team management from scratch.
- Nuxt 3 developers who want a reference implementation of tRPC, Prisma, and Pinia working together in both SPA and SSR modes.
- Agencies and freelancers building multi-tenant web apps for clients and needing a starting point that includes Stripe webhooks and role-based permissions.
What can you do with SupaNuxt SaaS?
- Launch a subscription SaaS quickly — Set up Supabase and Stripe credentials, run the seed script, and deploy to Netlify to start accepting subscriptions.
- Build a team-based product — Use the built-in team switching and invite links to let multiple users collaborate on shared data.
- Add AI features — Use the OpenAI integration and per-account usage limits to offer AI-powered content generation to your users.
How does SupaNuxt SaaS work?
The repository asks you to configure environment variables for Supabase, Stripe, and the database URL. After copying .env_example to .env, you create a Supabase project, set up Stripe products and prices, run npx prisma db push and npx prisma db seed to hydrate the database, then start the dev server. Stripe CLI forwards webhooks to localhost:3000/webhook for testing subscription flows, and production deployment is documented for Netlify.
FAQ
Is SupaNuxt SaaS free?
Yes, the boilerplate itself is open source and free to use. You will, however, need to pay for or use free tiers of external services like Supabase, Stripe, and OpenAI.
What tech stack does SupaNuxt SaaS use?
Nuxt 3, Supabase (auth + PostgreSQL), Prisma, tRPC, Pinia, Stripe, Tailwind CSS with daisyUI, and OpenAI. It uses Vue composition API throughout, including stores.
Can I use it without a team plan?
Yes, the boilerplate supports individual accounts and a "No Plan" option controlled by config; set initialPlanName to a "No Plan" row and initialPlanActiveMonths to -1 to disable free trials.
Does it work with mobile clients?
The backend includes a REST endpoint example because tRPC has no Flutter client, so you can connect non-JavaScript clients to the same API.
What demo functionality is included?
A simple text-based notes system with a read-only dashboard, SSR-rendered note pages, max-notes enforcement per plan, and AI note generation using OpenAI with per-account monthly usage limits.







