Skip to main content
One idea at a time

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.

AddressWhat you see
http://127.0.0.1:3000Reading course
http://localhost:4000Taskboard reference client
http://localhost:8025Local 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.