// the find
developmentseed/titiler
Build your own Raster dynamic map tile services
TiTiler is a FastAPI-based dynamic tile server for Cloud Optimized GeoTIFFs, STAC catalogs, and Zarr/NetCDF datasets. It's the go-to choice if you need to serve raster data over XYZ or WMTS without pre-generating a tile pyramid. Aimed squarely at geospatial developers who know what a COG is.
The namespace package split (titiler.core, titiler.mosaic, titiler.xarray) is well-designed — you pull in exactly what you need without dragging in cogeo-mosaic if you're just serving single COGs. The factory pattern for building FastAPI routers is genuinely extensible; adding a custom algorithm or endpoint doesn't require forking the project. STAC support is first-class, not bolted on — the STAC tiler understands asset roles and band metadata. Deployment options are practical: Lambda via CDK, Kubernetes via Helm, Azure Functions — all with working examples, not just READMEs that describe the vibe.
The metapackage `titiler` was silently squatted on PyPI by a third party for years and they only dropped it in late 2025 — that's the kind of supply chain fumble that leaves a bad taste. Caching is not built in; the docs show a redis middleware example but it's on you to wire it up, and under any real tile-request load you'll feel that gap immediately. The xarray/Zarr path has meaningful limitations around chunking and CRS handling that the docs mention briefly but don't warn loudly enough about — you can easily end up with slow or wrong tiles from non-trivially structured NetCDF files. No built-in auth; the example adds it as middleware but there's nothing stopping someone from deploying the `titiler.application` package publicly with all its endpoints wide open.