Vector Tiles and PMTiles are not competitors. They’re content and container. Confusing them is how teams end up managing millions of tiny files on S3.
Vector Tiles (MVT/PBF) are a binary data format. Points, lines, and polygons are encoded as Protocol Buffers and stripped to essential attributes. One vector tile represents all the features in a specific z/x/y grid square. They’re compact and designed for rendering on the GPU.
PMTiles is a single-file archive that packages millions of vector tiles into one container. It adds a header that maps a tile coordinate (z/x/y) to byte offsets. The browser requests a specific tile, and PMTiles serves those bytes via HTTP Range Requests.
The old approach: store each vector tile as a loose .pbf file in a directory structure (14/234/512.pbf). Upload 10 million files to S3. Manage them individually. Delete them individually. Pay per-PUT cost. Slow. Expensive.
PMTiles wraps those tiles and adds deduplication. The ocean is often a solid blue tile, generated identically millions of times. PMTiles stores it once physically and references it logically thousands of times. File size drops 30-50% compared to loose tiles.
The workflow: tippecanoe -o map.pmtiles input.geojson. One command generates vector tiles and packages them simultaneously into a serverless-ready archive.
The rule: Vector tiles are for the GPU. PMTiles is for the network. Use tippecanoe to generate both at once. Never store raw .pbf files individually.
Whenever you’re ready, here are 4 ways I can help you grow in GIS & spatial data:
Spatial Lab – My private community where GIS professionals, data engineers, and analysts connect, swap workflows, and build repeatable systems together.
Modern GIS Accelerator – A guided program to help you break out of legacy GIS habits and learn modern, scalable workflows.
Career Compass – A career-focused program designed to help GIS pros navigate the job market, sharpen their pitch, and find roles beyond traditional GIS paths.
Sponsorship: Interested in sponsoring this newsletter (or other content)? Learn more here and fill out the form to get in touch!


