Martin is a tile server and toolkit that generates vector tiles on the fly from PostGIS databases and serves tiles from PMTiles and MBTiles files.
Martin solves the problem of efficiently serving map tiles at scale by combining on-demand tile generation with support for pre-generated tile archives. It generates vector tiles dynamically from PostgreSQL databases with PostGIS extensions, automatically discovering compatible tables and functions. It also serves pre-built tiles from PMTiles and MBTiles files, converts GeoJSON to vector tiles on the fly, and can combine multiple tile sources into a single endpoint. The tool is optimized for speed and heavy traffic, built in Rust for performance.
Martin suits projects that need to serve map data at scale, whether from live databases or static tile archives. It works well for applications combining multiple tile sources or requiring dynamic tile generation from PostGIS. Teams should choose Martin if they need a lightweight, fast alternative to heavier tile server solutions and want to avoid pre-generating all tiles upfront. The tool supports passthrough tiles from upstream servers and can generate sprites and font glyphs on demand, making it flexible for various mapping workflows.
The project maintains an active development guide and welcomes contributions through help-wanted issues. The team uses a just-based command system for common development tasks and coordinates discussion through a dedicated Slack channel within the OpenStreetMap US community.