← Back to projects

London Neighbourhoods

AstroTypeScriptPWAOpenStreetMapSVGPlaywrightCSSVercel

An offline-first, multilingual guide to London, Ontario for newcomers, with a custom OpenStreetMap-based map, address search and printable PDFs in English, Spanish and Arabic.

Why this project exists: I volunteer with Canada Connects and the South London Neighbourhood Resource Centre, meeting weekly with newcomers so they can practise their English. A couple from Colombia told me one of the hardest parts of arriving was learning the city: what the neighbourhoods are called, where things are, and why you would go there. I built this guide for people in that situation, so it had to work on a phone with no data plan, in their own language, and on paper.

Focus: Offline-first architecture with a build-time service worker · Internationalization, including full right-to-left layout for Arabic · Geospatial data processing from OpenStreetMap · Accessible, mobile-first UI for low-bandwidth users

Highlights

  • Covers 20 neighbourhoods, all 16 London Public Library branches, the 4 ServiceOntario offices, 15 notable parks and 121 coffee shops
  • Custom vector map generated from OpenStreetMap, with pan, pinch-to-zoom, layer toggles and shareable links to any place
  • Full interface in English, Spanish and Arabic, with cross-language search: “library”, “biblioteca” and “مكتبة” all find libraries
  • Works with no connection after the first visit, and can be installed to the home screen
  • Printable 4-page PDF guide in each language, generated with Playwright from the same data as the website
  • Privacy by design: no tracking, no cookies, no backend, and never asks for the user's location

Notable challenges

  • Building a fully offline street and intersection search (~3,100 streets, ~5,600 intersections) from raw OpenStreetMap data, tolerant of how people actually type addresses in three languages
  • Placing zoom-aware street labels that never overlap each other or a map marker, using the same logic for the interactive map and the printed PDF
  • Mirroring the whole interface for Arabic with CSS logical properties instead of a separate stylesheet, while keeping addresses and codes left-to-right
  • Keeping the full site, map, scripts and styles at about 45 KB compressed per page so it loads on limited data plans

Screenshots

Click any image to view full size

Desktop layout with the map of London, Ontario on the left and Downtown details on the right
View full size
Desktop — Map and details side by side
Three phone screens: the map view, Wortley Village details in a bottom sheet, and a Spanish search for biblioteca
View full size
Mobile — Map, neighbourhood details and cross-language search
Two phone screens: the Arabic right-to-left interface, and the site loaded with the network disabled
View full size
Arabic right-to-left layout, and the site working offline
Printed map page with numbered neighbourhoods and coded libraries, ServiceOntario offices and parks
View full size
Printable PDF — Map page with codes that match the address tables