Start

Getting Started

Clone your variant, install dependencies, configure environment variables, and run MoveFast locally in under 5 minutes.

MoveFast ships as 18 pre-built variants. Each variant is a specific combination of database, email provider, and payment provider. You pick the one that matches your stack.

Variant Naming

Variants follow this pattern:

text
<database>-<email>-<payment>

For example:

  • mongodb-resend-stripe = MongoDB + Resend + Stripe
  • supabase-postmark-polar = Supabase/PostgreSQL + Postmark + Polar
  • mongodb-nodemailer-dodo = MongoDB + Nodemailer + Dodo Payments

Available options:

  • Database: mongodb or supabase (PostgreSQL)
  • Email: resend, postmark, or nodemailer
  • Payment: stripe, dodo, or polar

1. Clone Your Variant

Each variant lives on its own Git branch:

bash
git clone -b mongodb-resend-stripe git@github.com:movefa-st/code.git my-saas
cd my-saas

Replace mongodb-resend-stripe with whichever variant you chose.

2. Install Dependencies

bash
npm install

If you chose a Supabase variant, also generate the Prisma client:

bash
npx prisma generate

3. Configure Environment Variables

Copy the example env file:

bash
cp .env.example .env

Open .env and fill in your credentials. Every variant includes only the variables it needs. At minimum you need:

env
# App URLs
NEXT_PUBLIC_WEBSITE_URL=http://localhost:3000
NEXTAUTH_URL=http://localhost:3000
 
# Auth
AUTH_SECRET=generate-with-openssl-rand-base64-32
AUTH_TRUST_HOST=true
 
# Your database credentials (depends on variant)
# Your email provider credentials (depends on variant)
# Your payment provider credentials (depends on variant)

Generate a secure AUTH_SECRET:

bash
openssl rand -base64 32

See the provider-specific docs (Database, Email, Payments) for the exact variables each provider needs.

4. Configure Pricing

Open src/config/pricing.config.ts and:

  1. Set your payment model (ONE_TIME or SUBSCRIPTION)
  2. Set your currency code and symbol
  3. Replace the placeholder product IDs with real ones from your payment provider dashboard
  4. Customize plan names, prices, and features

5. Run the Dev Server

bash
npm run dev

Open http://localhost:3000 in your browser. You should see the landing page with pricing, features, and a sign-in option.

6. Create Your First Admin User

  1. Sign in using Google OAuth or a magic link
  2. Connect to your database and manually update your user's roles field to include ADMIN

For MongoDB:

js
db.users.updateOne({ email: "you@example.com" }, { $set: { roles: ["USER", "ADMIN"] } })

For Supabase/PostgreSQL:

sql
UPDATE "User" SET roles = ARRAY['USER', 'ADMIN'] WHERE email = 'you@example.com';

Now you can access the admin dashboard at /admin/dashboard.

Available Scripts

bash
npm run dev        # Start development server
npm run build      # Build for production
npm run start      # Start production server
npm run lint       # Run ESLint
npm run typecheck  # TypeScript type checking
npm run email:dev  # Preview email templates at localhost:3001

Next Steps