Next.jsReactSaaSStarter

nextjs-saas-starter — Next.js SaaS Template

By juliankoehn

A SaaS starter based on the Next.js App Router, integrating Prisma, PostgreSQL, Lucia Auth, and Stripe/Tier billing, including authentication, account settings, and project member management; the repository README still marks it as a work in progress.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

Uses the Next.js /app directory and React to build pages and routes

02

Integrates Lucia Auth, covering registration, login, logout, email verification, and password recovery

03

Account settings support changing username, password, email, timezone, language, and appearance

04

The project module includes creation, renaming, deletion, and member invitations and role management

05

Connects to PostgreSQL via Prisma as the data layer

06

Billing integrates Tier and Stripe, supporting subscriptions and Checkout

Template Details

nextjs-saas-starter is an open-source starter for SaaS scenarios, using Next.js's /app directory to organize pages and routes, paired with React. The data layer uses Prisma as the ORM, connecting to PostgreSQL; authentication is provided by Lucia Auth; billing integrates Tier and Stripe, supporting subscriptions and the Checkout flow, with pricing models configured through the Tier Model Builder. Styling and UI use tailwindcss and shadcn.

According to the README's completion checklist, the authentication module covers registration, forgot password, change password, email verification, login, and logout; the account module supports changing username/name, password, email (with confirmation), timezone, language, appearance, and deleting the account (restricted when the user is a project Owner). The project module supports creation, renaming, deletion (the restriction that only the Owner can delete is not yet complete), and member management supports invitations (create invitation, send email, accept invitation, remove invitation), removing members (non-Owners can leave on their own), and changing roles. The billing module is not yet checked off as complete in the checklist.

The repository README explicitly states "it's still a work in progress," so this template is better suited as a starting point for learning or secondary development rather than a ready-to-launch product. Running locally requires copying .env.example to .env.local and configuring the corresponding environment variables; the repository also provides a Docker Compose configuration, using mailpit for local email development.

Next.jsReactSaaSStarter

Is it right for your project?

Use Cases

  • SaaS project starter code that needs authentication and account settings
  • Projects that want to reference the structure of Next.js App Router combined with Prisma and PostgreSQL
  • Team collaboration products that need basic implementations of projects, member invitations, and role management
  • Developers planning to integrate Stripe subscription billing and wanting an existing integration example

Suitable For

  • Developers familiar with Next.js and React who want to quickly set up a SaaS skeleton
  • Engineers who need to study how Lucia Auth and Prisma are integrated
  • Teams preparing to build on the existing codebase and complete the billing module themselves

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Before running locally, execute npm i, copy .env.example to .env.local, and fill in the required environment variables

  2. 2

    Use npm run dev to start the development server, accessible by default at http://localhost:3000

  3. 3

    The repository provides a Docker Compose configuration, and local email development uses mailpit

  4. 4

    The README notes the project is still in progress and the billing module is not complete; verify feature status before use

  5. 5

    The code is under the MIT license, but third-party assets such as demo images, fonts, and icons require separate license verification

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; 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

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full 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

  • Billing features depend on third-party services Tier and Stripe; using subscriptions and Checkout requires registering the corresponding accounts and configuring API keys, which may incur service fees.
  • Authentication is implemented based on Lucia Auth; deployment requires configuring session and authentication-related environment variables yourself.
  • The data layer uses Prisma, requiring a PostgreSQL database connection and connection string configuration.
  • Local running requires copying .env.example to .env.local and filling in the required environment variables; otherwise it cannot start properly.
  • Local email development depends on the mailpit service, and email-related features require this service.
  • The project README states it is still in progress and the billing module is incomplete; features may be incomplete and it is not suitable for direct use as a production-ready product.
  • 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 additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Pricing using [**Tier**](https://www.tier.run/) and [**Stripe**](https://stripe.com/)

Original README

Authentication using [**Lucia Auth**](https://lucia-auth.com/)

Original README

ORM using [**Prisma**](https://www.prisma.io/)

Original README

cp .env.example .env.local

Original README

using mailpit for local email development.

Original README

it's still a work in progress.

Original README
https://github.com/juliankoehn/nextjs-saas-starter/blob/main/LICENSE.mdhttps://github.com/juliankoehn/nextjs-saas-starter/blob/main/README.md

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
Partly documented · 69 / 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
2023-11-22
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: 3a8ba2439878f102d88775564bcd8eba45d0a8bb3e75438c79b5408b64f88dc3

2026-10-01T01:22:10.896Z

Source file / repository
# Next.js SaaS Prisma PostgreSQL Auth Starter

This project aims to create a metered billing SaaS utilizing Next.js, Prisma, PostgreSQL, and Stripe.

> :warning: **it's still a work in progress.**

## Features

- NextJS 14 `/app` dir
- Pricing using [**Tier**](https://www.tier.run/) and [**Stripe**](https://stripe.com/)
  - Pricing model using Tier Model Builder
  - Subscriptions and Checkout
- Authentication using [**Lucia Auth**](https://lucia-auth.com/)
- ORM using [**Prisma**](https://www.prisma.io/)
- [tailwindcss](https://tailwindcss.com/) and [shadcn](https://ui.shadcn.com/) for styling and UI

## Running Locally

First, run the development server:

```
npm i 
cp .env.example .env.local
npm run dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

## License

License under the [MIT License](LICENSE).

## Features

- [x] **Authentication**
  - [x] Registration
  - [x] Forgot Password
  - [x] Change Password
  - [x] Email Verification
  - [x] Login
  - [x] Logout
- [x] **Account**
  - [x] Change Username / Name
  - [x] Change Password
  - [x] Change Email
    - [x] Confirm Email
  - [x] Change Timezone
  - [x] Change Language
  - [x] Change Appearance
  - [x] Delete Account restrict when Owner of Projects
- [ ] **Projects**
  - [x] Create
  - [x] Change Name
  - [x] Delete Project
    - [ ] Restrict Delete to Owner
  - [x] **Members**
    - [x] Add
      - [x] Create Invitation
        - [x] Send Email
      - [x] Accept Invitation
      - [x] Remove Invitation
    - [x] Remove
      - [x] Self-remove only if not Owner
    - [x] Change Role
- [ ] **Billing**

## Docker Compose

using mailpit for local email development.

## Development

### Emails

> :warning: docs section is WIP
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.