Docs
Installation

Installation

How to install the project.

Create project

Start by creating a new Next.js project using create-next-app:

npx create-next-app my-saas-project --example "https://github.com/networker-technologies/next-saas-starter"

Or deploy with Vercel :

Deploy with Vercel

A good way to create your repository, but the deployment will fail because you need to add your environment variables locally in your project. Follow the documentation for that.

Install dependencies

Enter in the folder and install dependencies for your project:

cd my-saas-project
pnpm install

Create a .env file

Copy/paste the .env.example in the .env file:

.env
# -----------------------------------------------------------------------------
 
# App
 
# -----------------------------------------------------------------------------
 
NEXT_PUBLIC_APP_URL="https://localhost:3000"
 
# -----------------------------------------------------------------------------
 
# Authentication (NextAuth v5)
 
# openssl rand -base64 32
 
# -----------------------------------------------------------------------------
 
NEXTAUTH_URL="https://localhost:3000"
AUTH_SECRET=""
 
# -----------------------------------------------------------------------------
 
# Social Login (Next Auth v5)
 
# -----------------------------------------------------------------------------
 
# GITHUB
 
GITHUB_CLIENT_ID="Iv23liISsjUReOHWslpe"
GITHUB_CLIENT_SECRET="1172482aa86144c45fbe208df91ab46d06d857fa"
GITHUB_OAUTH_TOKEN="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"
 
# GOOGLE
 
GOOGLE_CLIENT_ID="283051506089-tpr5qmhdg2l6hlrg9cu68k9vlcc6c3ok.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="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"
 
# X
 
X_CLIENT_ID="b0hRc1B1N0locVBVNG1CcnB0V1A6MTpjaQ"
X_CLIENT_SECRET="66qaPqg-lqxkNtWNdzOInxa7k0tV1NeI5iv2aSYx2Onxec2zyW"
 
# -----------------------------------------------------------------------------
 
# ARCJET (Security) Bot detection. Rate limiting. Email validation. Attack protection. Data redaction.
 
# -----------------------------------------------------------------------------
 
ARCJET_KEY="ajkey_01jcpdns1een9r4z0s83trveqy"
 
# -----------------------------------------------------------------------------
 
# FIREBASE OTP
 
# -----------------------------------------------------------------------------
 
FIREBASE_API_KEY=""
FIREBASE_AUTH_DOMAIN=""
FIREBASE_PROJECT_ID=""
FIREBASE_STORAGE_BUCKET=""
FIREBASE_MESSAGING_SENDER_ID=""
FIREBASE_APP_ID=""
 
# -----------------------------------------------------------------------------
 
# Database (PRISMA)
 
# -----------------------------------------------------------------------------
 
POSTGRES_PRISMA_URL=""
POSTGRES_URL_NO_SSL=""
POSTGRES_URL_NON_POOLING=""
POSTGRES_USER=""
POSTGRES_HOST=""
POSTGRES_PASSWORD=""
POSTGRES_DATABASE=""
 
# -----------------------------------------------------------------------------
 
# Email (Resend)
 
# -----------------------------------------------------------------------------
 
RESEND_API_KEY=""
EMAIL_FROM="SaaS Starter App <onboarding@resend.dev>"
 
# -----------------------------------------------------------------------------
 
# Subscriptions (Stripe)
 
# -----------------------------------------------------------------------------
 
STRIPE_API_KEY=""
STRIPE_WEBHOOK_SECRET=""
 
# STANDAR PLAN
 
NEXT_PUBLIC_STRIPE_STD_PRODUCT_ID=""
NEXT_PUBLIC_STRIPE_STD_MONTHLY_PRICE_ID=""
 
# PRO PLAN
 
NEXT_PUBLIC_STRIPE_PRO_PRODUCT_ID=""
NEXT_PUBLIC_STRIPE_PRO_MONTHLY_PLAN_ID=""
NEXT_PUBLIC_STRIPE_PRO_YEARLY_PLAN_ID=""
 
# BUSINESS PLAN
 
NEXT_PUBLIC_STRIPE_BUSINESS_PRODUCT_ID=""
NEXT_PUBLIC_STRIPE_BUSINESS_MONTHLY_PLAN_ID=""
NEXT_PUBLIC_STRIPE_BUSINESS_YEARLY_PLAN_ID=""
 
# Subsciptions (Mercado Pago)
 
MERCADOPAGO_PUBLIC_KEY=""
MERCADOPAGO_ACCESS_TOKEN=""
MERCADOPAGO_CLIENT_ID=""
MERCADOPAGO_CLIENT_SECRET=""
MERCADOPAGO_SECRET_KEY=""
 
# STANDAR PLAN
 
# PRO PLAN
 
# BUSINESS PLAN
 
# -----------------------------------------------------------------------------
 
# Automation (AI)
 
# -----------------------------------------------------------------------------
 
# OPEN AI
 
OPENAI_API_KEY=""
 
# PEXELS
 
PEXELS_API_KEY=""
 
# ELEVEN LABS
 
ELEVENLABS_API_KEY=""
 
# -----------------------------------------------------------------------------
 
# Storage (S3)
 
# -----------------------------------------------------------------------------
 
# UPLOADTHING
 
NEXT_PUBLIC_UPLOADTHING_APP_ID=""
UPLOADTHING_TOKEN="="
UPLOADTHING_SECRET=""
 
# BLOB - VERCEL
 
BLOB_READ_WRITE_TOKEN=""
 
# -----------------------------------------------------------------------------
 
# Analytics
 
# -----------------------------------------------------------------------------
 
# POSTHOG
 
NEXT_PUBLIC_POSTHOG_KEY=""
NEXT_PUBLIC_POSTHOG_HOST="https://us.i.posthog.com"
 
# Google Analytics
 
GA_MEASUREMENT_ID=""
NEXT_PUBLIC_GA_MEASUREMENT_ID=""
NEXT_PUBLIC_BACKEND_URL=""
 
# -----------------------------------------------------------------------------
 
# Maps & Geolocation
 
# -----------------------------------------------------------------------------
 
NEXT_PUBLIC_MAPS_API_KEY=""
 
# -----------------------------------------------------------------------------
 
# Novu Native Notifications Framework
 
# -----------------------------------------------------------------------------
 
NOVU_SECRET_KEY=""
NOVU_APPLICATION_IDENTIFIER=""
NOVU_ENVIRONMENT_ID=""
NOVU_BRIDGE_URL="http://localhost:4000/api/novu"
 
# -----------------------------------------------------------------------------
 
# Sentry Application Performance Monitoring & Error Tracking Software
 
# -----------------------------------------------------------------------------
 
NEXT_PUBLIC_SENTRY_DSN=""
SENTRY_ORG=""
SENTRY_PROJECT=""

Configuration part

Let's check the configuration part for update all environment variables before use pnpm run dev.