Features

Producer dashboard

Authenticated producers manage beats, view analytics, sales, and account settings from /dashboard/*.

Pages

  • /dashboard — overview
  • /dashboard/beats — manage published and draft beats
  • /dashboard/upload-beat — upload flow (audio + cover + metadata)
  • /dashboard/edit-beat/:id — edit existing beat
  • /dashboard/analytics — plays and engagement
  • /dashboard/sales — purchase history
  • /dashboard/messages — conversations
  • /dashboard/profile, /dashboard/settings — account
  • /dashboard/platform-settings — admin-only platform config

Upload flow

  1. Producer uploads audio and cover via POST /api/beats/upload
  2. Metadata and licenses configured in the dashboard UI
  3. Beat published with POST /api/beats/:id/publish
  4. Files stored in R2 (production) or local Railway storage (legacy dev)

Auth & access

  • middleware/auth.ts — protects dashboard routes client-side
  • middleware/platform-admin.ts — admin-only routes
  • Layout: layouts/dashboard.vue with DashboardSidebar

Relevant API

  • GET /api/users/me/beats — producer's beats
  • GET /api/users/me/analytics — analytics data
  • GET /api/users/me/sales — sales list
  • PUT /api/beats/:id — update metadata
  • DELETE /api/beats/:id — remove beat