Skip to main content
See how it works for an overview of the architecture before diving in.

Requirements


Installation

1

Clone the repository

2

Install dependencies

This installs dependencies for all apps and packages in the monorepo via Turborepo. Git hooks (Lefthook) are also set up automatically at this step.
3

Start infrastructure services

Spin up PostgreSQL, Redis, Storage, and ClickHouse (optional) using Docker Compose:
This starts the following services in the background:
4

Configure environment variables

Copy the example env file:
The defaults in .env.example are pre-configured to match the Docker Compose service addresses — no changes are needed for local development except for secrets.Generate the required secrets:
Then update these values in your .env:
Never commit your .env file to version control. It is already listed in .gitignore.
5

Run database migrations

Apply the schema and seed initial data:
This runs db:migrate (Drizzle migrations) followed by db:seed.
To run migrations only without seeding, use pnpm --filter database db:migrate.
6

Start the development servers

Turborepo starts all apps concurrently with hot-reload:

Builder

Web UI and API localhost:3123

PartySocket

WebSocket server localhost:1999
The first run may take a minute while Next.js compiles the Builder.

Git hooks

Git hooks are managed by Lefthook and are installed automatically when you run pnpm install. Commit message format:
Valid types: feat, fix, bugfix, refactor, docs, style, test, chore, ci, perf, build, revert

Useful commands


Stopping services

Stop the application servers with Ctrl+C, then stop the Docker infrastructure:
Running docker compose down -v permanently deletes all database data, cached files, and storage volumes.

Next Steps

Configure uploads

Set up R2 for file storage

Architecture

Learn the architecture of the project

Email notifications

Set up email for notifications

Channels

Set up channels such as Whatsapp, Messenger and Instagram