Next.jsReactSaaSStarter

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-14View source

What stands out

A quick read of the recorded project description.

01

Authentication is based on Better Auth, supports email/password and GitHub OAuth, and includes session management

02

Payments integrate Stripe subscriptions, Checkout, customer portal, and Webhooks

03

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

04

The data layer uses Drizzle ORM connected to Neon PostgreSQL and is initialized via npm run db:push

05

Internationalization uses next-intl, includes English and Chinese, and uses URL-prefix routing

06

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.

Next.jsReactSaaSStarter

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. 1

    After cloning the repository, run npm install, copy .env.example to .env.local, and fill in API keys

  2. 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. 3

    Run npm run db:push to initialize the database, then run npm run dev to start at http://localhost:3000

  4. 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. 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

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

# Dashboard → Webhooks → https://yourdomain.com/api/stripe/webhook

Original README
https://github.com/sit-in/saasany/blob/main/LICENSEhttps://github.com/sit-in/saasany/blob/main/README.md

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)

[![Deploy with Vercel](https://vercel.com/button)](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)
[![CI](https://github.com/sit-in/saasany/actions/workflows/ci.yml/badge.svg)](https://github.com/sit-in/saasany/actions/workflows/ci.yml)
[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](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)
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.