Built with the Next.js App Router and TypeScript, with components organized into directories such as app, components, lib, and hooks
nextjs-saas-starter-kit — Next.js SaaS Template
By rizkraf
A SaaS starter template built on the Next.js App Router, with built-in authentication, organization management, dashboard, and Midtrans payment integration.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Authentication is based on Better Auth, supports email/password and Google OAuth, and protects dashboard routes via middleware
Organization management supports creating and switching organizations, managing members and roles, and includes a basic implementation of member invitations
The dashboard includes a project CRUD example, with data fetching using TanStack React Query, loading states, and optimistic updates
Billing integrates Midtrans, including plan selection, subscription status, transaction history, and a webhook handler
Uses Prisma to operate PostgreSQL, React Hook Form and Zod for forms and validation, and Biome for code checking
Template Details
This is an open-source starter template for SaaS products, built with the Next.js App Router and TypeScript, with a UI based on Tailwind CSS and shadcn/ui, and icons from HugeIcons. The README states that its purpose is to accelerate SaaS application development, and it already includes common modules such as authentication, organization management, dashboard, and payments.
At the feature level, authentication is provided by Better Auth, supports email/password login and Google OAuth, and protects dashboard routes via middleware. Organization management supports creating and switching organizations, managing members and roles, and a basic implementation of member invitations. The dashboard provides a responsive sidebar layout and includes a project CRUD example, with data fetching using TanStack React Query, loading states, and optimistic updates. The billing module integrates Midtrans, including plan selection, subscription status, transaction history, and a webhook handler for automatically updating payment status. The data layer uses Prisma, forms and validation use React Hook Form and Zod respectively, and code checking uses Biome.
Usage limitations: the template depends on a PostgreSQL database and requires you to configure keys for Better Auth, Google OAuth, and Midtrans yourself; the webhook requires setting the notification URL in the Midtrans dashboard, and local testing is best done with a tunneling tool. The README does not provide deployment, performance, or production-environment verification instructions, so before actual use you should verify dependency versions and external service terms yourself.
Is it right for your project?
Use Cases
- Needing to quickly build a SaaS application skeleton with login, organizations, and subscription billing
- Wanting to reference how authentication, dashboard, and payment modules are organized under the Next.js App Router
- Projects targeting the Indonesian market and planning to use Midtrans as the payment channel
- Needing a starting point for data models and migrations based on PostgreSQL and Prisma
Suitable For
- Developers familiar with Next.js and TypeScript who want to reduce work on building foundational modules
- SaaS projects that need email/password and Google OAuth login
- Teams planning to integrate Midtrans and handle subscriptions and transaction records
- Projects using PostgreSQL and accepting Prisma as the ORM
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 18+ and a PostgreSQL database; Bun is recommended as the package manager, but npm, yarn, or pnpm can also be used
- 2
Copy .env.example to .env and fill in DATABASE_URL, BETTER_AUTH_SECRET, BETTER_AUTH_URL, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and the Midtrans keys
- 3
In the Midtrans dashboard, point the notification URL to /api/billing/webhook; for local testing, a cloudflared tunnel can be used
- 4
Start the database container with bun run db:start, then push the Prisma schema with bun run db:push; optionally run bun run db:seed to populate initial data
- 5
Run bun run dev to start the local development server, accessible by default at http://localhost:3000
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of that 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
- Using the payment feature requires registering a Midtrans account and obtaining a Server Key and Client Key, which is an external service dependency.
- Google OAuth login requires applying for and configuring a Google client ID and secret yourself, which is an external service dependency.
- The template depends on a PostgreSQL database, and you must prepare and configure DATABASE_URL yourself for it to run.
- Automatic payment status updates require configuring the webhook notification URL in the Midtrans dashboard, and local testing requires a tunneling tool.
- Demo images, fonts, icons, and other third-party assets must 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.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Daftar akun di [Midtrans Dashboard](https://dashboard.midtrans.com/).
Original README
GOOGLE_CLIENT_ID` & `GOOGLE_CLIENT_SECRET
Original README
Database PostgreSQL
Original README
https://github.com/rizkraf/nextjs-saas-starter-kit/blob/main/LICENSEhttps://github.com/rizkraf/nextjs-saas-starter-kit/blob/main/README.mdatur **Notification URL** di dashboard Midtrans
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 92 / 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-05-12
- Screenshot last checked
- 2026-10-01
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.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 53832e6546790c25706b0838a5ea03094055d97143916903e47dd49c07555b9d
2026-10-01T01:22:40.820Z
Source file / repository# Next.js SaaS Starter Kit Indonesia
Boilerplate SaaS lengkap dan siap produksi yang dibangun dengan teknologi modern. Dibuat untuk mempercepat proses development aplikasi SaaS Anda dengan fitur-fitur utama seperti autentikasi, manajemen organisasi, sistem pembayaran, dan tampilan dashboard yang modern.

## 🚀 Tech Stack
- **Framework:** [Next.js 15](https://nextjs.org/) (App Router)
- **Bahasa:** [TypeScript](https://www.typescriptlang.org/)
- **Styling:** [Tailwind CSS](https://tailwindcss.com/)
- **UI Components:** [shadcn/ui](https://ui.shadcn.com/)
- **Icons:** [HugeIcons](https://hugeicons.com/)
- **Autentikasi:** [Better Auth](https://www.better-auth.com/)
- **ORM:** [Prisma](https://www.prisma.io/)
- **Data Fetching:** [TanStack React Query](https://tanstack.com/query/latest)
- **Pembayaran:** [Midtrans](https://midtrans.com/) (Sudah terintegrasi)
- **Validasi:** [Zod](https://zod.dev/)
- **Forms:** [React Hook Form](https://react-hook-form.com/)
## ✨ Fitur Utama
- **🔐 Sistem Autentikasi**
- Login via Email/Password & Google OAuth
- Proteksi route dashboard menggunakan Middleware
- Manajemen sesi pengguna via Better Auth
- **🏢 Manajemen Organisasi**
- Membuat dan berpindah antar organisasi dengan mudah
- Kelola anggota tim dan hak akses (role)
- Sistem undangan member (siap dikembangkan lebih lanjut)
- **📊 Modern Dashboard**
- Layout Sidebar yang responsif
- Manajemen proyek dengan fitur CRUD lengkap (Create, Read, Update, Delete)
- UI interaktif dengan loading state dan optimistic updates menggunakan React Query
- **💳 Billing & Subscription**
- Integrasi pembayaran menggunakan Midtrans
- Manajemen langganan (Pilihan Paket, Status Langganan)
- Riwayat transaksi lengkap
- Webhook handler untuk update status pembayaran otomatis
- **🛠️ Developer Experience**
- Full Type-safe
- Konfigurasi Biome yang rapi untuk linting kode
- Arsitektur komponen yang modular dan mudah dikembangkan
## 📦 Panduan Awal
### Persyaratan Sistem
- Node.js (v18+)
- Bun (Rekomendasi) atau npm/yarn/pnpm
- Database PostgreSQL
### Instalasi
1. **Clone repository**
```bash
git clone https://github.com/rizkraf/nextjs-saas-starter-kit.git
cd nextjs-saas-starter-kit
```
2. **Install dependencies**
```bash
bun install
```
3. **Konfigurasi Environment**
Salin file contoh environment dan sesuaikan dengan key Anda:
```bash
cp .env.example .env
```
Isi variabel environment berikut:
- `DATABASE_URL`
- `BETTER_AUTH_SECRET` & `BETTER_AUTH_URL`
- `GOOGLE_CLIENT_ID` & `GOOGLE_CLIENT_SECRET`
- `MIDTRANS_SERVER_KEY`, `MIDTRANS_CLIENT_KEY`
4. **Konfigurasi Midtrans (Pembayaran)**
- Daftar akun di [Midtrans Dashboard](https://dashboard.midtrans.com/).
- Ambil **Server Key** dan **Client Key** dari menu `Settings > Access Keys`.
- Update `.env`:
```env
MIDTRANS_SERVER_KEY=...
MIDTRANS_CLIENT_KEY=...
MIDTRANS_IS_PRODUCTION=false # Set true untuk mode produksi
```
- **Setup Webhook (Penting):**
Agar status pembayaran terupdate otomatis, atur **Notification URL** di dashboard Midtrans ke:
`https://domain-anda.com/api/billing/webhook`
_(Gunakan Cloudflare Tunnel untuk testing lokal)_
```bash
npx cloudflared tunnel --url http://localhost:3000
```
5. **Setup Database**
Pastikan Docker sudah berjalan, lalu jalankan perintah berikut untuk memulai container database:
```bash
bun run db:start
```
Setelah database berjalan, push schema Prisma:
```bash
bun run db:push
```
(Opsional) Isi database dengan data awal (seeding):
```bash
bun run db:seed
```
6. **Jalankan Project**
Jalankan server development lokal:
```bash
bun run dev
```
Buka [http://localhost:3000](http://localhost:3000) untuk melihat hasilnya.
## 🗂️ Struktur Folder
```
src/
├── app/ # Halaman Next.js App Router & API Routes
│ ├── (auth)/ # Halaman Autentikasi (Sign in, Sign up)
│ ├── (dashboard)/ # Halaman Dashboard (Perlu login)
│ └── api/ # Backend API Endpoints
├── components/ # UI Components reusable
│ ├── ui/ # Komponen dasar shadcn/ui
│ ├── dashboard/ # Komponen khusus Dashboard
│ └── landing/ # Komponen Landing Page
├── lib/ # Utilities, auth client, query client
├── hooks/ # Custom React Hooks
└── wrapper/ # Providers (QueryProvider, dll.)
```
## 📜 Lisensi
Didistribusikan di bawah Lisensi MIT. Lihat file `LICENSE` untuk informasi lebih lanjut.
## 🤝 Kontribusi
Kontribusi sangat terbuka! Jangan ragu untuk membuat Pull Request.
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
