Next.jsReactPortfolioSaaSStarter

saas-forge-kit — Next.js Portfolio Template

By Antonio-Tamburello

A SaaS starter template based on Next.js and React, with built-in Clerk authentication, Neon PostgreSQL + Prisma database, and optional Stripe billing, suitable for quickly building SaaS products, portfolios, or experimental projects.

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-02View source

What stands out

A quick read of the recorded project description.

01

Built with Next.js App Router, React, and TypeScript

02

Integrates Clerk authentication with email/password, social login, and MFA

03

Uses Neon PostgreSQL and Prisma ORM for data management

04

Optional Stripe billing supporting one-time payments and subscriptions

05

Styled with Tailwind CSS and shadcn/ui components, including dark/light themes

06

Provides pnpm scripts covering development, build, database migration, and Stripe local listening

Template Details

SaaS Forge Kit is a starter template for SaaS products, portfolios, and experimental projects. The author positions it as a foundation where you can "clone it and start writing features," avoiding rebuilding the same architecture. The project is built on Next.js and React, written in TypeScript, styled with Tailwind CSS and shadcn/ui components, and animated with Motion (Framer Motion).

Functionally, the template integrates Clerk authentication (email/password, social login, MFA), uses Neon PostgreSQL with Prisma ORM for the database, and provides Stripe billing integration (disabled by default, enabled via environment variables, supporting both one-time payments and subscriptions). The project structure follows the App Router, including directories such as api, auth, dashboard, pricing, as well as prisma and public asset directories.

Before use, you need to prepare external services yourself: Clerk keys, a Neon database connection string, and, when enabling billing, Stripe keys, webhook secret, and Price ID. The README specifies Vercel as the deployment path; other platforms require Node.js 18+ and Neon PostgreSQL. The template is MIT licensed, allowing free use, modification, commercial use, and distribution, but third-party assets such as demo images, fonts, and icons require separate license verification, and external services like domain, hosting, database, and payment may incur additional charges.

Next.jsReactPortfolioSaaSStarter

Is it right for your project?

Use Cases

  • Quickly launch a SaaS product prototype with authentication and billing capabilities
  • Build a personal portfolio or developer homepage
  • Serve as an engineering starting point for experimental web projects
  • Validate integration approaches for Clerk, Neon, Stripe, and Next.js

Suitable For

  • Developers familiar with Next.js and React
  • Teams wanting to skip repetitive architecture setup and directly write business features
  • Projects needing authentication and optional subscription billing foundations
  • Users willing to configure Clerk, Neon, and Stripe external services themselves

Getting started & customization

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

  1. 1

    Install dependencies with pnpm i, and copy .env.example to .env

  2. 2

    Create a project in the Clerk console and fill in NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY

  3. 3

    Obtain the database connection string from the Neon console and fill in DATABASE_URL

  4. 4

    Run pnpm db:generate and pnpm db:migrate to generate the Prisma client and apply migrations

  5. 5

    Billing is disabled by default; set ENABLE_BILLING=true and configure Stripe keys, webhook secret, and Price ID

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 applies to that version's code and does not imply that 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

  • Using authentication features requires registering a Clerk account and obtaining keys; this is an external service dependency and may incur costs.
  • The database relies on the external Neon PostgreSQL service; you must register and configure a connection string yourself, which may incur costs.
  • Enabling billing requires configuring Stripe keys, webhook secret, and Price ID; this is an external paid service.
  • The deployment path is primarily Vercel; other platforms require Node.js 18+ and Neon PostgreSQL, and hosting may incur additional charges.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone cannot be used to judge them.
  • External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Add your Clerk keys from https://dashboard.clerk.com

Original README

Add your Neon database URL from https://console.neon.tech

Original README

Configure Stripe variables:

Original README

This project is optimized for deployment on Vercel:

Original README
https://github.com/Antonio-Tamburello/saas-forge-kit/blob/main/LICENSEhttps://github.com/Antonio-Tamburello/saas-forge-kit/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-02. 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 · 88 / 100
Technologies
Next.js · React
Website type
Portfolio · 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-02

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: 3bdb80f26610c41997a0f4dbabd8f11135bb26a7d81e707e9377fa854529602b

2026-10-02T22:12:33.073Z

Source file / repository
# 🚀 SaaS Forge Kit

A modern, production-ready SaaS boilerplate with authentication, billing, and deployment-ready features.

## ✨ Features

- **🏗️ Framework**: Next.js 16 with App Router
- **🗃️ Database**: Neon PostgreSQL with Prisma ORM
- **🎨 Styling**: Tailwind CSS with shadcn/ui components
- **🔐 Authentication**: Clerk (Email/Password, Social Login, MFA)
- **💳 Billing**: Stripe integration with subscription & one-time payments (optional)
- **📱 UI/UX**: Responsive design with dark/light theme
- **🎬 Animations**: Motion (Framer Motion) ready
- **⚡ Performance**: Neon serverless driver optimized for Vercel Edge
- **🛡️ Type Safety**: Full TypeScript support with Zod validation
- **📦 Package Manager**: pnpm for fast, efficient installs

## 🚀 Quick Start

```bash
# Clone and install dependencies
pnpm i

# Setup environment
cp .env.example .env

# Add your Clerk keys from https://dashboard.clerk.com
# Add your Neon database URL from https://console.neon.tech

# Generate Prisma client and apply migrations
pnpm db:generate
pnpm db:migrate

# Start development server
pnpm dev
```

Open: http://localhost:3000

## 🔧 Configuration

### 🔐 Authentication (Clerk)

1. Create a project at [dashboard.clerk.com](https://dashboard.clerk.com)
2. Copy your keys to `.env`:
   ```env
   NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
   CLERK_SECRET_KEY=sk_test_...
   ```
3. Configure social providers (Google, GitHub, etc.) directly in the Clerk dashboard — no code changes needed.

### 💳 Stripe Billing (Optional)

By default, billing is disabled:

```env
ENABLE_BILLING=false
```

To enable billing:

1. Set `ENABLE_BILLING=true`
2. Configure Stripe variables:
   ```env
   STRIPE_SECRET_KEY=sk_...
   STRIPE_WEBHOOK_SECRET=whsec_...
   ```
3. Choose billing mode:
   ```env
   BILLING_MODE=payment     # One-time payments
   BILLING_MODE=subscription # Recurring subscriptions
   ```
4. Add your Stripe Price IDs:
   ```env
   # For subscription mode
   STRIPE_PRICE_ID_SUBSCRIPTION=price_...

   # For payment mode
   STRIPE_PRICE_ID_STARTER=price_...
   STRIPE_PRICE_ID_PRO=price_...
   STRIPE_PRICE_ID_ENTERPRISE=price_...
   ```

Listen to webhooks locally:
```bash
pnpm stripe:listen
```

## 📁 Project Structure

```
├── src/
│   ├── app/                 # Next.js App Router pages
│   │   ├── api/            # API routes
│   │   ├── auth/           # Authentication pages (Clerk)
│   │   ├── dashboard/      # Protected dashboard
│   │   └── pricing/        # Pricing page
│   ├── components/         # Reusable UI components
│   ├── lib/               # Utility functions and configs
│   └── server/            # Server-side utilities
├── prisma/                # Database schema and migrations
└── public/               # Static assets
```

## 🛠️ Available Scripts

```bash
pnpm dev          # Start development server
pnpm build        # Build for production
pnpm start        # Start production server
pnpm db:generate  # Generate Prisma client
pnpm db:migrate   # Run database migrations
pnpm db:studio    # Open Prisma Studio
pnpm stripe:listen # Listen to Stripe webhooks locally
```

## 🏗️ Tech Stack Details

- **Frontend**: Next.js 16, React, TypeScript
- **Styling**: Tailwind CSS, shadcn/ui, Radix UI
- **Animations**: Motion (Framer Motion)
- **Database**: Neon PostgreSQL, Prisma ORM
- **Authentication**: Clerk
- **Payments**: Stripe
- **Deployment**: Vercel-ready
- **Development**: pnpm

## 📝 Environment Variables

Copy `.env.example` to `.env` and configure:

```env
# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000
DATABASE_URL=postgresql://[email protected]/dbname

# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...

# Stripe Billing (Optional)
ENABLE_BILLING=false
BILLING_MODE=payment
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
```

## 🚀 Deployment

This project is optimized for deployment on Vercel:

1. Push your code to GitHub
2. Import project in Vercel
3. Configure environment variables
4. Deploy!

For other platforms, ensure you have Node.js 18+ and a Neon PostgreSQL database.

## 💡 Key Features Explained

### Dynamic Pricing
- Prices are fetched directly from Stripe in real-time
- Supports both one-time payments and subscriptions
- Prevents duplicate subscriptions with smart UI states

### Smart Billing Logic
- **Free Tier**: Users see all available plans
- **Paid Tier**: Users see upgrade/downgrade options (excluding current plan)
- **Real-time Updates**: Billing history with cancellation tracking

### Production Ready
- TypeScript for type safety
- Zod for runtime validation
- Error boundaries and loading states
- SEO optimized with metadata API

## 🤝 Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## 📄 License

This project is open source and available under the [MIT License](LICENSE).

## 👨‍💻 Author

**Antonio Tamburello**

- 🔗 LinkedIn: [https://www.linkedin.com/in/antonio-tamburello/](https://www.linkedin.com/in/antonio-tamburello/)
- 🐙 GitHub: [https://github.com/Antonio-Tamburello](https://github.com/Antonio-Tamburello)

---

*Built with ❤️ for developers who want to ship fast* 🚀
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.