Every Parcel in Hawaii, Compiled as TypeScript and Committed to Git
Every TMK parcel, building footprint, and address in Hawaiʻi pulled from state and county GIS endpoints, encoded as TypeScript modules, and committed to a single Git repo. The whole dataset diffs in Git and renders as a 3D map.
The Challenge
Hawaii's authoritative geospatial data is scattered across a half-dozen sources: the state ArcGIS portal for statewide parcels, four separate county REST endpoints for the richer per-county data, OSM Overpass for building footprints with real heights, and a tangle of qPublic / Honolulu DPP pages for permits and ownership detail.
Every contractor, realtor, and homeowner tool we ship — Property Brief, Aloha Network, the AI scope generator, ProBuildCalc — needs that data, and needs it fresh. Standing up a normalized warehouse, an ETL pipeline, an API service, and a cache layer for every product was a lot of plumbing for a dataset that, in raw form, is well under a gigabyte.
The Solution
We treated the dataset like source code, not like data.
Weekly scrapers emit TypeScript, not rows Every Saturday, a cron job hits the upstream ArcGIS + REST endpoints, normalizes the response, and writes the result back to the repo as typed TypeScript modules — one file per island per layer. The whole geospatial corpus lives in Git: `parcels/oahu/*.ts`, `buildings/honolulu/*.ts`, `addresses/maui/*.ts`.
Diffs are the audit trail Because the data is text, every weekly refresh shows up as a Git diff. New parcels, building height corrections, address changes — all reviewable in a normal PR view. No "ETL ran, no idea what changed" — you can scroll the diff.
Same data layer feeds every product The map at maps.ikenagroup.com renders the same TypeScript that ProBuildCalc, Property Brief, the scope generator, and the lookup tool all import. One source of truth, no API drift between products.
Static export → instant 3D map The TypeScript dataset feeds a Three.js renderer at build time. The 3D map of Hawaii — buildings extruded to real heights, parcels clickable down to TMK / acres / qPublic — is just the static export of the same compiled data.
The Results
One repo now backs every Hawaii-aware product the studio ships. The 3D map at maps.ikenagroup.com renders all 384K parcels and 239K Honolulu building footprints in real heights, with click-through to per-parcel TMK / acreage / qPublic links.
Onboarding a new product to the data layer is now an `import` statement rather than a backend integration. The same approach extends to permit history and zoning when those layers are added — they slot into the same TypeScript directory tree.
Claude's Role
Claude wrote every scraper, designed the file-per-island directory layout, and handled the cross-source normalization (ArcGIS, county REST, and OSM Overpass return wildly different shapes). It built the Three.js renderer and the parcel click-to-TMK interaction. The week-over-week migrations are handled by Claude reading the diff and writing the codemod.
Tech Stack
Want results like these?
Let's talk about what AI can do for your business.