Introducing mapnolia 🌍🌼
https://github.com/zeSchlausKwab/mapnoliaAnother iteration of my
#sec project.
Turn massive map tilesets into bite-sized, geographically chunked blobs — served over
#blossom and discovered via
#nostr> This enables us to host our own maps on low end hardware and share it with others if we chose to do so. We can also host "partial" maps if our space is scarce still enabling clients to stitch full world "quilts" out of multiple partial maps sources.
#mapnolia takes a
#PMTiles archive, splits it into geohash regions, stores each chunk as a content-addressed blob, and publishes an index to Nostr relays. Clients fetch only the tiles they need for the area on screen.
🗺️ **Geohash chunking** — splits the world into regions, recursively subdivides large areas
📦 **Content-addressed storage** — every chunk is a standalone `.pmtiles` file identified by its SHA-256 hash
🌸 **Blossom protocol** — blobs served over HTTP with Range request support
📡 **Nostr discovery** — kind 34444 events announce the chunk index to any relay
⚡ **Single binary** — Go backend with embedded React dashboard, nothing else to deploy

Watch a
#mapnolia admin uploading a map layer to his server. The new tile set is announced via nostr kind 34444 and is immediately visible on earthly.city that already implements pmtiles blobs client side:
Coming in "two weeks":
- client whitelists
- map style stencils
- monetization