Skip to main content
Local development is fully supported and straightforward. You’ll be running the app on your machine in just a few minutes.

Quick Start

1

Make sure you have the prerequisites

You need:
  • Node.js 20.9+
  • pnpm as your package manager
  • A PostgreSQL database (local or hosted — see below)
2

Run the bootstrap wizard

pnpm bootstrap
This single command does a lot for you: it checks your Node version, runs pnpm install, walks you through setting your env vars, runs pnpm db:migrate as soon as your DATABASE_URL is confirmed, and then saves the rest of your config.
3

Start the dev server

pnpm dev
Open http://localhost:3000 and you’re in business.

Database Setup

Supabase PostgreSQL is the recommended default for both local dev and production. It’s free to start and works great with this stack.
Other PostgreSQL hosts that work well: Neon, Railway, Render, Fly, or self-hosted Postgres. Just make sure they support the extensions your enabled features need.

Database Workflow

Your day-to-day database commands:
pnpm db:migrate
  • Schema source of truth: lib/db/schema/*
  • Migration history: drizzle/*
The typical flow: edit your schema files in lib/db/schema/, then run pnpm db:generate to create the SQL migration, then pnpm db:migrate to apply it.

What You Need for Each Feature

Not every feature works with zero config. Here’s what different features need:
  • DATABASE_URL — Your PostgreSQL connection string
  • BETTER_AUTH_SECRET — For session encryption
  • At least one LLM provider key (OpenAI, Anthropic, Google, etc.)
  • Storage provider config (for file uploads)
  • OPENAI_API_KEY (for embeddings)
  • A Postgres host that supports pgvector
  • ELEVENLABS_API_TOKEN
  • Storage provider config (generated audio is persisted)
  • REPLICATE_API_TOKEN
  • Storage provider config (source images and final videos are persisted)
  • Storage provider config (generated images are persisted)
  • REPLICATE_API_TOKEN for Replicate-backed models
  • OPENAI_API_KEY for GPT Image
  • PostHog, Plausible, or DataFast credentials
  • Polar, Stripe, or LemonSqueezy keys and webhook secrets
pnpm bootstrap can collect the storage settings too, so you do not need to hand-wire upload/media env vars up front unless you’re doing a manual setup.

The Local-First Reality

“The app boots locally” does not mean “every feature works locally.” Many features depend on third-party APIs, so you’ll need the right provider keys for whatever you’re testing.
What runs locally:
  • Next.js dev server
  • Your PostgreSQL database (local or hosted)
  • All UI and routing
What needs external services:
  • LLM providers (OpenAI, Anthropic, Google, etc.)
  • Storage (for file uploads)
  • Voice, video, and some image generation
  • Email sending
  • Payment processing
  • Analytics tracking
For most teams, the smoothest path is local Next.js + hosted Supabase PostgreSQL + hosted provider APIs for whatever features you’re actively working on. You don’t need to configure everything at once — just add provider keys as you need them.