Apps
apps/web
The primary web application on TanStack Start.
apps/web is the product. It is a TanStack Start application deployed as the
onyx-web Worker, and it is where you add routes, pages, and features. It
imports every private package and serves the public API.
Running it
vp dev apps/web # http://localhost:3000
pnpm test:e2e # Playwright suite, from apps/web
pnpm cf-typegen # regenerate Worker types after editing wrangler.jsonc
pnpm run deploy # build and deploy to CloudflareSet PORT to run several checkouts side by side; keep it in sync with
BETTER_AUTH_URL in .dev.vars.
Route structure
File routes live in src/routes:
| Route | Purpose |
|---|---|
sign/* | Sign in, sign up, forgot and reset password. |
orgs/new, invite/$id | Organization creation and invitations. |
_app/* | The signed-in product behind the sidebar layout: chat, notes, tasks, members, settings. |
api/auth/$, api/files/$, api/v1/$ | Better Auth, file uploads, and the public API. |
device | Device-flow approval for CLI login. |
Add a product page by creating a file under src/routes/_app/; the layout
provides the sidebar, presence, and notifications around it.
Conventions
#/is the path alias forsrc/.- Components with co-located styles use the
.tsrxextension and are imported explicitly with it. - End-to-end tests live in
e2e/and run in CI, along with bundle size budgets defined inpackage.jsonundersize-limit.