Run the reference app when you want to
You can read every lesson without running Taskboard. Use this page only when you want to inspect the working app.
Start the app
Install Node 22.12 or newer and Docker Desktop. Start Docker Desktop. Open a terminal at the Taskboard repository root.
npm ci
npm run dev
The command builds and starts Postgres, Mailpit, the API, and the worker. It applies migrations, adds repeatable demo data, and starts Docusaurus.
| Address | What you see |
|---|---|
| http://127.0.0.1:3000 | Reading course |
| http://localhost:4000 | Taskboard reference client |
| http://localhost:8025 | Local email inbox |
The backend origin is http://localhost:4000. Open that address when using the client so authenticated mutations match the configured origin.
Sign in with owner@taskboard.local and Taskboard-demo-2026!. The owner can invite users, create projects, change roles, and access billing actions.
teammate@taskboard.local uses the same demo password and has the member role. outsider@taskboard.local belongs to another workspace. Their views demonstrate tenant isolation.
Read without Docker
npm ci
npm run prepare:docs
npm run dev:docs
The course's code browser and search are static data. They do not call the backend.
Stop and return
Press Ctrl+C in the npm run dev terminal. The development command stops the Compose services. Postgres data stays in its named volume.
For a manually started stack, use docker compose stop. Start it again with docker compose up -d. Avoid removing its data volume unless you intend to erase the local database.
Inspect payments
Billing reports a configuration error until Stripe test credentials and a recurring price ID are present. It does not simulate successful payments in the browser.
The repository README describes the test-mode environment variables, webhook route, verification commands, and Cloudflare build settings.