MrakRecords
Independent music label: release intake, client cabinet, streaming delivery
summary
- status
- in production
task
The label publishes music without taking the rights: they stay with the author. Everything else follows from that — an artist has to see what is happening to a release and understand why a given decision was made.
The bottleneck here is not distribution, it is metadata. Platforms reject a release on metadata more than on anything else — a wrong ISRC, contributors not broken out by role, territories — and you find out roughly a week after submitting. Normal delivery takes about the same, so one metadata mistake costs a second week rather than a few minutes.
Two things follow, and the product is built around them. The label fills in the metadata rather than the artist: it is dull work, but it cannot be handed to someone who does it once a year. And audio validation — format, sample rate, bit depth — happens on upload, before anything is submitted anywhere, so a bad master surfaces while it is still cheap to fix.
Delivery is programmatic rather than a chain of emails: a release goes out over the distributor's Partner API, delivery state arrives on webhooks, the catalogue is reconciled periodically, and metadata on an already-published release can be corrected the same way. That is why the status in the cabinet reflects reality rather than whatever someone last typed in by hand.
The rest is about waiting. A release takes a week, and for that whole week the artist needs to know which stage it is at. So the cabinet shows the state of every release and the full history of decisions on it, and a change of status arrives in Telegram rather than waiting to be discovered.
solution
- 01Two sides
An artist cabinet — releases, their states and the history of decisions. A label back office — application review, metadata, contributors and distributor operations. Telegram sign-in, TOTP two-factor, an audit log
- 02Master validation before submission
WAV and FLAC, 44.1 and 48 kHz, 16 and 24 bit — the format is parsed on upload, before the file goes anywhere. Masters live in their own object-storage bucket
- 03Delivery to the distributor
Partner API integration: file upload, release submission, delivery-state webhooks, catalogue reconciliation and metadata updates on already-published releases
- 04Job queue and notifications
Long operations run through a worker pool with retries and backoff, and a change of release state reaches the artist in Telegram
screens
release catalogue and label sections
release intake: metadata, cover art, contributors by role
delivery state at the distributor
stack
- / Go
- / Next.js
- / TypeScript
- / PostgreSQL
- / MinIO
- / Telegram Bot API
- / Docker
next
© 2026 chatterxton · ru / en