The problem
Finding a good show means jumping between venue sites and ticketing pages. This app puts live music near you in one searchable, filterable place, and the backend absorbs the awkward parts of the JamBase API so the interface can stay simple.
Approach
- A FastAPI backend acts as a thin adapter over JamBase. It owns geocoding, parameter mapping, response normalization and error translation, so the React frontend consumes one stable shape
- Location comes from browser geolocation or any typed city or ZIP. Free-text locations are geocoded with Open-Meteo and cached, since JamBase only accepts coordinates
- Search by artist (debounced) within 10, 25, 50 or 100 miles, with filters for date (including a day-aware “This weekend”), genre across 15 options, and price, all in one dropdown with an active-count badge
- Event cards show the image, headliner and support acts, venue, date and time, distance, genre tags, price range and a direct ticket link; cancelled shows are labelled rather than hidden
- Results are paginated with Load more and a running event count. A mock-data mode lets the app run without hitting the API. Scaffolded with Claude Code
Highlights
- Search by location, artist, date, genre and price
- Backend handles API limits: coordinates-only locations, one genre per request, errors returned as HTTP 200
- Documented REST API with interactive FastAPI docs
- Mock-data mode for development without API calls