Overview

Installation

Get Kit running locally in a few minutes.

Prerequisites

  • Node.js v24+ - Download Node.js
  • pnpm v10+ - Fast, disk space efficient package manager
  • Git
  • Docker - Required by local Supabase

Install pnpm

npm install -g pnpm

Or the official installer:

curl -fsSL https://get.pnpm.io/install.sh | sh -

Verify

node --version  # v24+
pnpm --version  # v10+
git --version

Quick Start

1. Clone the Repository

git clone https://github.com/bigdropincs/kit.git
cd kit

2. Install Dependencies

pnpm install

3. Environment Setup

One .env file at the repo root drives everything:

cp .env.example .env

Fill in as needed:

  • POSTGRES_URL - defaults to local Supabase; leave as-is for local dev
  • BETTER_AUTH_SECRET - generate with openssl rand -base64 32
  • GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET - only for GitHub login
  • AI_GATEWAY_API_KEY - only for the AI chat
  • NEXT_PUBLIC_SUPABASE_URL / SUPABASE_SERVICE_ROLE_KEY - only for avatar uploads

4. Database Setup

Start local Supabase and push the schema:

pnpm db:start   # Postgres on :54322, Studio on :54323
pnpm db:push    # drizzle-kit push

Using Supabase Cloud instead? Create a project at supabase.com, point POSTGRES_URL at it, and run pnpm db:push.

5. Trim the Starter (Optional)

Only building for one platform? Remove the rest:

pnpm bootstrap

Interactive checklist - deselect mobile, extension, or desktop and it deletes them cleanly.

6. Start Development

pnpm dev        # All apps
pnpm dev:web    # Web only

Project Structure Overview

kit/
├── apps/
│   ├── web/           # Next.js web app (these docs live here)
│   ├── mobile/        # Expo mobile app
│   ├── extension/     # Chrome extension (WXT)
│   └── desktop/       # Electron desktop app
├── packages/
│   ├── api/           # tRPC router + better-auth
│   ├── db/            # Drizzle schema + Supabase config
│   └── ui/            # Shared UI components
└── package.json       # Root workspace scripts

Available Scripts

Development

  • pnpm dev - All apps
  • pnpm dev:web / pnpm dev:mobile / pnpm dev:extension / pnpm dev:desktop - One app

Database

  • pnpm db:start / pnpm db:stop - Local Supabase
  • pnpm db:push - Push schema to local database
  • pnpm db:push-remote - Push schema to production
  • pnpm db:reset - Reset local database and re-push

Code Quality

  • pnpm lint / pnpm lint:fix - oxlint
  • pnpm format / pnpm format:fix - oxfmt
  • pnpm typecheck - TypeScript
  • pnpm test - Vitest

Build

  • pnpm build - Build all packages

Troubleshooting

Port already in use - Free ports 3000, 54321-54323.

pnpm install fails

pnpm store prune
pnpm install

Database connection issues - Is Docker running? Then:

pnpm db:start

Type errors

pnpm build

Next Steps

Continue with the local development guide for the day-to-day workflow.

On this page