Skip to content
Docs just relaunched - explore the new sidebar, OG images, and AI-ready content.
Overview

Quickstart

Clone, configure three environment variables, and have SyntaxKit running locally in about five minutes.

Last updated on

3 min read

This 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 logo

Node.js 22+

Use the version pinned in .nvmrc or your version manager of choice.

pnpm logo

pnpm 10+

The repo is a pnpm workspace. Install with corepack enable && corepack prepare pnpm@latest --activate.

PostgreSQL logo

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:16

Then use this connection string:

DATABASE_URL="postgresql://postgres:postgres@localhost:5432/syntaxkit"

Create a Postgres database in Neon, Supabase, or any provider you prefer, then copy its connection string into DATABASE_URL:

DATABASE_URL="postgresql://<user>:<password>@<host>/<database>"

No other change is needed. Prisma will run migrations against the hosted database the same way.

Run It

Configure your environment

Copy the example env file and open it:

cp apps/web/.env.example apps/web/.env

For the first run, only fill these three values:

  • DATABASE_URL: the connection string from the step above.
  • NEXT_PUBLIC_APP_URL: http://localhost:3000 is fine.
  • BETTER_AUTH_SECRET: generate with openssl rand -base64 32.

pnpm setup:doctor rejects the placeholder secret and any value shorter than 32 characters. Generate a real one before moving on.

Validate your setup

pnpm setup:doctor

The 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:dev

This 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 dev

The 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

Was this page helpful?

On this page