{"slug": "protomaps", "name": "Protomaps", "category": "selfhosted", "category_name": "Self-hosted and home server", "description": "", "recommenders": 4, "commenters": 7, "warners": 0, "score": 4.117, "rising": -1.31, "first": "2025-11-26", "latest": "2026-07-05", "why": "we used Protomaps, OpenStreetMap, MapLibre and other free tools to craft a stylized version", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 3, "compare": 0, "warn": 0}, "spark": [1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "we used Protomaps, OpenStreetMap, MapLibre and other free tools to craft a stylized version", "kind": "", "icon": true, "domain": "protomaps.com", "github_repo": null, "official_url": "https://protomaps.com/", "pricing": "", "aliases": ["Protomaps", "protomaps"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 748270096, "item_id": 46766881, "url": "https://news.ycombinator.com/item?id=46766881", "by": "homebrewer", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "You can look at their demo, it uses the exact same single-file hosting mechanism", "excerpt": "Sure. You can look at their demo, it uses the exact same single-file hosting mechanism (the network requests tab in the browser dev tools confirms it \u2014 it doesn't send any other requests), and street/house addresses are visible on the map. https://maps.protomaps.com", "context": "", "use_case": "", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 748260513, "item_id": 46766282, "url": "https://news.ycombinator.com/item?id=46766282", "by": "jtbaker", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "Brandon has some example code you can lift", "excerpt": "It's very cool! If you want to get higher cache hit rates from a CDN or redis etc. and lower the amount of S3 reads, you can get set up a proxy to convert `/{z}/{x}/{y}.mvt` requests into the byte-range requests: https://docs.protomaps.com/deploy/ Brandon has some example code you can lift to dump it into a Cloudflare Worker or other platforms on that page.", "context": "", "use_case": "Serving map tiles", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 748253312, "item_id": 46765832, "url": "https://news.ycombinator.com/item?id=46765832", "by": "homebrewer", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "We've been self-hosting protomaps (aka pmtiles) for several years", "excerpt": "We've been self-hosting protomaps (aka pmtiles) for several years. The only thing you need server-side is a web server that can serve static files and supports range requests (so anything works; I've tried caddy and nginx). The map is one large file, it's easy to share it between however many servers you need. https://docs.protomaps.com/guide/getting-started Downsides? Nothing major that I can think of. You have to a", "context": "", "use_case": "self-hosted map tiles", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 744070448, "item_id": 46504403, "url": "https://news.ycombinator.com/item?id=46504403", "by": "palewire", "date": "2026-01-05", "version": null, "stance": "recommend", "quote": "we used Protomaps, OpenStreetMap, MapLibre and other free tools to craft a stylized version", "excerpt": "Today I'm happy to release \"First Basemap,\" a free tutorial that shares one of our most valuable recent innovations at Reuters. It's at https://palewi.re/docs/first-basemap/ Follow the step-by-step guide and you'll learn how to create a shockingly fast and virtually free interactive map of the world. This type of map is often called a basemap because it provides the foundation for displaying data layers like weather ", "context": "works at Reuters", "use_case": "building a basemap", "switched_from": "", "story": "First Basemap: How to create a fast and virtually free map"}, {"id": 736962768, "item_id": 46060173, "url": "https://news.ycombinator.com/item?id=46060173", "by": "raybb", "date": "2025-11-26", "version": null, "stance": "recommend", "quote": "I think you might be looking for something like this: https://protomaps.com/", "excerpt": "I think you might be looking for something like this: https://protomaps.com/", "context": "", "use_case": "", "switched_from": "", "story": "OpenStreetMap scales to serve users worldwide with Fastly"}]}], "caveats": [], "who": [{"by": "palewire", "context": "works at Reuters", "url": "https://news.ycombinator.com/item?id=46504403", "date": "2026-01-05"}], "tags": [], "use_cases": ["maps", "serving map tiles", "self-hosted map tiles", "building a basemap"], "compared": [{"slug": "openstreetmap", "name": "OpenStreetMap", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "leaflet", "name": "Leaflet", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 798483664, "item_id": 49905229, "url": "https://news.ycombinator.com/item?id=49905229", "by": "blueblazin", "date": "2026-09-30", "version": null, "stance": "neutral", "quote": "this is an online app and it uses protomaps[1] and mapterhorn[2] data for cities and elevation", "excerpt": "Thanks, this is an online app and it uses protomaps[1] and mapterhorn[2] data for cities and elevation. So the app streams relevant elevation tiles based on your current location and uses those to render the terrain. [1] https://protomaps.com [2] https://mapterhorn.com/", "context": "", "use_case": "Map tiles", "switched_from": "", "story": "Show HN: Low Poly Earth \u2013 The whole planet in 3D, built from OpenStreetMap data"}, {"id": 780739600, "item_id": 48796225, "url": "https://news.ycombinator.com/item?id=48796225", "by": "bpev", "date": "2026-07-05", "version": null, "stance": "recommend", "quote": "I have an experimental open-source implementation of offline-capable PWA protomaps", "excerpt": "FWIW, I have an experimental open-source implementation of offline-capable PWA protomaps. Haven't advertised it much, because I haven't sorted out performance (particularly on mobile), and it's a bit buggy still. Also, don't have cache invalidation. But it does work. Usually. xD app: https://maps.bpev.me source: https://tangled.org/bpev.me/maps Based on results from indexeddb pmtiles work: https://github.com/jtbaker/", "context": "", "use_case": "Offline PWA maps", "switched_from": "", "story": "Organic Maps"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46763864", "title": "MapLibre Tile: a modern and efficient vector tile format", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48794446", "title": "Organic Maps", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49880443", "title": "Show HN: Low Poly Earth \u2013 The whole planet in 3D, built from OpenStreetMap data", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48623383", "title": "item 48623383", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46656358", "title": "Show HN: Streaming gigabyte medical images from S3 without downloading them", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46504402", "title": "First Basemap: How to create a fast and virtually free map", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {"recommend": 3, "neutral": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"neutral": 1}, "2026-07": {"neutral": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 780745216, "item_id": 48796576, "url": "https://news.ycombinator.com/item?id=48796576", "by": "maelito", "date": "2026-07-05", "version": null, "stance": "neutral", "quote": "", "excerpt": "Funny : there's another Ben that did his \"Ben maps\". https://benmaps.fr", "context": "", "use_case": "", "switched_from": "", "story": "Organic Maps"}, {"id": 777974146, "item_id": 48623384, "url": "https://news.ycombinator.com/item?id=48623384", "by": "stlouing", "date": "2026-06-21", "version": null, "stance": "neutral", "quote": "The site relies on Astro, GitHub, Leaflet/Protomaps/OpenStreetMap, Lucide, Formspree, and Supabase.", "excerpt": "Recently I built https://stlouing.com, a digital garden for exploring the city I moved to (St. Louis). It has a few main sections: Food Map - https://stlouing.com/food - a map of local restaurants and cafes I've found with ratings and some thoughts and comments on each one. Neighborhood Map - https://stlouing.com/neighborhoods - a map of all the neighborhoods, which brings in any food spots or articles that reference", "context": "", "use_case": "maps", "switched_from": "", "story": null}, {"id": 748270096, "item_id": 46766881, "url": "https://news.ycombinator.com/item?id=46766881", "by": "homebrewer", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "You can look at their demo, it uses the exact same single-file hosting mechanism", "excerpt": "Sure. You can look at their demo, it uses the exact same single-file hosting mechanism (the network requests tab in the browser dev tools confirms it \u2014 it doesn't send any other requests), and street/house addresses are visible on the map. https://maps.protomaps.com", "context": "", "use_case": "", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 748260513, "item_id": 46766282, "url": "https://news.ycombinator.com/item?id=46766282", "by": "jtbaker", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "Brandon has some example code you can lift", "excerpt": "It's very cool! If you want to get higher cache hit rates from a CDN or redis etc. and lower the amount of S3 reads, you can get set up a proxy to convert `/{z}/{x}/{y}.mvt` requests into the byte-range requests: https://docs.protomaps.com/deploy/ Brandon has some example code you can lift to dump it into a Cloudflare Worker or other platforms on that page.", "context": "", "use_case": "Serving map tiles", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 748253312, "item_id": 46765832, "url": "https://news.ycombinator.com/item?id=46765832", "by": "homebrewer", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "We've been self-hosting protomaps (aka pmtiles) for several years", "excerpt": "We've been self-hosting protomaps (aka pmtiles) for several years. The only thing you need server-side is a web server that can serve static files and supports range requests (so anything works; I've tried caddy and nginx). The map is one large file, it's easy to share it between however many servers you need. https://docs.protomaps.com/guide/getting-started Downsides? Nothing major that I can think of. You have to a", "context": "", "use_case": "self-hosted map tiles", "switched_from": "", "story": "MapLibre Tile: a modern and efficient vector tile format"}, {"id": 746509136, "item_id": 46656821, "url": "https://news.ycombinator.com/item?id=46656821", "by": "matthberg", "date": "2026-01-17", "version": null, "stance": "neutral", "quote": "Seems very similar to how maps work on the web these days, in particular protomap files", "excerpt": "Seems very similar to how maps work on the web these days, in particular protomap files [0]. I wonder if you could view the medical images in leaflet or another frontend map library with the addition of a shim layer? Cool work! 0: https://protomaps.com/", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Streaming gigabyte medical images from S3 without downloading them"}, {"id": 744070448, "item_id": 46504403, "url": "https://news.ycombinator.com/item?id=46504403", "by": "palewire", "date": "2026-01-05", "version": null, "stance": "recommend", "quote": "we used Protomaps, OpenStreetMap, MapLibre and other free tools to craft a stylized version", "excerpt": "Today I'm happy to release \"First Basemap,\" a free tutorial that shares one of our most valuable recent innovations at Reuters. It's at https://palewi.re/docs/first-basemap/ Follow the step-by-step guide and you'll learn how to create a shockingly fast and virtually free interactive map of the world. This type of map is often called a basemap because it provides the foundation for displaying data layers like weather ", "context": "works at Reuters", "use_case": "building a basemap", "switched_from": "", "story": "First Basemap: How to create a fast and virtually free map"}, {"id": 736962768, "item_id": 46060173, "url": "https://news.ycombinator.com/item?id=46060173", "by": "raybb", "date": "2025-11-26", "version": null, "stance": "recommend", "quote": "I think you might be looking for something like this: https://protomaps.com/", "excerpt": "I think you might be looking for something like this: https://protomaps.com/", "context": "", "use_case": "", "switched_from": "", "story": "OpenStreetMap scales to serve users worldwide with Fastly"}]}