finds.dev← search

// the find

protomaps/PMTiles

★ 2,897 · TypeScript · NOASSERTION · updated May 2026

Pyramids of map tiles in a single file on static storage

PMTiles is a binary archive format that packs an entire map tile pyramid into a single file, designed to be served directly from S3 or R2 without a tile server. The key trick is HTTP range requests — the client fetches only the tiles it needs. Aimed at developers who want to self-host maps without running PostGIS, tegola, or any backend process.

The range-request design is genuinely clever: a single static file replaces an entire tile server, and the directory structure is optimized so most tile fetches need only 1-2 HTTP requests. The spec is public domain and implementations exist in JS, Python, Go, and C++ — this isn't lock-in. Cloudflare Workers and Lambda adapters are included and actually work, not just documented. The viewer at pmtiles.io is useful for debugging without writing any code.

Python implementation lags behind the JS one — the writer and reader exist but lack the performance optimizations and some v3 features that the JS client has. Large archives (a full planet basemap is tens of GB) mean your first upload to S3 is painful and partial updates are impossible — you regenerate and reupload the whole file. CORS configuration is not optional and will silently break your map if wrong, but the docs treat it as a footnote. The toolchain dependency (tippecanoe + GDAL) for generating files from raw geodata is steep for anyone not already in the geospatial ecosystem.

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 →