Inspiration

We're a record label. Before building anything we spent a month researching how songs actually break, and the answer was: they mostly don't, and nobody can tell you why. You can't buy streams profitably (~50x loss). Facebook ran 663 RCTs on their own data and still couldn't say an ad caused a purchase. UGC breakout is a lottery — the top 10% of songs take 96% of creations.

So optimizing one release is the worst bet available. The only lever left is making each attempt cheap. That's RemixKit.

What it does

Register an artist, build their identity once (face, reference frames, likeness consent), attach songs, and generate whatever a release needs — performance clips, press stills, the artist announcing a show to camera, voice-over, or a backdrop a fan can copy.

Two things we care about more than the generation itself:

  • You see the exact prompt and the exact price before you spend anything. The preview screen renders the real wire payload, and every field on it is editable.
  • Every asset carries its own receipt. Provider, model, and prompt for every step, embedded inside the file on download. Drop it into /verify and it tells you how it was made. Nothing is looked up.

How we built it

FastAPI, hexagonal, deployed on AWS: Lambda for the web tier, SQS for jobs, Batch on Fargate Spot for generation. Backblaze B2 holds every byte — masters, artists, kits, manifests.

There is no database. A label stores documents, not rows, so they live in a bucket. That decision took the architecture from eleven services to five and idle cost to under a dollar a month.

Video runs on Sora 2, images on GMI Cloud, audio on ElevenLabs. Song structure is measured with numpy — a port of our own rhythm study, tested against that study's published numbers. The whole app also runs with zero credentials, and the manifest it produces on a laptop comes from the same code as the one in B2.

Challenges we ran into

The research killed our own plan. We went in wanting to buy attention and measure what worked. A month of digging said you can't do either profitably. Scrapping the strategy we'd already committed to was the hardest part of this build, and it happened before a line of code.

We didn't know what we were actually making. We'd taken one finding — that copyable content spreads — and treated it as the whole product. That decision quietly got baked in, to the point where the app couldn't make an artist just talk to camera. Realizing we'd built around the wrong idea cost us more than any bug.

Using our own artists' faces is a rights problem, not a tech one. There's no version of this where you generate a signed artist's likeness and figure out consent later. It had to be a hard stop in the product, which slows things down on purpose.

Every click costs money. We're a small label, not a funded startup. Generating a batch and finding out afterward what it cost was untenable, so nothing gets made until you can see what it'll cost.

Accomplishments that we're proud of

We built something we're actually going to use on our own roster, not a demo.

We were honest about what it can't do — no promises about going viral, no fake analytics, nothing that pretends to predict a hit.

And every asset can prove how it was made. If we put AI content out under our artists' names, anyone should be able to check what it is.

What we learned

  • You can't buy a hit. You can only make trying cheaper and be honest about the odds.
  • Research that kills your idea is worth more than research that agrees with you.
  • The bottleneck was never the technology. It's getting songs properly logged in, one at a time, by a person.
  • Consent has to be built in as a gate. Left as a policy, it just becomes something you forget.

What's next for Respect The Funk - RemixKit

We keep building it for ourselves first. RemixKit is for Respect the Funk and our artists, and the goal is a music marketing system we actually run releases through — not a product pitch.

Next up: get the rest of the catalogue in, add a proper approve step before anything goes out, and put it to work on real releases. If it works for us, we'll open it to other labels.

Built With

  • amazon-api-gateway
  • amazon-ecr
  • amazon-sqs
  • amazon-web-services
  • aws-lambda
  • aws-systems-manager
  • backblaze-b2
  • docker
  • elevenlabs
  • fastapi
  • ffmpeg
  • genblaze
  • gmi-cloud
  • google-vertex-ai
  • gpt-image-1
  • htmx
  • imagen
  • jinja
  • openai
  • pydantic
  • python
  • sora
  • terraform
  • veo
Share this project:

Updates