Next.js edition
Next 16, the App Router, React 19 and TypeScript — installs, builds and runs on its own: no workspace, no path reaching outside the folder.
Install and build
nextjspnpm install --frozen-lockfile
pnpm run buildDeveloping
nextjspnpm dev # syncs shared/, then Next on :3000, redirects to a locale
pnpm start # serves the build made by `pnpm run build`, above
pnpm run typecheckThe generated mirror
src/shared/ is written by tools/sync-shared.mjs, which dev and build
run first. Editing a file there appears to work and then vanishes at the next
sync — edit shared/ at the repository root instead. The favicon is served
from that mirror by a route handler (src/app/brand/favicon.svg/route.ts)
rather than copied into public/, so it cannot fall behind the brand builder.