Executive Summary
Zurück zur MOC - Map of Content
Was ist breakout.now?
breakout.now ist eine deutsche, mobile-first Musik-Discovery-Plattform für Livestreams. Sie verbindet drei Gruppen: Creator (Streamer), Artists (Musiker) und A&Rs (Labels/Industrie). Das Kernfeature ist The Gate — ein Community-Portal, in dem Creator Live-Sessions hosten, Artists Songs einreichen und die Community über die besten Tracks abstimmt.
Domain: breakout.now (rebranding von breakout.now)
Aktueller technischer Stand
Die App ist produktionsreif mit vollständiger Core-Funktionalität:
What's Built
- Frontend: React 19 + Vite 7 + Tailwind CSS v4 (mobile-first, Darkmode)
- Backend: Supabase (PostgreSQL, Auth, Realtime, Private Storage)
- Payments: Stripe Checkout Sessions + Webhooks via Netlify Functions
- 13 Serverless Functions: Atomare Payments, Signierte Audio-URLs, Breakout-Berechnung, Votes, Cleanup, Payouts
- 42 SQL Migrations: Vollständiges Schema mit RLS, Advisory Locks für Atomarität
- 56+ React Components: Host-UI, Viewer-UI, Community-Features
- 19 Custom Hooks: Session, Queue, Breakout, Artists, Ratings, Earnings
- 15 Pages: Landing, Viewer, Host, Auth (Creator & Artist), Artist Profile, Account, Cashout, Community, Analytics
- Community-Plattform: Ranking (Artist-Leaderboard), Season (Turniere), The Gate (Event-Hosting)
Was noch geplant ist
- Home Hub / Feed (unified Messages + Sessions Feed)
- Hybrid-Invite-System (pro-Forum Invite-Links)
- Admin / Dev Dashboard
- Email-System (breakout.now Domain)
- Login UX Improvements
- SEO-Optimierung
Revenue-Modell (verified from code)
Drei Einnahmequellen:
1. Queue-Boost Transaktionen
- Mechanik: Artists zahlen, um ihre Entry in der Queue höher zu positionieren
- Preismodell (in EUR-Cents, ganzzahlig):
- Mindesteintrag:
min_entry_price_eur_cents - Min. Skip-Preis:
min_skip_price_eur_cents - Dynamischer Inkrementpreis:
ceil(topBid × (1 + min_increment_pct/100)) - Safety-Cap: 1.000.000 Cents (10.000 EUR)
- Mindesteintrag:
2. Gestaffelte Plattformgebühr (Platform Fee)
Eingezogen auf alle Zahlungen:
- 0–500 EUR: 15% Plattformgebühr
- 501–1.000 EUR: 10% Plattformgebühr
- 1.001–2.000 EUR: 7% Plattformgebühr
- 2.000+ EUR: 5% Plattformgebühr
Beispiel: Creator mit 600 EUR Umsatz → 10% = 60 EUR Gebühr → 540 EUR an Creator
3. Boost-Token System
- Verdient durch: Breakout-Status (1 Token) oder Upcoming-Pair (2 Tokens = 2× Upcoming in verschiedenen Sessions)
- Funktionalität: Token können später kostenlos für höhere Queue-Position genutzt werden
- Business: Free/Premium Tokens möglich (später)
Stripe Connect für Payouts:
- Creator autorisieren Stripe Connect Account
- Wöchentliche Batch-Payouts (Stripe → Creator-Konto)
- Plattformgebühr wird abgezogen, Creator erhält Netto
Differenzierungspunkte
1. Niedrigere Gebühren
- Konkurrenztypisch: 30% Plattformgebühr → Creator erhält 70%
- breakout.now: 15% Gebühr (€0–500) → Creator erhält 85%
- Effekt: Bei 500€ Umsatz spart Creator 75€/Monat
2. Community-Discovery, nicht nur Pay-to-Play
- Nicht: Einfach Geld zahlen, Song läuft, fertig
- Sondern: Community votet, Leaderboard zeigt Top-Artists, Boost-Token belohnen Qualität
- Resultat: Bessere Songs steigen auf, Pay-to-Win wird gebremst durch Community-Voting
3. Atomare Zahlungsgarantie
- Advisory Locks (
pg_advisory_xact_lock) im Postgres - Kann nicht duplizieren, kann nicht verrutschen
- Konsistente Ledger-Welt selbst bei parallelen Requests
Bootstrap-Strategie
Phase 1: Creator First (Woche 1–4)
- Ziel: 15–20 qualifizierte Creator
- Strategie: Persönlicher Outreach, Invite-Only, Exklusivitäts-Narrative
- Anreiz: "Du bist in den ersten 50 Creator der Plattform"
- Output: Sessions mit Test-Daten, erste Earnings
Phase 2: Artists & Viewers (Woche 3–8)
- Ziel: 100+ Artists, Community wächst mit Creator-Streams
- Strategie: Creator bringen ihre Discord/Twitch-Kommunität mit
- Anreiz: Queue-Boosts, Chance auf Breakout-Status
- Output: Organische Voting, Leaderboard-Daten
Phase 3: Breakout Tournament (Woche 8–12)
- Ziel: 50 qualifizierte Artists im Turnier
- Qualifikation: Hard Gates = 1× Breakout ODER 2× Upcoming (verschiedene Sessions) + 3 bewertete Entries
- Preisgeld: 1.000€ für Platz 1
- Effect: Medienaufmerksamkeit, A&R-Pitch-Datenbasis
Phase 4: A&R-Integration (ab Woche 10)
- Ziel: 5–10 Label-Partners mit Scouting-Zugang
- Pitch: "50 community-bewertete Artists; Top Creator sind Jury"
- Revenue: (Später) A&R-Subscriptions für erweiterte Analytics
Breakout Voting System (2-Phasen, NOT weighted 70/30)
WICHTIG: Das aktuelle System nutzt zwei sequenzielle Phasen, nicht gewichtete Aggregation:
Community Voting Phase
- Alle Viewer können für Entries voten
- Voting dauert 2–3 Minuten (live Session)
- Community-Ergebnis ist Basis
Creator Voting Phase
- Nach Community-Voting kann Creator seine Lieblingentry (oder Top 3) wählen
- Creator-Pick ist final (nicht mathematisch gewichtet)
- Entscheidungslogik:
- Wenn Creator top 3 wählt → Qualifiziert diese Entry zusätzlich
- Wenn Creator außerhalb top 3 wählt → Creator-Entscheidung steht selbständig
Outcome-Definition:
- Breakout: Klarer Gewinner (≥15 Community-Votes in Prod; ≥1 in Dev)
- Upcoming: Top 3 ohne klaren Gewinner
- No Winner: <15 Votes total
Nicht Verwendeter 70/30-Algorithmus: Der Code enthält historisch Referenzen auf Gewichtung, aber das ist NICHT im aktuellen computeBreakoutResults implementiert. Die zwei-Phasen-Logik ist die Realität.
Technische Architektur (Deep Dive)
Frontend Stack
- React 19 + Vite 7 für schnelle Entwicklung, HMR
- Tailwind CSS v4 mit CSS-basierter Config (kein
tailwind.config.ts) - Supabase JS Client für Realtime-Subscriptions, Auth, Storage
- Stripe.js für Checkout Sessions
- Mobile-First: Max-Width 2xl, Darkmode primär
Backend: Supabase
- Auth: Separate Auth für Creator (
users+creators) und Artists (users+artists) - Database: PostgreSQL mit 13 Core-Tabellen + 5 Breakout-Tabellen + Enums
- Realtime: Phoenix Channel Subscriptions für Live-Updates
- Storage: Private Bucket "tracks" mit Signed URLs (expires_in: 3600 sec)
- RLS: Anon kann lesen (active Sessions, Queues), Authenticated kann eigene Daten editieren
Serverless Functions (Netlify)
| Funktion | Zweck | Kritikalität |
|---|---|---|
submitEntry.mts |
Free Entry via RPC (insert_queue_entry_atomic) |
CORE |
createCheckoutSession.mts |
Stripe Checkout mit Idempotency-Key | CORE |
stripeWebhook.mts |
Payment → Atomic Insert via RPC | CORE |
createConnectAccount.mts |
Stripe Connect Onboarding | PAYOUT |
stripeConnectWebhook.mts |
Account Link Refresh | PAYOUT |
getSignedUrl.mts |
Signed URL mit Path-Validation | SECURITY |
cleanupStorage.mts |
Delete Stale Audio (7+ Tage) | MAINTENANCE |
castBreakoutVote.mts |
Breakout Vote Atomicity | CORE |
computeBreakoutResults.mts |
Final Rankings + Outcomes | CORE |
editEntry.mts |
Edit Queue Entry | FEATURE |
freeBoost.mts |
Apply Boost Token Kostenlos | FEATURE |
processWeeklyPayouts.mts |
Stripe → Creator Batch | PAYOUT |
devSeed.mts |
Test-Daten Generator | DEV |
Datenbank: Schema-Highlights
9 Core Tables:
creators(mit Stripe Connect + Stats Cache)sessions(mit Stream-Platform, Pricing Config)queue_entries(mit Entry Type = standard/priority, Status = waiting/playing/played/removed)payments(mit Gross/Platform Fee/Creator Earnings)payouts(mit Status Tracking)reports(User Reports für Moderation)blocked_tokens(IP/Token Blocking)rating_criteria(Creator-definiert)entry_ratings(Criteria Scores)
5 Breakout Tables:
breakout_rounds(Phase Tracking: inactive/community_voting/creator_voting/completed)breakout_votes(Community Votes, dedupliziert)breakout_results(Final Scores + Outcomes)artists(Mit separater Auth)artist_achievements(Breakout/Upcoming History)
Special Table:
breakout_boost_tokens(Source: breakout|upcoming_pair, Expiry: 90 Tage, Use-Once)
Viewer Identifikation (Wichtig für RLS & Voting)
Viewers haben keine Accounts, werden identifiziert durch:
participant_token: UUID in localStorage, persistent über Sessionsip_hash: Server-seitiger Hash für Zusatz-Dedup- Vorteil: Kein Signup-Friction für Discovery
- Sicherheit: RLS + Advisory Locks verhindern Mehrfach-Voting
Key Metrics & Targets (Launch Phase)
| Metrik | Target (Woche 12) | Tracking |
|---|---|---|
| Active Creator | 15–20 | creators table, sessions.active |
| Artists eingereicht | 100+ | queue_entries count |
| Avg Viewer/Session | 50–100 | Analytics Dashboard |
| Avg Payment/Entry | 5–50 EUR | payments table, Durchschnitte |
| Breakout Tournament Qualified | 50 | artist_achievements count |
| Platform Revenue (brutto) | 2.000–5.000 EUR | payments.gross_amount sum |
Nächste Schritte vor Launch
- Domain Setup: breakout.now SSL, DNS, Analytics (Hotjar/Plausible)
- Landing Pages: Creator-LP, Artist-LP, A&R-LP
- Email System: Confirmations, Payouts, Announcements
- Monitoring: Sentry für Errors, LogRocket für Sessions
- Load Testing: 1.000 concurrent Viewer
- Payment Testing: Stripe Live-Keys (Sandbox → Prod)
- Content: German UX/Copy Review, Mobile Testing auf iOS/Android
- Community: Discord Server, Twitter, Creator Outreach Lists
Risiko-Übersicht
| Risiko | Wahrscheinlichkeit | Impact | Mitigation |
|---|---|---|---|
| Cold-Start Problem (Creator starten, Artists kommen nicht) | HOCH | KRITISCH | Phase-1-Outreach, Incentives |
| Insufficient Tournament Qualifications (<30 Artists) | MITTEL | HOCH | 2× Upcoming = Qualification |
| Creator Churn Post-Tournament | MITTEL | HOCH | Neue Features, Ongoing Messaging |
| Payment Bugs in Production | NIEDRIG | KRITISCH | Extensive Testing, Advisory Locks |
| A&R Interesse schwächer als erwartet | MITTEL | MITTEL | Alternative: B2B2C via Creator |
Siehe auch: Glossar | Stakeholder Map | Phasen-Plan