// the find
umap-project/umap
uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site.
uMap is a self-hostable web app for creating and publishing custom maps on top of OpenStreetMap, built on Django and Leaflet. You draw points, lines, and polygons, style them, then embed the result in an iframe or share a link. It's been running the OSM-hosted instance at umap.openstreetmap.fr for years, so this isn't vaporware.
The feature set for a no-code mapping tool is genuinely wide: remote data layers (GeoJSON, CSV, GPX, KML), live Overpass queries, Grist integration, popup templates, proportional circles, heatmaps — most of this works without touching code. Localization coverage is exceptional, with 40+ languages in the locale directory, which matters for a tool aimed at civic and journalistic use. The Helm chart and Docker Compose setup are both present and maintained, so self-hosting is a real option rather than an afterthought. Active development — pushed yesterday — with NLnet/NGI funding that's currently paying for a vector tiles migration.
The architecture is a single Django monolith with per-map data stored as flat GeoJSON blobs; at scale this gets awkward, and there's no obvious path to collaborative real-time editing without rethinking storage. The frontend is vanilla JS with Leaflet, not a modern component framework — the codebase has a `.travis.yml` that's likely dead alongside a `biome.json`, suggesting tooling that's been layered on rather than designed. Permissions are map-level only (owner, editors, public/private); there's no folder or project concept, so managing dozens of maps per user gets messy. Documentation is split across two separate MkDocs sites (`docs/` and `docs-users/`) which suggests organizational friction that will likely affect contributors.