Solo Developer · 2024 - Present
WavHaven
Music distribution without the middleman cut
0%
Platform Fee
50+
User Research
405+
Test Coverage
82K LOC
Codebase
0%
Platform Fee
Artists keep 100% of revenue. Only Stripe processing costs apply.
50+
User Research
Qualitative interviews with producers and artists before writing code.
405+
Test Coverage
Tests across Vitest unit tests and Playwright end-to-end tests.
82K LOC
Codebase
Lines of TypeScript across 935 files with zero type errors.
The Problem
I used BeatStars, Airbit, and Traktrain for years. They all follow the same model: take up to 30% of every sale, hold your money for 60 to 90 days, and lock analytics behind a premium tier. If you want to know how your own music is performing, you pay extra for the privilege. The worst part is buried in the terms of service. Some platforms claim partial rights to your catalog just by uploading. I watched producers around me accept this because there was no alternative. Producers making $200 a month on beat sales were handing $60 back to the platform before Stripe even took its cut. The math never worked for independent artists, and no one was building something that fixed it. I wanted to build one.
- Platforms take up to 30% of every sale, on top of payment processing fees
- Payouts delayed 60 to 90 days while the platform earns float interest on money that belongs to artists
- Real-time analytics locked behind $20+/month premium tiers
- Terms of service quietly grant platforms partial licensing rights to uploaded content
- No transparency into how royalties are calculated, split, or distributed to collaborators
The Approach
Before writing any code, I interviewed 50+ producers and artists about their distribution pain points. The same frustrations kept coming up: fees, payout delays, and lack of transparency. Several artists told me they had stopped releasing music because the economics did not justify the effort after platform fees. The architecture decisions followed directly from those conversations. Every technical choice ties back to a specific user problem identified during that research.
Edge-first infrastructure
The entire backend runs on Cloudflare Workers with no origin server and no cold starts. Requests resolve at the nearest edge node, which means upload processing and API responses stay fast regardless of where the artist is located. This also keeps infrastructure costs predictable — Workers pricing scales with requests, not with idle server time.
Zero platform fees
Stripe Connect handles payouts directly to artist accounts. WavHaven never touches the money — funds go straight from buyer to artist. The only fees artists pay are Stripe processing costs, which they would pay on any platform. This is not a "low fee" model. It is a zero fee model.
Transparent by default
Every stream, every sale, every royalty calculation is visible in real time from the moment an artist signs up. No premium tier required, no analytics dashboard locked behind a paywall. If the data exists, the artist can see it. Transparency is not a feature — it is the default.
Async processing pipeline
Four Cloudflare Queues handle audio transcoding, metadata extraction, waveform generation, and search indexing in the background. Uploads feel instant because the heavy processing work happens asynchronously after the HTTP response. The artist sees confirmation immediately while the pipeline prepares their track for discovery.
Stripe Connect Payout Split
This is the core of the 0% fee model. When a buyer purchases a track, the payment goes directly to the artist through Stripe Connect. WavHaven takes nothing — the application fee is explicitly set to zero. The artist receives the full sale amount minus only Stripe processing costs. Every other platform inserts their own fee on top of payment processing. This function runs on a Cloudflare Worker at the edge, so the payout logic executes close to the buyer regardless of geography.
View Code
async function createPayout(
trackId: string,
artistAccountId: string,
amount: number
) {
const session = await stripe.checkout.sessions.create({
mode: 'payment',
line_items: [{ price: trackPriceId, quantity: 1 }],
payment_intent_data: {
application_fee_amount: 0,
transfer_data: { destination: artistAccountId },
},
});
await db.insert(transactions).values({
trackId,
artistAccountId,
amount,
stripeFee: Math.round(amount * 0.029 + 30),
platformFee: 0,
status: 'pending',
});
}Tech Stack
Full Stack Details
Frontend
Edge Infrastructure
Data
Server
Payments
Outcome
WavHaven is a working platform with AI-powered search, scene-based discovery, a TikTok-style swipe feed for browsing tracks, and transparent royalty tracking from day one. The codebase spans 82,000+ lines across 935 files with 405+ tests covering both unit and end-to-end scenarios. It proves that music distribution does not require taking a cut from artists. The architecture handles everything from audio transcoding to real-time analytics without a traditional origin server. The platform is in active development with real users testing the beta, and the feedback loop from those early testers is shaping every release.
- Full Stripe Connect integration with streamlined artist onboarding, instant payouts, and 0% platform fees
- Edge-first architecture: 5 Durable Objects and 4 async Queues handling all background processing
- AI-powered semantic search and scene-based discovery for finding music by mood, energy, and creative context
- 405+ tests across Vitest unit tests and Playwright end-to-end suites with zero TypeScript errors
- 3-bucket R2 storage strategy separating originals, transcoded delivery files, and artwork