Skip to main content

What you need

  • Bun 1.3.14
  • Node 20 or later
  • Postgres 17, running locally
  • The AWS CLI and Terraform 1.12, only for infrastructure work

First run

1

Install

2

Create the database

3

Set the API's environment

Create apps/api/.env.local:
Leave MAIL_FROM unset. The API then prints each email to its console instead of sending it.
4

Migrate and seed

5

Start everything

The site is on localhost:3000 and the API on port 3001.
create-owner prints a password once. You can also click Send me a link instead on the sign-in page. Then copy the link from the API’s console output.

Commands

Add a shadcn component to the design system:
The command adds the component to packages/ui/src/components. Import it as @workspace/ui/components/<component>.

Conventions

  • Next.js 16. Its APIs differ from older versions. Read node_modules/next/dist/docs/ before you write framework code.
  • Prettier. No semicolons, double quotes, two spaces, 80 columns, Tailwind classes sorted.
  • Brand rules. “Oncology” and “Biotech” always take a capital letter. Every Onco-prefixed name carries ™. The rules are in CLAUDE.md at the repository root.
  • Copy. Plain words. A button says what happens. No sales language in the admin.

The handbook

The handbook is in handbook/. To preview it:
Before you push, check the links: