Status: in design. There is no server to download or run yet. Use the hosted tile API today.
geolith tiles is the planned self-hosted tile server: one Cloudflare Worker, written in Rust and compiled to WebAssembly, that serves tiles from the PMTiles and COG files the geolith builder writes, kept in R2. Its repository holds a design document and no server code. The design must be approved before product code starts.
What is decided
- One Worker per deploy. Vector, raster, terrain and static-map tiles, and
.glxgeocoding behind a build feature, from one Worker. - Data stays in R2. PMTiles archives are read in byte ranges, with their directories kept in the Cache API. MBTiles, directories and tar archives are converted to PMTiles when they are published, not read at run time.
- A hard cost budget. No feature may add a fixed monthly cost; usage above the included allowance is stopped by a cap, not paid for.
- A memory budget. Peak WebAssembly memory stays under 96 MiB on every route.
Planned phases
| Phase | Scope |
|---|---|
| 1 | PMTiles vector tiles, .glx geocoding, a static tier for low zooms, styles, sprites, glyphs and TileJSON |
| 2 | Terrain and COG raster tiles, MapLibre Tiles (MLT), filters, GeoJSON output, composite tile sets, static-map rendering |
| 3 | STAC mosaics, GeoParquet, OGC API Features, PostGIS through Hyperdrive, an MCP server |
Each phase ends with a cost check against the budget. Exploratory spikes for caching, rendering on Workers and COG reads ran on 2 Nov 2026 and were deleted after; their results are recorded in the design document.
Until then
- The hosted tile API serves tiles from api.geolith.app: India tile set today; planet tiles in development.
- To serve tiles you build yourself, the builder writes standard PMTiles v3 archives: any PMTiles reader or server can serve them. See Output tuning.