Skip to main content

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​

RouteWhat it is
/Public page: what the workspace does today, with sign-up and log-in
/login, /registration, /verify-email, /forgot-password, /reset-passwordArtist auth
/legal/$slugTerms, privacy, community, complaints, copyright, artist agreement
/dashboardSigned-in overview; guarded in beforeLoad, redirects to /login?next=
/dashboard/music, /dashboard/music/$releaseIdPrivate catalogue and the release workspace (ADR-0052, ADR-0053)
/dashboard/distributionPlanned stores per release; delivery to stores is not connected
/dashboard/analyticsPlays and listeners on Bitrate over 7, 28 or 90 days
/dashboard/profile, /dashboard/settingsPublic 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: