Home / Blog
Notes from building this map.
May 19, 2026#map#geo#ux
When you click a region the map flies somewhere — but to what zoom? A short tour of bbox-to-zoom heuristics and the cases that broke them
May 12, 2026#openstreetmap#parsing#data-quality
OSM's opening_hours tag is a real DSL with a real grammar, and roughly a third of wineries fill it in wrong
May 11, 2026#seo#sitemap#egress
A short story about Googlebot, Vercel egress, and the difference between discoverable and announced.
May 11, 2026#wikipedia#images#import
Fetching region photos from Wikipedia is mostly title-juggling and rejecting the wrong famous thing.
May 11, 2026#seed#history#process
How seed-w21 through seed-w31 became an honest commit log of which wine regions we cared about each week.
May 11, 2026#nextjs#leaflet#ssr
The whole map component, the entire SSR boundary, and the single line that makes Leaflet work in Next.js.
May 11, 2026#osm#import#data
How the import respects rows you've hand-edited — and how it adopts wineries that don't sit inside any region polygon.
May 11, 2026#data-model#grapes#supabase
The /grapes pages look like rows from a database. They're not — they're aggregated from a string array on every region.
May 11, 2026#enrichment#osm#wikipedia
OSM tags are cheap and immediate. Wikipedia is slow and often empty. The enrichment script tries the cheap one first.
May 11, 2026#data-model#dedup
Brouilly used to be a district under Bourgogne. Now it's a region in its own right — and a dedup script cleans up the leftover.
May 11, 2026#data#normalization#supabase
How the dedup script collapses near-duplicate districts — and the one-line normalizer doing the heavy lifting.
May 8, 2026#italy#naming#tuscany
Why the database now says Tuscany — and what to do with the slug it used to live at.
May 8, 2026#explainer#appellations
Three layers, one country: how Bordeaux contains Médoc which contains Pauillac which contains Château Lafite.
May 8, 2026#openstreetmap#geo#import
How the boundary import falls back to landuse=vineyard hulls — and why Hunter Valley got 1070 vineyards stitched into a polygon.