Guido Sforni

The London Cinema Map

An interactive map of every cinema in London, designed to give independents the same visual weight as chains.

The London Cinema Map interface: filter sidebar beside a dark map of London covered in cinema pins
Mobile view of the app listing cinemas open on Friday with accessibility filters applied

The Brief

I built this for myself. Searching for cinemas on Google Maps or chain websites pushes you toward whichever venues pay for SEO or carry the biggest brand presence, which makes it genuinely hard to discover the independent and repertory venues that often have the more interesting programming. So I made a map where everyone gets the same pin.

What It Does

The app maps every cinema in London on a Leaflet layer, with filtering by chain or independent, format (IMAX, 35mm, etc.), accessibility, price, language, and live showtimes. Click a venue and you get its current programme with a booking link that either deep-links into the cinema's site or proxies through to the booking provider. Cinemas are presented with equal visual weight regardless of size or marketing budget.

How I built It

Frontend in Next.js, React, and Tailwind, with React-Leaflet for the map. Live cinema and showtime data comes from the MovieGlu API, called through a server-side /api/booking proxy so credentials stay off the client. Vercel Edge caching refreshes roughly every six hours to manage API quota.

The decision I'm proudest of is the metadata layer. MovieGlu gives you authoritative showtimes and venue data, but it doesn't carry the editorial detail I actually cared about: accessibility notes, pricing tiers, discount info, the independent-vs-chain distinction surfaced in the way I wanted. So I kept a curated metadata file alongside the API and merged the two at request time. The alternative would have been to either drop those fields or fork the API data, both of which would have weakened the independent-cinema ethos that's the whole point of the app.

Venue detail popover for Prince Charles Cinema showing screenings, price and accessibility

What I Learnt

The real constraint wasn't code, it was API quota. I hit the limits of MovieGlu's evaluation tier and had to design around it: Edge caching with a six-hour refresh, holding off on the UK Cinema API trial until the app was feature-complete so I wouldn't burn the three-day window on development. It reframed the project from "build the features" to "build the features within a finite request budget," which isn't something I anticipated at the start. Most of the interesting design choices came from working inside that constraint, not around it.