World Music Map
Explore the planet by sound: an interactive map where each curated place opens region-defining music, with full attribution built in.
Product
The shipped product: live link, the problem it solves, and the stack it runs on.
The problem
Music discovery is usually by algorithm or genre, rarely by place. World Music Map flips it: an interactive map where each curated locale opens a drawer of region-defining music with genre and era context and always-visible attribution, so you can explore the planet by sound. It is honest about what it is: curated YouTube embeds, not a licensed catalog.
Stack
Screenshots


How I built it
Product requirements
Open the PRDThe full PRD lives in the repo. Open it above.
World Music Map started as a draft PRD grilled to DEFINED with /prd-grill-me, locking a discovery-first v1: media-per-locale at the center, influence-flow links deferred to v2. It ships as a single Next.js (App Router) + Prisma app, with no separate API since curation is agent-driven rather than user-written. A MapLibre GL map renders curated locales; clicking one opens a mobile-first drawer with a blurb, genre and era chips, and an official-channel YouTube embed with always-visible attribution. It runs its own world_music_map database on the same Postgres server as this portfolio, isolating its data while sharing infrastructure. S0 (skeleton) and S1 (deploy) are live with three marquee locales; the remaining slices (MapTiler basemap, genre/era filters, dead-embed fallback, archive.org enrichment, broader coverage, and polish) are mapped out in the build plan.
Timeline
- milestoneJun 24, 2026
S1: deployed live on Vercel (MapLibre GL, 3 marquee locales)
- milestoneJun 24, 2026
S0: skeleton (Next 16 App Router + Prisma 7 + own world_music_map DB)
- milestoneJun 24, 2026
v1 PRD grilled from draft to DEFINED (/prd-grill-me)
Recent commits
All commitsLive from GitHub, as of Aug 8, 2026
- e8a2f4fJun 29, 2026
feat(catalog): add bossa nova to the Rio node + jazz/samba arcs
- 1e83fbdJun 29, 2026
chore(curation): add /add-locale skill + curation spec template
- 0ed819dJun 28, 2026
feat(catalog): add cumbia (Barranquilla) + chicha (Pucallpa) + Seville->Lima arc
- 8884ba2Jun 25, 2026
feat(catalog): add Cueca Brava (Santiago) + zamacueca (Lima) with influence arcs
- f0af46fJun 25, 2026
feat(influence): arcs on a MapLibre-synced overlay + Connected sounds (A5)
- 8a558f0Jun 24, 2026
- 0464cf9Jun 24, 2026
- cb7ee0dJun 24, 2026
Metrics
Each metric carries an honesty tag. Verified numbers read solid; targets and placeholders read muted.
Built the same way, every time.
Every exhibit runs the same loop: spec, implement, verify, ship. If you want this kind of work on your team, full-time or freelance, let's talk.