Production-ready Next.js AI SaaS boilerplate — Google OAuth, Stripe credit billing, Prisma, MuAPI AI engine, and webhook-backed async generation out of the box. The template powering 20+ open-source AI SaaS apps. Free ShipFast / Gravity UI alternative.
23
stars
17
commits
JavaScript
primary language
Aug 2, 2026
updated
The production-ready template powering 20+ open-source AI SaaS apps. Ship a fully functional AI-powered SaaS with Google OAuth, Stripe credit billing, MuAPI AI engine, Prisma, and webhook-backed async generation — in minutes, not weeks. A free open-source alternative to ShipFast, SaaSBoilerplate, Gravity UI, and Bedrock — powered by the MuAPI AI engine.
Tech stack: Next.js 14 (App Router) · Prisma · PostgreSQL · NextAuth (Google OAuth) · Stripe · Tailwind CSS · MuAPI · Webhook-backed async delivery Use cases: AI image generators · AI video generators · AI audio tools · Virtual try-on apps · AI writing tools · AI photo editors · Any credit-based generative AI SaaS
/api/creations) to heal state if webhooks fail in local development./api/download to bypass cross-origin browser behaviors and download images immediately.This application shares a single PostgreSQL database instance with other SaaS tools. To prevent deleting tables of other applications in the shared pool, you MUST follow the schema synchronization lifecycle:
npx prisma db pull to load all database tables into your local schema.prisma.Creation, Enhancement) and links inside the User model.npx prisma db push. This adds your models safely without dropping existing ones.schema.prisma file so your compiled types remain clean and lightweight.npx prisma generate to rebuild the type-safe client.Create a .env file in the root directory (based on .env.example):
DATABASE_URL: Connection URL of Supabase PostgreSQL database.DIRECT_URL: Connection URL for database migrations.NEXTAUTH_SECRET: Random string for encrypting NextAuth sessions.NEXTAUTH_URL: Canonical root URL of the deployment (e.g. http://localhost:3000).GOOGLE_CLIENT_ID: OAuth Client ID from Google Cloud Console.GOOGLE_CLIENT_SECRET: OAuth Client Secret from Google Cloud Console.MUAPIAPP_API_KEY: API Key to connect to the MUAPI services.WEBHOOK_URL: Target webhook domain (usually maps to NEXTAUTH_URL).STRIPE_SECRET_KEY: Private key from Stripe dashboard.STRIPE_WEBHOOK_SECRET: Signature key to verify Stripe checkout events.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: Public Stripe key.npm install
npx prisma db pull
npx prisma generate
npm run dev
npm run build
This Next.js SaaS platform includes a parameter designer that allows you to configure dynamic image, video, and audio uploads with strict input count limits.
Click Launch New App on the main dashboard and paste a JSON template containing your prompt parameters. The system automatically inspects both keys and values to map them to appropriate form fields:
image or img (or string values ending in .jpg, .png, .webp, .gif) auto-detect as Image Upload (image_list).video (or string values ending in .mp4, .webm, .mov) auto-detect as Video Upload (video_list).audio (or string values ending in .mp3, .wav, .m4a) auto-detect as Audio Upload (audio_list).enum): String values with commas or matching common presets (e.g. Auto, 1k, 2k, 4k) map to selections.boolean): Boolean values map to toggle switches.\n) map to textareas.When an upload type is parsed, the parameter designer manages lists and limits automatically:
_list (e.g., images_list) or the default JSON value is an array, the system sets the default Max Uploads Limit to 5. Otherwise, single-upload parameters (e.g. image_url) default to 1.Upon launching the application, the dedicated studio route is created:
✕).maxInputs) is reached.maxInputs === 1) are packaged as a single string URL value (e.g. "https://cdn.muapi.com/file.png").maxInputs > 1) are packaged as an array of string URLs.15 commits
2 commits
JavaScript
98.8%
CSS
1.1%
Production-ready Next.js AI SaaS boilerplate — Google OAuth, Stripe credit billing, Prisma, MuAPI AI engine, and webhook-backed async generation out of the box. The template powering 20+ open-source AI SaaS apps. Free ShipFast / Gravity UI alternative.
23
stars
17
commits
JavaScript
primary language
Aug 2, 2026
updated
The production-ready template powering 20+ open-source AI SaaS apps. Ship a fully functional AI-powered SaaS with Google OAuth, Stripe credit billing, MuAPI AI engine, Prisma, and webhook-backed async generation — in minutes, not weeks. A free open-source alternative to ShipFast, SaaSBoilerplate, Gravity UI, and Bedrock — powered by the MuAPI AI engine.
Tech stack: Next.js 14 (App Router) · Prisma · PostgreSQL · NextAuth (Google OAuth) · Stripe · Tailwind CSS · MuAPI · Webhook-backed async delivery Use cases: AI image generators · AI video generators · AI audio tools · Virtual try-on apps · AI writing tools · AI photo editors · Any credit-based generative AI SaaS
/api/creations) to heal state if webhooks fail in local development./api/download to bypass cross-origin browser behaviors and download images immediately.This application shares a single PostgreSQL database instance with other SaaS tools. To prevent deleting tables of other applications in the shared pool, you MUST follow the schema synchronization lifecycle:
npx prisma db pull to load all database tables into your local schema.prisma.Creation, Enhancement) and links inside the User model.npx prisma db push. This adds your models safely without dropping existing ones.schema.prisma file so your compiled types remain clean and lightweight.npx prisma generate to rebuild the type-safe client.Create a .env file in the root directory (based on .env.example):
DATABASE_URL: Connection URL of Supabase PostgreSQL database.DIRECT_URL: Connection URL for database migrations.NEXTAUTH_SECRET: Random string for encrypting NextAuth sessions.NEXTAUTH_URL: Canonical root URL of the deployment (e.g. http://localhost:3000).GOOGLE_CLIENT_ID: OAuth Client ID from Google Cloud Console.GOOGLE_CLIENT_SECRET: OAuth Client Secret from Google Cloud Console.MUAPIAPP_API_KEY: API Key to connect to the MUAPI services.WEBHOOK_URL: Target webhook domain (usually maps to NEXTAUTH_URL).STRIPE_SECRET_KEY: Private key from Stripe dashboard.STRIPE_WEBHOOK_SECRET: Signature key to verify Stripe checkout events.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: Public Stripe key.npm install
npx prisma db pull
npx prisma generate
npm run dev
npm run build
This Next.js SaaS platform includes a parameter designer that allows you to configure dynamic image, video, and audio uploads with strict input count limits.
Click Launch New App on the main dashboard and paste a JSON template containing your prompt parameters. The system automatically inspects both keys and values to map them to appropriate form fields:
image or img (or string values ending in .jpg, .png, .webp, .gif) auto-detect as Image Upload (image_list).video (or string values ending in .mp4, .webm, .mov) auto-detect as Video Upload (video_list).audio (or string values ending in .mp3, .wav, .m4a) auto-detect as Audio Upload (audio_list).enum): String values with commas or matching common presets (e.g. Auto, 1k, 2k, 4k) map to selections.boolean): Boolean values map to toggle switches.\n) map to textareas.When an upload type is parsed, the parameter designer manages lists and limits automatically:
_list (e.g., images_list) or the default JSON value is an array, the system sets the default Max Uploads Limit to 5. Otherwise, single-upload parameters (e.g. image_url) default to 1.Upon launching the application, the dedicated studio route is created:
✕).maxInputs) is reached.maxInputs === 1) are packaged as a single string URL value (e.g. "https://cdn.muapi.com/file.png").maxInputs > 1) are packaged as an array of string URLs.15 commits
2 commits
JavaScript
98.8%
CSS
1.1%