14 July 2026
Protomaps: a map you can actually own

For years, putting a map on a website meant renting one. You pick a vendor, get an API key, and pay for as long as the map is live - while the project is running, and long after everyone’s forgotten it’s there. The map is never really yours. You’re leasing it, and the lease doesn’t end.
The strange part is that the data was always free. OpenStreetMap has offered the whole planet’s worth of open map data for years. The expensive bit was turning that data into tiles - the small rendered pieces a map is assembled from. Processing raw OSM data into a full set of tiles meant serious hardware and a job that ran for days every time the data changed. That cost was the moat: the data was free to anyone, but the work of making it usable was not, so the companies that did that work charged rent.
Brandon Liu has spent the last several years building the thing that drained the moat. Protomaps does something that looks completely ordinary - it puts a map on a webpage - but instead of renting it from a vendor, it packages the whole world into a single file. These PMTiles sit on any ordinary web storage from S3 to your own physical server. Your browser reads only the part it needs as you pan around. No account, no API key, no meter. The map is a file you can keep.

That “only the part it needs” is where it gets clever. A file is one-dimensional, a line of bytes; a map is two-dimensional. So how do you lay a 2D world into a 1D file and keep nearby places near each other? Protomaps borrows a trick from the 1890s: a Hilbert curve, a line that snakes through a square until it has touched every point. Picture unspooling twine as you walk through a labyrinth - once you’ve covered it, any point inside can be named by a single number, its distance along the twine. Two coordinates collapse into one. In the file, that keeps neighbouring tiles physically close, which means fewer seeks and faster reads.

What Brandon is clear-eyed about, in a way the industry mostly isn’t, is why nobody did this sooner. The people who could make basic map infrastructure free are the ones charging for it, and they’d lose the most by fixing it. “There often are not strong incentives to solve this,” he says, “because recurring subscription business models make more money.” He adds that solving it “might result in less business, but it opens the possibility of publishing custom maps to a 100x (maybe more) larger audience.” He built it anyway, and the design that makes Protomaps work is the same one that makes it impossible to sell the usual way: once a map is a static file, there’s no service left running for anyone to pay for.
He’s careful not to turn that into an argument against subscriptions everywhere. Some problems really are services - geocoding, where every request is different and the answer has to be worked out live, is one. As he puts it: “Results are difficult to cache, because each user may be inputting totally different addresses, and the ideal geocoding responses are quite different from the raw data format stored on disk.” The model should follow the shape of the problem. A static map is a file. A live lookup is a service. The industry blurred that line because services bill better.
The same restraint runs through the project itself. Protomaps draws the visual basemap from OpenStreetMap, and that’s it - the things it doesn’t do, it leaves to tools built for them. Most software treats its scope as something to expand. Protomaps treats it as something to finish.
You can see who that serves in the projects Brandon gets most animated about: Toilet Map, a volunteer-run directory of public loos across the UK; Pinball Map, a community guide to working pinball machines around the world; one-off newsroom maps that need to keep working with nobody maintaining them; city governments layering OpenStreetMap onto public tools. None of them could carry the old cost - a vendor contract, or the work of running map infrastructure themselves. They work now because Protomaps is a piece of a stack, not a platform: it does the basemap and leaves geocoding, routing, and the rest to tools built for those jobs.

Every other way of putting a map online ties you to something: an account, a server, a bill that arrives whether the map changed or not. Protomaps hands you an object instead - a file you can copy, host anywhere, and forget about. No meter, no lease, no end date. You make the map, and then it’s yours.
Protomaps is free and open source - the project is at protomaps.com. If you want to set up your own Protomaps map, you can find the docs at docs.protomaps.com.