Skip to main content

· 9 min read
Brandon Liu

Protomaps is a independent project to build a new map of the world. This scale of mission demands a wide range of novel frontend and backend components, like an open source spatial database, a serverless tile archive format, and a vector map renderer. There's also a web application — the one you're looking at now — with subsystems to process background tasks, ingest metrics and manage objects on cloud storage. Finally, there's the core map engine for cartographic generalization and tiling of OpenStreetMap data, which you can access at Protomaps Downloads.

Bringing a viable product to market, in addition to publishing open source software, creates some special pressures for a one-man shop. Chief among those is to make conservative technology choices. Building on stable tech means I can spend my risk budget on unique parts of the project instead of libraries; it means my open source components can be adopted by others with minimum friction and mature independently of my own use case. Rust and WebAssembly are exciting for maps, but a bootstrapped company can't afford multi-year investments in every emerging low-level technology. In this context, some Protomaps choices raise eyebrows among web and GIS developers, so I'll document a few of them here.

· 9 min read
Brandon Liu

Serverless computing supposedly will let developers run sophisticated applications on the web without wrangling virtual machines or databases. New products like Lambda offer simpler deploys for code; emerging standards like WebAssembly let you host SQLite databases on GitHub pages and make queries all from your browser. These examples rely on developers adopting new workflows or programming environments. So what if I told you that you've been computing serverlessly without realizing it?

Behold this one megabyte embedded video, a clip from Powers of Ten: A Film Dealing with the Relative Size of Things in the Universe and the Effect of Adding Another Zero:

· 7 min read
Brandon Liu

If you develop for the web, you've probably heard of OpenStreetMap, an open data alternative to Google Maps. Despite the wide name recognition of OSM, you may have questions like how do I make a web map with OSM data? and how can I host maps myself?

There are popular guides on how to work with planet files, PostGIS databases, and run tileservers for the OSM "slippy map" style. Even if you figure those out, you may be curious about vector maps for high-DPI sharpness and client-side customization of appearance and labels.

Protomaps is a new basemap system which is an end-to-end rethinking of this entire stack, oriented around the idea that custom mapmaking should be simple.

· 4 min read
Brandon Liu

A common user interaction in GIS applications is selecting a bounding box or polygon:

Your application may then use this polygon to do things like:

  • Render a high resolution, printable map image.
  • Generate a report of the surface area of buildings.
  • Calculate an isochrone map of distance to transit.