Skip to content

miftah-ab/launchfast

Repository files navigation

Next.js TypeScript Tailwind CSS Supabase Stripe License

LaunchFast

Ship your SaaS in days, not months.

Important

πŸš€ One-click demo : No account needed. Click "Live Demo" on the homepage to explore instantly. Or use: demo@launchfast.com / demo123456 Live Demo URL: https://launchfast-saas.vercel.app

Landing Page Note: The highly converting Landing Page built for modern SaaS products.

Dashboard Interface Note: A clean, user-friendly Dashboard for managing tasks and user settings.

System Metrics Note: Comprehensive system overview with AI usage analytics and user growth tracking.

Features:

  • βœ… Authentication : signup, login, email verification, password reset
  • βœ… Supabase integration : PostgreSQL database with Row Level Security
  • βœ… Stripe subscriptions : checkout, webhooks, billing portal
  • βœ… Protected routes : middleware-based auth protection
  • βœ… Dashboard : stats, activity feed, upgrade prompts
  • βœ… User settings : profile update, avatar upload, password change
  • βœ… Billing page : subscription management, payment history
  • βœ… Dark mode : system preference + manual toggle
  • βœ… Fully responsive : mobile, tablet, desktop
  • βœ… One-click demo : instant access without registration
  • πŸ”œ Google OAuth
  • πŸ”œ Team collaboration
  • πŸ”œ Usage analytics

Tech Stack

Category Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS + shadcn/ui
Database Supabase (PostgreSQL)
Auth Supabase Auth
Payments Stripe
Deployment Vercel
Storage Supabase Storage

Project Structure

app/
β”œβ”€β”€ (auth)/
β”‚   β”œβ”€β”€ login/page.tsx
β”‚   β”œβ”€β”€ reset-password/page.tsx
β”‚   β”œβ”€β”€ signup/page.tsx
β”‚   └── verify-email/page.tsx
β”œβ”€β”€ (dashboard)/
β”‚   β”œβ”€β”€ dashboard/
β”‚   β”‚   β”œβ”€β”€ billing/page.tsx
β”‚   β”‚   β”œβ”€β”€ settings/page.tsx
β”‚   β”‚   └── page.tsx
β”‚   └── layout.tsx
β”œβ”€β”€ (marketing)/
β”‚   β”œβ”€β”€ pricing/page.tsx
β”‚   └── page.tsx
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ stripe/
β”‚   β”‚   β”œβ”€β”€ checkout/route.ts
β”‚   β”‚   └── webhook/route.ts
β”‚   └── ...
└── layout.tsx

components/
β”œβ”€β”€ auth/
β”œβ”€β”€ dashboard/
β”œβ”€β”€ marketing/
└── ui/

lib/
β”œβ”€β”€ supabase/
β”œβ”€β”€ stripe.ts
└── utils.ts

Getting Started

Prerequisites

  • Node.js 18+
  • A Supabase account (free)
  • A Stripe account (free, test mode)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/launchfast.git
    cd launchfast
  2. Install dependencies

    npm install
  3. Copy environment variables

    cp .env.local.example .env.local

Environment Variables

Variable Description Where to find it
NEXT_PUBLIC_SUPABASE_URL Your Supabase project URL Supabase dashboard β†’ Settings β†’ API
NEXT_PUBLIC_SUPABASE_ANON_KEY Supabase anon key Supabase dashboard β†’ Settings β†’ API
SUPABASE_SERVICE_ROLE_KEY Supabase service role key Supabase dashboard β†’ Settings β†’ API
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY Stripe publishable key Stripe dashboard β†’ Developers β†’ API keys
STRIPE_SECRET_KEY Stripe secret key Stripe dashboard β†’ Developers β†’ API keys
STRIPE_WEBHOOK_SECRET Stripe webhook signing secret Stripe dashboard β†’ Webhooks
NEXT_PUBLIC_STRIPE_PRO_PRICE_ID Stripe Pro plan price ID Stripe dashboard β†’ Products
NEXT_PUBLIC_STRIPE_BUSINESS_PRICE_ID Stripe Business plan price ID Stripe dashboard β†’ Products
NEXT_PUBLIC_URL Your app URL http://localhost:3000 for local

Database Setup

  1. Create a new Supabase project.
  2. Go to the SQL Editor in your Supabase dashboard and run the contents of supabase/schema.sql.
  3. Create a storage bucket called "avatars" and set its access to Public.

Stripe Setup

  1. Create two products in the Stripe dashboard (Test Mode): Pro ($9/mo) and Business ($29/mo).
  2. Copy the resulting Price IDs into your .env.local.
  3. Set up a webhook endpoint (using Stripe CLI for local testing) pointing to /api/stripe/webhook.
  4. Add these webhook events: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted.

Run Locally

# Start development server
npm run dev

Open https://launchfast-saas.vercel.app in your browser.

Test Payments

Tip

Use Stripe test card: 4242 4242 4242 4242 Β· Any future expiry Β· Any CVC

Deployment

Deploy to Vercel (recommended)

  1. Push your code to GitHub.
  2. Import the repository on vercel.com.
  3. Add all environment variables in the Vercel dashboard.
  4. Deploy.

For production:

  • Switch Stripe keys from test to live mode.
  • Update NEXT_PUBLIC_URL to your real domain.
  • Set up Stripe webhook for your production URL.

Deploy with Vercel

Branch Strategy

Branch Purpose Environment
main Production - live site Stripe live keys
dev Development - preview Stripe test keys

All development happens on the dev branch. Merge to main only when ready to go live.

Roadmap

  • Email/password authentication
  • Stripe subscriptions
  • Protected dashboard
  • Dark mode
  • One-click demo
  • Google OAuth
  • Team workspaces
  • Usage analytics dashboard
  • API access for paid plans
  • Email notifications

License

MIT License - feel free to use this as a starting point for your own SaaS.

About

Full-stack SaaS starter built with Next.js, Supabase, and Stripe. Includes auth, subscriptions, protected dashboard, and one-click demo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors