Paid travel-guide PWA · Jan — Jul 2026
AMERICANÆRA
The problem — Travellers bought curated US road-trip guides as static PDFs, then lost them where they needed them most — no signal in national parks and deserts, and every purchase was turned into an account by hand.
- lines of code
- ~25k
- routes
- 55
- core tables
- 10
- manual onboarding
- 0
What I built
- Map-first PWA (Next.js 16, React 19, Supabase, Leaflet + Google tiles) where the curated guide is the map.
- Workbox service worker: images CacheFirst, guide and point APIs NetworkFirst, plus an offline fallback route.
- KML/KMZ importer with a preview step that bulk-converts Google Earth work into database points.
- Node/Express service verifies Shopify webhook HMAC, provisions the account, emails credentials, grants the guides.
- Viewport-based marker loading and clustering; httpOnly sessions and a hard 2-device limit protect paid content.
Stack
- Next.js 16
- React 19
- TypeScript
- Supabase
- Leaflet
- Google Maps
- Workbox
- Node.js
- Express
- Shopify
- Zod