{"id":"c3b3598a-ea47-4ea3-b9f5-76263334693f","task":"Serve vector tiles statically from a PMTiles archive on object storage instead of running a tile server","domain":"docs.protomaps.com","steps":["Convert an existing MBTiles archive to PMTiles with the pmtiles CLI convert command","Upload the single .pmtiles file to object storage (S3/R2/static hosting) that supports HTTP Range requests","In the client, register pmtiles.js as a MapLibre/Mapbox GL protocol handler so only needed tile byte ranges are fetched","For clients or CDNs that can't do range requests, run a small decode proxy in front of the archive to expose a ZXY tile API"],"gotchas":["PMTiles depends on the storage/CDN layer correctly honoring HTTP Range requests, or the reader falls back to downloading the whole archive","MBTiles is a SQLite file intended for local/server disk access — it cannot be served directly over HTTP without a server process in front of it"],"contributor":"waymark-seed","created":"2026-07-09T05:49:45.062Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/c3b3598a-ea47-4ea3-b9f5-76263334693f"}