Quickstart
Clone, configure three environment variables, and have SyntaxKit running locally in about five minutes.
Last updated on
3 min readThis is the shortest path from a fresh clone to a working local app. You only need a database, an app URL, and an auth secret. Every other integration (OAuth, Stripe, storage, email, analytics) is opt-in and lives in Setup.
Prerequisites
Node.js 22+
Use the version pinned in .nvmrc or your version manager of choice.
pnpm 10+
The repo is a pnpm workspace. Install with corepack enable && corepack prepare pnpm@latest --activate.
PostgreSQL
A local Docker container or any hosted Postgres (Neon, Supabase, RDS) works.
Get A Database
Pick whichever option matches your machine. You'll paste the resulting connection string into DATABASE_URL in the next section.
Start a throwaway local Postgres in one command:
docker run --name syntaxkit-postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=syntaxkit \
-p 5432:5432 \
-d postgres:16Then use this connection string:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/syntaxkit"Run It
Configure your environment
Copy the example env file and open it:
cp apps/web/.env.example apps/web/.envFor the first run, only fill these three values:
DATABASE_URL: the connection string from the step above.NEXT_PUBLIC_APP_URL:http://localhost:3000is fine.BETTER_AUTH_SECRET: generate withopenssl rand -base64 32.
pnpm setup:doctor rejects the placeholder secret and any value shorter than 32 characters. Generate a real one before moving on.
Install dependencies
pnpm installValidate your setup
pnpm setup:doctorThe doctor checks your env file, reports which optional integrations are configured, and tells you whether the database is reachable. If anything is wrong, it prints exactly what to fix.
Apply database migrations
pnpm db:migrate:devThis creates the schema in your database and generates the Prisma client. Use pnpm db:migrate:deploy for production-style non-interactive migration application.
Start the dev server
pnpm devThe product app boots on http://localhost:3000. The docs site you're reading runs separately on http://localhost:3001 via pnpm docs:dev.
Open The App
Visit http://localhost:3000 and sign up with an email and password. SyntaxKit creates your personal organization automatically on first sign-up.
OAuth providers, Stripe billing, file uploads, and PostHog analytics intentionally stay disabled until you configure them in Setup. The corresponding UI surfaces remain visible with disabled-state messaging, so you can see where each integration plugs in.
Optional Niceties
Useful add-ons once the app is running. Skip them on a first pass.
Become an admin
Promote your account with pnpm admin:bootstrap --email you@example.com, then sign out and back in to refresh your session.
Seed demo data
Run pnpm db:seed:demo to load sample organizations and an admin user (admin@demo.syntaxkit.com / password123).
Run the docs locally
pnpm docs:dev starts this documentation site on http://localhost:3001 with hot reload.
Where To Go Next
Setup
Wire up OAuth, Stripe, storage, email, analytics, and abuse protection.
Environment Variables
The full reference of every variable the kit reads, grouped by subsystem.
Troubleshooting
Fixes for the friction points that come up most often during a first run.
Project Structure
A visual map of the monorepo so you know where to make your next change.
