Web Artists
The artists portal at artists.bitrate.me: a public page, the artist auth screens, and the signed-in artist workspace. Built on TanStack Start (Vite + Nitro), not Next.js β see ADR-0034. Artists are the product's primary audience (ADR-0032); the workspace is a first version and several actions are still labelled "coming soon" in the UI.
π Quick Startβ
# Install dependencies (from repo root)
pnpm install
# Start development server
pnpm --filter @bitrate/web-artists dev
Application will be available at http://localhost:3002.
πΊοΈ Routesβ
| Route | What it is |
|---|---|
/ | Public page: what the workspace does today, with sign-up and log-in |
/login, /registration, /verify-email, /forgot-password, /reset-password | Artist auth |
/legal/$slug | Terms, privacy, community, complaints, copyright, artist agreement |
/dashboard | Signed-in overview; guarded in beforeLoad, redirects to /login?next= |
/dashboard/music, /dashboard/music/$releaseId | Private catalogue and the release workspace (ADR-0052, ADR-0053) |
/dashboard/distribution | Planned stores per release; delivery to stores is not connected |
/dashboard/analytics | Plays and listeners on Bitrate over 7, 28 or 90 days |
/dashboard/profile, /dashboard/settings | Public profile, account settings and signed-in devices |
ποΈ Architectureβ
apps/web-artists/src follows Feature-Sliced Design with TanStack file routes in place of
app/: routes/ β views/ β widgets/ β features/ β entities/ β shared/. The API client
is openapi-fetch typed by @bitrate/contracts, with TanStack Query for server state; the
session lives in shared/auth/ and the router context. There is no i18n runtime yet.
π¨ Tech Stackβ
- TanStack Start (React Router + Start, Vite, Nitro) + React 19 + TypeScript
- Tailwind CSS v4 + @bitrate/ui-react β shared design tokens and components
- @bitrate/contracts β generated OpenAPI types
π§ͺ Testingβ
pnpm --filter @bitrate/web-artists test:unit # Vitest
pnpm --filter @bitrate/web-artists test:e2e # Playwright against a stub API
pnpm --filter @bitrate/web-artists test:screenshot # Playwright screenshot baselines
π Build & Deployβ
pnpm --filter @bitrate/web-artists build
pnpm --filter @bitrate/web-artists start
Related: