PostShow
A social network for live music, built on an ingest pipeline that absorbs millions of events.
PostShow lets fans rate and review the shows they've been to. We built the web and mobile apps, an artist portal, admin tools, and the data pipeline that keeps the world's concert catalog in sync.
- Data engineering
- Mobile apps
- Web platform
- Artist tools
- Events ingested
- Millions
- Events processed every day
- 100K+
- Countries, refreshed every hour
- 29
The challenge
A review app is only as good as its catalog. PostShow needed every show, venue and performer to be current across dozens of countries, plus history going back years. All of it had to arrive without blowing through API quotas or slowing the app down.
What we built
- 1
An hourly ingest pipeline
Workers stream-parse hourly country dumps (about 98K events for the US alone) and bulk-upsert venues, performers, genres and events in batches. That cut database calls from more than 10 per event to about 8 per batch.
- 2
Enrichment and history
Performer profiles are filled in with images, socials and Spotify IDs. Past shows are backfilled on demand from Setlist.fm, and identities are verified against MusicBrainz so the wrong artist is never imported.
- 3
Apps on every screen
A Next.js web app and an Expo (React Native) app for iOS and Android share one Supabase backend, with push notifications and photo uploads to Cloudflare R2.
- 4
Tools for artists
Artists can claim their profile and, once an admin approves, see followers, ratings, shows and reviews. A full admin portal covers moderation and the catalog.
How it works
- 01FeedsHourly dumps, 29 countries
- 02Stream-parsePython workers on a job queue
- 03Batch upsertEvents, venues, performers
- 04EnrichSpotify, Setlist.fm, MusicBrainz
- 05ServeWeb, iOS, Android, artists
The results
- 01
Millions of events ingested, with hundreds of thousands more processed every day.
- 02
A catalog that stays current across 29 countries, every hour.
- 03
Four apps (web, mobile, artists, admin) running on one shared platform.
Technology
- Next.js 16
- Expo / React Native
- Supabase
- Edge Functions
- Python + uv
- PM2
- Ticketmaster Discovery
- Setlist.fm
- MusicBrainz
- Spotify API
- YouTube Data API
- Cloudflare R2
→ adpilot_rank_opportunities()
✓ 3 ad sets ready to scale
→ calendar_plan_day()
✓ 6 blocks scheduled
→ finance_get_spending_review()
✓ 2 subscriptions flagged
Example calls