Authentication is based on Better Auth, supports email/password and GitHub OAuth, and includes session management
saasany — Next.js SaaS Template
By sit-in
saasany is an open-source Next.js 16 AI SaaS template by sit-in. Its README states it includes authentication, Stripe payments, AI chat, i18n, a dashboard, an admin panel, and an MDX blog, and provides a one-click Vercel deployment entry.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Payments integrate Stripe subscriptions, Checkout, customer portal, and Webhooks
AI capabilities are based on the Vercel AI SDK and OpenAI, providing streaming chat and text generation, with the model replaceable in src/lib/ai.ts
The data layer uses Drizzle ORM connected to Neon PostgreSQL and is initialized via npm run db:push
Internationalization uses next-intl, includes English and Chinese, and uses URL-prefix routing
The UI is based on Tailwind CSS v4 and shadcn/ui, offering 6 themes and a system-following dark mode
Template Details
saasany is an AI SaaS starter template built on the Next.js 16 App Router. The repository is https://github.com/sit-in/saasany and is MIT licensed. The README positions it as "production-ready," but this introduction is based only on what the README lists and does not judge the actual degree of production readiness.
The template is organized according to the README's architecture diagram and directory structure: authentication uses Better Auth and supports email/password and GitHub OAuth; payments use Stripe and include subscriptions, Checkout, customer portal, and Webhooks; the AI part is based on the Vercel AI SDK and OpenAI, providing streaming chat and text generation, with the model replaceable in src/lib/ai.ts; the data layer uses Drizzle ORM connected to Neon PostgreSQL; internationalization uses next-intl, includes English and Chinese, and uses URL-prefix routing. The UI is based on Tailwind CSS v4 and shadcn/ui, offering 6 color themes (Emerald, Ocean, Violet, Amber, Rose, Zinc) and a system-following dark mode.
Regarding feature modules, the README lists a dashboard (collapsible sidebar, stat cards, settings, billing), an admin panel (user management, subscription stats, RBAC), an MDX blog (with i18n), API Key generation/listing/revocation, and SEO-related capabilities (sitemap, robots.txt, dynamic OG images). Emails are sent via Resend, and the template includes an email templates directory.
Usage limitations and prerequisites: you need to prepare environment variables such as DATABASE_URL, BETTER_AUTH_SECRET, Stripe-related keys, OPENAI_API_KEY, and RESEND_API_KEY yourself; GitHub OAuth credentials are optional; the database must be initialized via npm run db:push. The README does not state test coverage, specific performance, details of deployment methods other than Vercel, or the specific version numbers of each dependency; these need to be confirmed by checking repository files.
Is it right for your project?
Use Cases
- When you need to quickly build a skeleton for an AI SaaS product with subscription payments, you can adapt it based on this template
- Projects that need email/password and GitHub OAuth login, along with a dashboard and settings pages
- Scenarios that need a bilingual English-Chinese site and want blog content to support multiple languages as well
- Paid products that need Stripe subscriptions, customer portal, and Webhook processing flows
- Projects that need an admin panel for user management and subscription stats, with permission distinctions
Suitable For
- Developers familiar with the Next.js App Router and TypeScript who want to start from an existing structure
- Projects planning to deploy to Vercel and use Neon PostgreSQL
- Teams that need to configure third-party keys such as Stripe, OpenAI, and Resend themselves
- Developers who want to use and modify the template under the MIT license
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, run npm install, copy .env.example to .env.local, and fill in API keys
- 2
You need to configure DATABASE_URL, BETTER_AUTH_SECRET, Stripe keys, OPENAI_API_KEY, and RESEND_API_KEY; GitHub OAuth credentials are optional
- 3
Run npm run db:push to initialize the database, then run npm run dev to start at http://localhost:3000
- 4
In production, the Stripe Webhook needs to point to https://yourdomain.com/api/stripe/webhook, with events including checkout.session.completed, customer.subscription.updated, and customer.subscription.deleted
- 5
Brand information is centralized in src/config/site.ts, colors in src/app/globals.css, and AI model configuration in src/lib/ai.ts
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in the public repository under the MIT license; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- You are allowed to use, modify, commercialize, and distribute the code of this version for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur separate charges.
- You need to prepare and fill in API keys yourself (such as database, Stripe, OpenAI, Resend, etc.) to run it.
- You need to register and configure a Neon database yourself and provide DATABASE_URL.
- You need to register for Stripe yourself and configure keys; payment features depend on a Stripe account.
- You need to register for OpenAI yourself and configure an API Key; AI features depend on the OpenAI service.
- You need to register for Resend yourself and configure an API Key; email features depend on the Resend service.
- GitHub OAuth credentials are optional; if you need that login method, you must configure it yourself.
- In production, you need to configure a Webhook in the Stripe dashboard yourself, pointing to your own domain.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
cp .env.example .env.local # fill in your API keys
Original README
DATABASE_URL= # Neon → https://console.neon.tech
Original README
STRIPE_SECRET_KEY= # Stripe Dashboard
Original README
OPENAI_API_KEY= # OpenAI Platform
Original README
RESEND_API_KEY= # Resend Dashboard
Original README
GITHUB_CLIENT_ID= # (optional) GitHub OAuth
Original README
https://github.com/sit-in/saasany/blob/main/LICENSEhttps://github.com/sit-in/saasany/blob/main/README.md# Dashboard → Webhooks → https://yourdomain.com/api/stripe/webhook
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-14. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 85 / 100
- Technologies
- Next.js · React
- Website type
- SaaS · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-03-26
- Screenshot last checked
- 2026-10-14
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15
Inspect the recorded source material
SHA-256: b7e35fcc966c86991ed622d0b782d87e28b108fdf1b63dda8db401e9f819287f
2026-10-14T18:56:32.739Z
Source file / repository# saasany
> Production-ready Next.js 16 template for AI SaaS. Auth, payments, AI chat, i18n — out of the box.
[English](README.md) | [中文](README_ZH.md) | [Demo](https://saasany.vercel.app) | [Docs](https://github.com/sit-in/saasany)
[](https://vercel.com/new/clone?repository-url=https://github.com/sit-in/saasany&env=DATABASE_URL,BETTER_AUTH_SECRET,STRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET,NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY,OPENAI_API_KEY,RESEND_API_KEY&project-name=my-saas)
[](https://github.com/sit-in/saasany/actions/workflows/ci.yml)
[](LICENSE)
## Architecture
```
┌─────────────────────────────────────────────────────┐
│ Next.js 16 App Router │
├──────────┬──────────┬──────────┬────────────────────┤
│ Auth │ Payments │ AI │ i18n │
│ Better │ Stripe │ OpenAI │ next-intl │
│ Auth │ Checkout │ Vercel │ (EN/ZH) │
│ OAuth │ Webhooks │ AI SDK │ │
├──────────┴──────────┴──────────┴────────────────────┤
│ Drizzle ORM → Neon PostgreSQL │
├─────────────────────────────────────────────────────┤
│ Tailwind v4 + shadcn/ui │ 6 Color Themes │
│ Instrument Serif + DM Sans + Geist Mono │
├─────────────────────────────────────────────────────┤
│ Deploy: Vercel │
└─────────────────────────────────────────────────────┘
```
## Quick Start
```bash
git clone https://github.com/sit-in/saasany.git my-saas
cd my-saas
npm install
cp .env.example .env.local # fill in your API keys
npm run db:push # init database
npm run dev # http://localhost:3000
```
Or click the **Deploy with Vercel** button above for one-click deployment.
## What's Included
- **Auth** — Email/password + GitHub OAuth, session management
- **Payments** — Stripe subscriptions, checkout, customer portal, webhooks
- **AI** — Streaming chat + text generation, swappable models
- **Dashboard** — Collapsible sidebar, stat cards, settings, billing
- **Admin** — User management, subscription stats, RBAC
- **Blog** — MDX + i18n
- **API Keys** — Generate, list, revoke
- **i18n** — English + Chinese, URL prefix routing
- **6 Themes** — Emerald, Ocean, Violet, Amber, Rose, Zinc
- **Dark Mode** — System-aware
- **SEO** — Sitemap, robots.txt, dynamic OG images
## Stack
```
Next.js 16 (App Router) + React 19 + TypeScript
Tailwind CSS v4 + shadcn/ui
Drizzle ORM + Neon PostgreSQL
Better Auth (email + OAuth)
Stripe (subscriptions + webhooks)
Vercel AI SDK + OpenAI
next-intl (EN/ZH)
Resend (email)
```
## Project Structure
```
src/
├── app/
│ ├── [locale]/
│ │ ├── (auth)/ # Sign in, sign up, forgot password
│ │ ├── (dashboard)/ # Dashboard, settings, billing, AI, admin
│ │ ├── (marketing)/ # Blog, pricing, privacy, terms
│ │ └── page.tsx # Landing page
│ └── api/
│ ├── ai/ # Chat + generation
│ ├── auth/ # Better Auth
│ ├── keys/ # API key management
│ ├── og/ # OG image generation
│ └── stripe/ # Checkout, webhook, portal
├── components/
│ ├── dashboard/ # Sidebar
│ ├── emails/ # Email templates
│ ├── landing/ # Hero, features, pricing
│ ├── layout/ # Header, footer, theme, locale switcher
│ └── ui/ # shadcn/ui
├── config/site.ts # Site config (start here to rebrand)
├── content/blog/ # MDX blog (en/ + zh/)
├── i18n/messages/ # Translation files
└── lib/
├── db/ # Drizzle schema
├── auth.ts # Auth config
├── email.ts # Email
├── stripe.ts # Stripe
└── ai.ts # AI model config
```
## Environment Variables
```bash
DATABASE_URL= # Neon → https://console.neon.tech
BETTER_AUTH_SECRET= # openssl rand -base64 32
STRIPE_SECRET_KEY= # Stripe Dashboard
STRIPE_WEBHOOK_SECRET= # stripe listen --forward-to localhost:3000/api/stripe/webhook
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
OPENAI_API_KEY= # OpenAI Platform
RESEND_API_KEY= # Resend Dashboard
GITHUB_CLIENT_ID= # (optional) GitHub OAuth
GITHUB_CLIENT_SECRET= # (optional)
```
Full list in [`.env.example`](.env.example).
## Customize
**Branding** — Edit `src/config/site.ts`. Name, emails, social links in one file.
**Colors** — Edit `src/app/globals.css`. OKLCH variables. See `DESIGN.md`.
**AI model** — Edit `src/lib/ai.ts`. Any Vercel AI SDK provider.
**Add language** — `src/i18n/config.ts` → `src/i18n/messages/` → `src/content/blog/`.
## Deploy
```bash
# Vercel (recommended)
# 1. Push to GitHub
# 2. Import in Vercel → vercel.com/new
# 3. Add env vars
# 4. Deploy
# Stripe Webhook (production)
# Dashboard → Webhooks → https://yourdomain.com/api/stripe/webhook
# Events: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted
```
## Commands
```bash
npm run dev # dev server
npm run build # production build
npm run lint # lint check
npm run db:push # push schema
npm run db:studio # Drizzle Studio
```
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
## AI 编程出海训练营
From the **[AI 编程出海训练营](https://chuhai.fyyd.net/)** (AI Coding Bootcamp for Global Markets).
Website: https://chuhai.fyyd.net/ · WeChat: 257735
## License
[MIT](LICENSE)
Explore similar templates
Compare previews and descriptions within the same stack and category.

Next.js SaaS Starter
The official Next.js SaaS starter template, integrating email/password authentication, Stripe Checkout subscriptions, a dashboard with user/team CRUD, basic Owner/Member RBAC, and activity logging.
Next.js · SaaS

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

Next-js-Boilerplate
A developer-first Next.js 16 starter with Tailwind CSS 4 and TypeScript, supporting both App Router and Page Router.
Next.js · Starter

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

next-forge
next-forge is a Turborepo-based Next.js template maintained by Vercel, positioned as a starting point for SaaS products.
Next.js · Starter

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS
