How does VersaTiles work?
There are a lot of excellent FLOSS solutions for generating, processing, serving and rendering maps. But in the end you have to combining multiple solutions and build a complete tech stack to generate and serve maps. That takes a lot of effort.
VersaTiles tackles this by defining a 5-step process chain defining how to process OpenStreetMap data and serve it as an interactive web map. It also provides a reference implementation of these 5 steps, but is flexible enough, so that every step can be replaced by your preferred solution. So if you want e.g. a different tile source, a different server or a different frontend, you can just replace the relevant part and still use the other steps.
The 5 steps of VersaTiles
The process chain in more details:
|Using the latest OSM dump …|
|Generator produces vector tiles.
We are using tilemaker to generate vector tiles in shortbread scheme.
|But .mbtiles is an annoyingly bad file format, especially for scalable infrastructures, so …|
|Converter prepares these tiles for the server
by precompressing, cleaning and converting them to…
|a versatiles container, a much more simpler and efficient file format.|
|Server is serving the vector tiles.|
|… but only speaks HTTP, because …|
|Proxy is handling network stuff
like TLS certificates, caching, load balancing, CORS etc.
|Now we have a running server infrastructure,
so we can put in front of it a …
|Frontend loads and renders the vector tiles.|
We combined permissively licensed open source software, data, schemes and styles, such as tilemaker, Geofabrik Shortbread and MapLibre.
VersaTiles lets you use OpenStreetMap based vector tiles, without any restrictions, locked-in paid services or attribution requirements beyond OpenStreetMap. You can use the freely downloadable tilesets from VersaTiles on your own infrastructure, in any way you like. Our open spec, royalty free and permissively licensed container format works with virtually any webserver or CDN — with no requirement to pay unreasonable prices for "Tiles-as-a-Service".
How is it constructed?
There are multiple ways to walk these 5 steps. (You can skip the first two by downloading the latest tiles.)
We cover all these steps with multiple implementations and Docker containers. You can find all repositories on GitHub. To give you a rough overview we created this flow chart.