Get started

Running locally

Every dev server, the command that starts it, and the port it listens on.

Everything at once

yarn dev

This installs dependencies, sets up the backend on a first run, and starts the backend, web app, marketing site, blog, and docs in one terminal. Ctrl+C stops them all. The desktop app needs Rust, so it has its own command.

Dev servers

Each one also starts on its own:

CommandServesPort
yarn backend:devBackend, Postgres, RustFS, and Mailpit in Docker3000
yarn web-static:devMarketing site3001
yarn workspace blog devBlog3002
yarn web-app:devThe auth-gated app3003
yarn docs:devThis site3004
yarn email-templates:devEmail template previews3010
yarn storybook:devStorybook for shared-ui6006

yarn backend:dev waits for Postgres, applies pending migrations, then starts the server with hot reload.

Local services

ServiceURLWhat it's for
Mailpitlocalhost:8025Every email the backend sends
RustFS consolelocalhost:9001Browse the local S3 buckets
Postgreslocalhost:5432Connect with any SQL client

Check the backend

curl http://localhost:3000/health

Chatbot

The home page chatbot uses a local model through Ollama, installed on your machine rather than in Docker — Docker on macOS has no GPU access.

brew install ollama
brew services start ollama
ollama pull qwen2.5:7b

Desktop

yarn desktop:dev

This opens the app in a native window, with its Vite server on port 1420. For styling work without a Rust rebuild, run yarn workspace desktop dev.