finds.dev← search

// the find

openinframap/openinframap

★ 532 · TypeScript · BSD-3-Clause · updated Jun 2026

Open Infrastructure Map, a view of infrastructure data in OpenStreetMap

Open Infrastructure Map renders global power grids, pipelines, telecoms, and water infrastructure from OpenStreetMap data onto a MapLibre GL map. The stack is imposm3 for OSM→PostGIS ingestion, Tegola for vector tile generation, a Python/FastAPI backend for stats and search, and a TypeScript frontend. It's for people who want to see and query where the world's physical infrastructure actually is.

The imposm3 mapping layer is split by domain (power.py, telecoms.py, petroleum.py, water.py) which makes it easy to find and modify what gets extracted without touching unrelated schema. Tegola config generation is scripted from a layers.yml definition rather than hand-edited, so adding a layer doesn't risk silently breaking the tile config. The i18n coverage is unusually broad for a niche GIS project — 30+ locales managed through Weblate, not committed JSON dumps. CI pipelines are per-component (imposm, tileserver, web, web-backend), so a broken frontend build doesn't block a schema migration deploy.

Self-hosting this is genuinely painful: you need a full OSM planet import via imposm3, PostGIS with the right schema, Tegola serving tiles, and the Python backend — the docker-compose.yml exists but there's no walkthrough for getting from zero to a working local map with real data, which means most contributors are flying blind. The web backend mixes template rendering and API endpoints in the same FastAPI app with no clear boundary, which will become a maintenance problem as the feature set grows. There's no documented process for keeping the imposm mappings in sync with upstream OSM tagging evolution — when the community changes how a tag is used, the extraction silently goes stale. The tegola expire.py tile invalidation is a Python script that appears to run manually rather than being wired into the imposm update cycle automatically.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →