1<!DOCTYPE html><html lang="en"><head> 2 <meta charset="utf-8"> 3 <title>VersaTiles</title> 4 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 5 <meta name="description" content="A completely FLOSS map stack"> 6 7 <meta property="og:title" content="VersaTiles"> 8 <meta property="og:description" content="A completely FLOSS map stack"> 9 <meta property="og:image" content="https://versatiles.org/assets/social.png"> 10 <meta property="og:image:width" content="1200"> 11 <meta property="og:image:height" content="675"> 12 <meta property="og:image:alt" content="VersaTiles â a complete FLOSS map stack"> 13 <meta property="og:url" content="https://versatiles.org/"> 14 <meta property="og:site_name" content="VersaTiles"> 15 <meta property="og:type" content="website"> 16 <link rel="canonical" href="https://versatiles.org/"> 17 <link rel="me" href="https://mastodon.social/@VersaTiles"> 18 19 <meta name="twitter:title" content="VersaTiles"> 20 <meta name="twitter:description" content="A completely FLOSS map stack"> 21 <meta name="twitter:image" content="https://versatiles.org/assets/social.png"> 22 <meta name="twitter:image:alt" content="VersaTiles â a complete FLOSS map stack"> 23 <meta name="twitter:card" content="summary_large_image"> 24 25 <link rel="shortcut icon" sizes="16x16 24x24 32x32 48x48 64x64" href="/assets/logo/favicon.ico"> 26 <link rel="icon" type="image/png" href="/assets/logo/versatiles.32.png" sizes="32x32"> 27 <link rel="icon" type="image/png" href="/assets/logo/versatiles.48.png" sizes="48x48"> 28 <link rel="icon" type="image/png" href="/assets/logo/versatiles.64.png" sizes="64x64"> 29 <link rel="icon" type="image/png" href="/assets/logo/versatiles.96.png" sizes="96x96"> 30 31 <link rel="stylesheet" href="/assets/style.css"> 32 </head> 33 34 <body data-color-mode="dark" data-light-theme="dark" data-dark-theme="dark"> 35 <a href="#main-content" class="skip-link">Skip to main content</a> 36 <header> 37 <nav aria-label="Main navigation"> 38 <a class="logo" href="https://versatiles.org" aria-label="VersaTiles home"> 39 <img src="/assets/logo/versatiles.svg" alt="VersaTiles"> 40 </a> 41 <ul role="list"><li class="selected"><a href="https://versatiles.org/">Overview</a></li><li><a href="https://versatiles.org/playground/">Playground</a></li><li><a href="https://versatiles.org/tools/">Tools</a></li><li><a href="https://docs.versatiles.org/">Documentation</a></li><li class="github-icon"><a aria-label="GitHub" href="https://github.com/versatiles-org/"></a></li></ul> 42 </nav> 43 </header> 44 <main id="main-content" class="markdown-body" aria-label="Page content"><div id="logoblock"> 45 <img src="assets/logo/versatiles.svg" alt="VersaTiles logo" style="background-color: transparent;" width="118" height="136"> 46 <div> 47 <h1>VersaTiles</h1> 48 <p> 49 <span>a</span> 50 <span>complete</span> 51 <span><abbr title="Free, Libre and Open Source Software">FLOSS</abbr></span> 52 <span>map</span> 53 <span>stack</span> 54 </p> 55 </div> 56</div> 57 58<hero>VersaTiles is a completely <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software">FLOSS</a> stack 59 for generating, distributing, and using map tiles based on OpenStreetMap data, free of any commercial interests. 60</hero> 61 62<p>VersaTiles is a free and open alternative to commercial map services like Google Maps or Mapbox. It is designed for 63 newsrooms, NGOs, developers, and public institutions who need reliable maps without vendor lock-in. VersaTiles is 64 fully self-hostable, requires no API keys, charges no usage fees, and does not track your users.</p> 65 66<h2>Try it out</h2> 67 68<link rel="preload" href="https://tiles.versatiles.org/assets/lib/maplibre-gl/maplibre-gl.css" as="style"> 69<link rel="preload" href="https://tiles.versatiles.org/assets/lib/maplibre-gl/maplibre-gl.js" as="script"> 70<link rel="stylesheet" type="text/css" href="https://tiles.versatiles.org/assets/lib/maplibre-gl/maplibre-gl.css">
71<script src="https://tiles.versatiles.org/assets/lib/maplibre-gl/maplibre-gl.js"></script>
vendor: 1 bytes, line 71
71
72<script src="https://tiles.versatiles.org/assets/lib/versatiles-style/versatiles-style.js"></script>
72 73<style scoped=""> 74 #map-wrap { 75 position: relative; 76 width: 100vw; 77 margin-left: calc(50% - 50vw); 78 } 79 80 @media (min-width: 640px) { 81 #map-wrap { 82 width: auto; 83 margin-left: auto; 84 } 85 } 86 87 #map { 88 display: block; 89 width: 100%; 90 aspect-ratio: 16 / 9; 91 min-height: 240px; 92 overflow: hidden; 93 } 94 95 #map-styles { 96 position: relative; 97 display: grid; 98 grid-template-columns: 1fr 1fr 1fr; 99 background: rgba(15, 15, 18, 0.75); 100 border-radius: 6px; 101 padding: 3px; 102 border: 1px solid rgba(255, 255, 255, 0.1); 103 width: fit-content; 104 margin: 0.75rem auto 0; 105 } 106 107 #map-styles-track { 108 position: absolute; 109 inset: 3px; 110 width: calc((100% - 6px) / 3); 111 border-radius: 4px; 112 background: #c9850a; 113 transform: translateX(calc(var(--pos, 0) * 100%)); 114 transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); 115 pointer-events: none; 116 } 117 118 .map-style-btn { 119 position: relative; 120 z-index: 1; 121 padding: 4px 16px; 122 border: none; 123 border-radius: 4px; 124 background: transparent; 125 color: rgba(255, 255, 255, 0.55); 126 cursor: pointer; 127 font-size: 13px; 128 font-weight: 500; 129 letter-spacing: 0.01em; 130 transition: color 0.25s; 131 white-space: nowrap; 132 font-family: inherit; 133 } 134 135 .map-style-btn:hover { 136 color: rgba(255, 255, 255, 0.85); 137 } 138 139 .map-style-btn.active { 140 color: #fff; 141 } 142 143 .maplibregl-ctrl-attrib { 144 opacity: 0; 145 transition: opacity 0.2s; 146 } 147</style> 148<div id="map-wrap"> 149 <div id="map" role="img" aria-label="Interactive map of Berlin rendered with VersaTiles"></div> 150 <div id="map-styles"> 151 <div id="map-styles-track"></div> 152 <button type="button" class="map-style-btn active" data-style="colorful" aria-pressed="true">Colorful</button> 153 <button type="button" class="map-style-btn" data-style="gray-dark" aria-pressed="false">Gray</button> 154 <button type="button" class="map-style-btn" data-style="satellite" aria-pressed="false">Satellite</button> 155 </div> 156</div>
157<script> 158 const urls = { base: 'https://tiles.versatiles.org' }; 159 160 // VersaTiles Style v6: every vector/raster style comes from osm({ theme }) or satellite(), 161 // and inlineSources() folds the TileJSONs in â the relative tile URLs they list would not 162 // resolve otherwise, and it also carries over the attribution. 163 function buildStyle(name) { 164 const style = name === 'satellite' 165 ? VersaTilesStyle.satellite({ urls }) 166 : VersaTilesStyle.osm({ urls, theme: name }); 167 return VersaTilesStyle.inlineSources(style); 168 } 169 170 (async () => { 171 const map = new maplibregl.Map({ 172 container: 'map', 173 style: await buildStyle('colorful'), 174 bounds: [13.09, 52.33, 13.74, 52.68], 175 maxZoom: 18, 176 attributionControl: false, 177 }); 178 179 map.addControl(new maplibregl.FullscreenControl()); 180 map.addControl(new maplibregl.AttributionControl({})); 181 182 map.on('load', () => { 183 const container = map.getContainer().querySelector('.maplibregl-ctrl-attrib'); 184 if (container) { 185 container.classList.remove('maplibregl-compact-show'); 186 container.style.opacity = '1'; 187 } 188 }); 189 190 const buttons = document.querySelectorAll('.map-style-btn'); 191 const track = document.getElementById('map-styles'); 192 193 buttons.forEach((btn, i) => { 194 btn.addEventListener('click', async () => { 195 const prev = document.querySelector('.map-style-btn.active'); 196 prev.classList.remove('active'); 197 prev.setAttribute('aria-pressed', 'false'); 198 btn.classList.add('active'); 199 btn.setAttribute('aria-pressed', 'true'); 200 track.style.setProperty('--pos', i); 201 map.setStyle(await buildStyle(btn.dataset.style)); 202 }); 203 }); 204 })(); 205</script>
205 206 207<h2>Sponsor us</h2> 208 209<p style="text-align:center; margin:2rem 0"> 210 VersaTiles is free and self-hostable. If your team relies on it, please consider chipping in so we 211 can keep maintaining it. 212</p> 213 214<div id="sponsor-buttons"> 215 <div class="sponsor-btn-row"> 216 <a class="sponsor-btn sponsor-btn--github" href="https://github.com/sponsors/versatiles-org" rel="noopener" target="_blank"> 217 <svg class="icon" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"> 218 <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002Z"></path> 219 </svg> 220 Sponsor on GitHub 221 </a> 222 <a class="sponsor-btn sponsor-btn--oc" href="https://opencollective.com/versatiles" rel="noopener" target="_blank"> 223 <svg class="icon" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"> 224 <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002Z"></path> 225 </svg> 226 Sponsor on Open Collective 227 </a> 228 </div> 229 <a class="sponsor-btn sponsor-btn--once" href="https://donate.stripe.com/00w6oJ3EMfca6J35Jb1ck00?client_reference_id=versatiles-startpage" rel="noopener" target="_blank"> 230 <svg class="icon" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"> 231 <path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002Z"></path> 232 </svg> 233 Donate once 234 </a> 235</div> 236 237<h2>Sponsors</h2> 238 239<p style="text-align:center; margin:2rem 0"> 240 A big thank-you to everyone helping keep VersaTiles going. 241</p> 242 243<div class="sponsor-logos"> 244 <a href="https://versatiles.org/sponsors/" rel="noopener"> 245 <img src="https://versatiles.org/sponsors/sponsors.svg" alt="VersaTiles sponsors" loading="lazy"> 246 </a> 247</div> 248 249<h2>How it works</h2> 250 251<div id="pipeline"> 252 <div class="pipeline-step"> 253 <strong>Generate</strong> 254 <span>Turn OpenStreetMap data and satellite imagery into optimized tiles â or <a href="https://download.versatiles.org/">download ready-made ones</a>.</span> 255 </div> 256 <div class="pipeline-step"> 257 <strong>Serve</strong> 258 <span>Deliver tiles to clients using a lightweight, high-performance tile server.</span> 259 </div> 260 <div class="pipeline-step"> 261 <strong>Render</strong> 262 <span>Show beautiful maps on the web, Android, and iOS using <a href="https://maplibre.org/">MapLibre</a> with 263 professionally designed styles.</span> 264 </div> 265 <div class="pipeline-step"> 266 <strong>Tools</strong> 267 <span>Customize styles, set up servers, explore map data, and edit maps â all with our interactive tools.</span> 268 </div> 269</div> 270 271<h2>Explore VersaTiles</h2> 272 273<section class="cards-section"> 274<h3>Live demos & tools</h3> 275<div class="cards-grid"> 276<article class="card"> 277<img class="card__thumb" src="/assets/cards/tile-server.webp" alt="" loading="lazy"> 278<h4 class="card__title"><a class="card__link" href="https://tiles.versatiles.org/">Tile server & style picker</a></h4> 279<p class="card__hook">Use our public tile server and build your own map styles.</p> 280 281</article> 282<article class="card"> 283<img class="card__thumb" src="/assets/cards/aerial-imagery.webp" alt="" loading="lazy"> 284<h4 class="card__title"><a class="card__link" href="https://tiles.versatiles.org/#map=16/52.518637/13.376013&style=satellite&config=eyJvdmVybGF5IjpmYWxzZX0">Aerial imagery</a></h4> 285<p class="card__hook">Free, high-resolution orthophotos served as map tiles.</p> 286<a class="card__repo" href="https://github.com/versatiles-org/orthophotos" rel="noopener" aria-label="Aerial imagery source on GitHub">Source</a> 287</article> 288<article class="card"> 289<img class="card__thumb" src="/assets/cards/terrain.webp" alt="" loading="lazy"> 290<h4 class="card__title"><a class="card__link" href="https://tiles.versatiles.org/#map=13.8
2906/46.67217/9.54747/-62.6/60&style=satellite&config=eyJ0ZXJyYWluIjp0cnVlfQ">3D terrain & elevation</a></h4> 291<p class="card__hook">Global elevation data with hillshading and 3D terrain.</p> 292 293</article> 294<article class="card"> 295<img class="card__thumb" src="/assets/cards/styler.webp" alt="" loading="lazy"> 296<h4 class="card__title"><a class="card__link" href="https://versatiles.org/maplibre-versatiles-styler/">Style customizer</a></h4> 297<p class="card__hook">A MapLibre control to recolor, switch fonts/language, and export styles.</p> 298<a class="card__repo" href="https://github.com/versatiles-org/maplibre-versatiles-styler" rel="noopener" aria-label="Style customizer source on GitHub">Source</a> 299</article> 300<article class="card"> 301<img class="card__thumb" src="/assets/cards/showcases.webp" alt="" loading="lazy"> 302<h4 class="card__title"><a class="card__link" href="https://docs.versatiles.org/showcases/">Showcases</a></h4> 303<p class="card__hook">Real-world maps and creative uses of VersaTiles.</p> 304<a class="card__repo" href="https://github.com/versatiles-org/versatiles-documentation/blob/main/showcases/showcases.yaml" rel="noopener" aria-label="Showcases source on GitHub">Source</a> 305</article> 306<article class="card"> 307<img class="card__thumb" src="/assets/cards/map-editor.webp" alt="" loading="lazy"> 308<h4 class="card__title"><a class="card__link" href="https://versatiles.org/node-versatiles-svelte/map-editor#FeQRaYxHbYwVB2EvzxiO_xgqOZxXlBuIrhUiQhIiKiWhasWSFiMnWDlO9NkKfkOhNmejdlRhDkWjRmEjBnahLoEhVnddmNhblViLlBjS0MQA">Map editor</a></h4> 309<p class="card__hook">Drop pins, draw shapes, share editable maps in the browser.</p> 310<a class="card__repo" href="https://github.com/versatiles-org/node-versatiles-svelte" rel="noopener" aria-label="Map editor source on GitHub">Source</a> 311</article> 312<article class="card"> 313<img class="card__thumb" src="/assets/cards/playground.webp" alt="" loading="lazy"> 314<h4 class="card__title"><a class="card__link" href="https://versatiles.org/playground/">Playground</a></h4> 315<p class="card__hook">Runnable code examples for VersaTiles + MapLibre, right in the browser.</p> 316<a class="card__repo" href="https://github.com/versatiles-org/playground" rel="noopener" aria-label="Playground source on GitHub">Source</a> 317</article> 318<article class="card"> 319<img class="card__thumb" src="/assets/cards/documentation.webp" alt="" loading="lazy"> 320<h4 class="card__title"><a class="card__link" href="https://docs.versatiles.org">Documentation</a></h4> 321<p class="card__hook">The complete docs hub for the ecosystem.</p> 322<a class="card__repo" href="https://github.com/versatiles-org/versatiles-documentation" rel="noopener" aria-label="Documentation source on GitHub">Source</a> 323</article> 324<article class="card"> 325<img class="card__thumb" src="/assets/cards/download.webp" alt="" loading="lazy"> 326<h4 class="card__title"><a class="card__link" href="https://download.versatiles.org/">Download free map data</a></h4> 327<p class="card__hook">Ready-made tile data for the whole world.</p> 328 329</article> 330</div> 331</section> 332<section class="cards-section"> 333<h3>Servers & CLIs</h3> 334<div class="cards-grid"> 335<article class="card"> 336<img class="card__thumb" src="/assets/cards/setup-server.webp" alt="" loading="lazy"> 337<h4 class="card__title"><a class="card__link" href="https://versatiles.org/tools/setup_server">Server setup wizard</a></h4> 338<p class="card__hook">Answer a few questions, get a copy-pasteable install command.</p> 339 340</article> 341<article class="card"> 342<img class="card__thumb" src="/assets/cards/versatiles-rs.webp" alt="" loading="lazy"> 343<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org/versatiles-rs">VersaTiles CLI</a></h4> 344<p class="card__hook">Rust CLI to convert, validate, and serve tiles. Install via Homebrew, Cargo, or Docker.</p> 345 346</article> 347<article class="card"> 348<img class="card__thumb" src="/assets/cards/node-server.webp" alt="" loading="lazy"> 349<h4 class="card__title"><a class="card__link" href="https://www.npmjs.com/package/@versatiles/server">Node tile server</a></h4> 350<p class="card__hook">Lightweight Node.js server for <code>.versatiles</code> containers.</p> 351<a class="card__repo" href="https://github.com/versatiles-org/node-versatiles-server" rel="noopener" aria-label="Node tile server source on GitHub">Source</a> 352</article> 353<article class="card"> 354<img class="card__thumb" src="/assets/cards/google-cloud.webp" alt="" loading="lazy"> 355<h4 class="card__title"><a class="card__link" href="https://www.npmjs.com/package/@versatiles/google-cloud">Google Cloud server</a></h4> 356<p class="card__hook">Serve tiles + assets straight from a GCS bucket on Google Cloud Run. Perfect for newsrooms.</p> 357<a class="card__repo" href="https://github.com/versatiles-org/node-versatiles-google-cloud" rel="noopener" aria-label="Google Cloud server source on GitHub">Source</a> 358</article> 359<article class="card">
360<img class="card__thumb" src="/assets/cards/docker.webp" alt="" loading="lazy"> 361<h4 class="card__title"><a class="card__link" href="https://hub.docker.com/u/versatiles">Docker images</a></h4> 362<p class="card__hook">Production-ready images: versatiles, versatiles-frontend, versatiles-nginx, and more.</p> 363<a class="card__repo" href="https://github.com/versatiles-org/versatiles-docker" rel="noopener" aria-label="Docker images source on GitHub">Source</a> 364</article> 365</div> 366</section> 367<section class="cards-section"> 368<h3>Libraries</h3> 369<div class="cards-grid"> 370<article class="card"> 371<img class="card__thumb" src="/assets/cards/style-toolkit.webp" alt="" loading="lazy"> 372<h4 class="card__title"><a class="card__link" href="https://www.npmjs.com/package/@versatiles/style">Style toolkit</a></h4> 373<p class="card__hook">Generate MapLibre styles: Colorful, Natural, Muted, Gray, Toner, Satellite.</p> 374<a class="card__repo" href="https://github.com/versatiles-org/versatiles-style" rel="noopener" aria-label="Style toolkit source on GitHub">Source</a> 375</article> 376<article class="card"> 377<img class="card__thumb" src="/assets/cards/container.webp" alt="" loading="lazy"> 378<h4 class="card__title"><a class="card__link" href="https://www.npmjs.com/package/@versatiles/container">Container reader</a></h4> 379<p class="card__hook">Read <code>.versatiles</code> files in Node and the browser.</p> 380<a class="card__repo" href="https://github.com/versatiles-org/node-versatiles-container" rel="noopener" aria-label="Container reader source on GitHub">Source</a> 381</article> 382<article class="card"> 383<img class="card__thumb" src="/assets/cards/svelte.webp" alt="" loading="lazy"> 384<h4 class="card__title"><a class="card__link" href="https://versatiles.org/node-versatiles-svelte/">Svelte components</a></h4> 385<p class="card__hook"><code>BasicMap</code>, <code>BBoxMap</code>, <code>LocatorMap</code>, <code>MapEditor</code> for VersaTiles.</p> 386<a class="card__repo" href="https://github.com/versatiles-org/node-versatiles-svelte" rel="noopener" aria-label="Svelte components source on GitHub">Source</a> 387</article> 388<article class="card"> 389<img class="card__thumb" src="/assets/cards/svg-renderer.webp" alt="" loading="lazy"> 390<h4 class="card__title"><a class="card__link" href="https://versatiles.org/versatiles-svg-renderer/demo/index.html">SVG renderer</a></h4> 391<p class="card__hook">Render print-quality SVG maps from a style + bbox.</p> 392<a class="card__repo" href="https://github.com/versatiles-org/versatiles-svg-renderer" rel="noopener" aria-label="SVG renderer source on GitHub">Source</a> 393</article> 394<article class="card"> 395<img class="card__thumb" src="/assets/cards/frontend.webp" alt="" loading="lazy"> 396<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org/versatiles-frontend/releases/latest">Frontend bundles</a></h4> 397<p class="card__hook">Pre-packaged web frontends with MapLibre, fonts, sprites, and styles.</p> 398<a class="card__repo" href="https://github.com/versatiles-org/versatiles-frontend" rel="noopener" aria-label="Frontend bundles source on GitHub">Source</a> 399</article> 400<article class="card"> 401<img class="card__thumb" src="/assets/cards/choropleth.webp" alt="" loading="lazy"> 402<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org/versatiles-choro">Choropleth pipeline <em>(experimental)</em></a></h4> 403<p class="card__hook">Docker WebUI + CLI for building choropleth maps.</p> 404 405</article> 406<article class="card"> 407<img class="card__thumb" src="/assets/cards/orthophotos.webp" alt="" loading="lazy"> 408<h4 class="card__title"><a class="card__link" href="https://versatiles.org/orthophotos/">Orthophoto coverage</a></h4> 409<p class="card__hook">See the current state of the scrapers fetching high-resolution orthophotos.</p> 410<a class="card__repo" href="https://github.com/versatiles-org/orthophotos" rel="noopener" aria-label="Orthophoto coverage source on GitHub">Source</a> 411</article> 412</div> 413</section> 414<section class="cards-section"> 415<h3>Fonts & glyphs</h3> 416<div class="cards-grid"> 417<article class="card"> 418<img class="card__thumb" src="/assets/cards/glyphs.webp" alt="" loading="lazy"> 419<h4 class="card__title"><a class="card__link" href="https://versatiles.org/versatiles-glyphs-rs/">SDF glyph generator</a></h4> 420<p class="card__hook">Rust tool that produces high-precision SDF glyph PBFs from TTF/OTF fonts.</p> 421<a class="card__repo" href="https://github.com/versatiles-org/versatiles-glyphs-rs" rel="noopener" aria-label="SDF glyph generator source on GitHub">Source</a> 422</article> 423<article class="card"> 424<img class="card__thumb" src="/assets/cards/fonts.webp" alt="" loading="lazy"> 425<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org/versatiles-fonts/releases/latest">Pre-built fonts</a></h4> 426<p class="card__hook">Ready-to-use Fira, Lato, Noto, Roboto glyph archives.</p> 427<a class="card__repo" href="https://github.com/versatiles-org/versatiles-fonts" rel="noopener" aria-label="Pre-built fonts source on GitHub">Source</a> 428</article> 429</div> 430</section> 431<section class="cards-section"> 432<h3>Spec & community</h3> 433<div class="cards-grid"> 434<article class="card"> 435<img class="card__thumb" src="/assets/cards/spec.webp" alt="" loading="lazy"> 436<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org/versatiles-spec">Container spec</a></h4> 437<p class="card__hook">Open specification for the <code>.versatiles</code> tile container format.</p> 438 439</article> 440<article class="card"> 441<img class="card__thumb" src="/assets/cards/github.webp" alt="" loading="lazy"> 442<h4 class="card__title"><a class="card__link" href="https://github.com/versatiles-org">GitHub org</a></h4> 443<p class="card__hook">All repos, issues, discussions.</p> 444 445</article> 446<article class="card"> 447<img class="card__thumb" src="/assets/cards/mastodon.webp" alt="" loading="lazy"> 448<h4 class="card__title"><a class="card__link" href="https://mastodon.social/@VersaTiles">Mastodon</a></h4> 449<p class="card__hook">Project updates and ecosystem news.</p> 450 451</article> 452<article class="card"> 453<img class="card__thumb" src="/assets/cards/bluesky.webp" alt="" loading="lazy"> 454<h4 class="card__title"><a class="card__link" href="https://bsky.app/profile/versatiles.bsky.social">Bluesky</a></h4> 455<p class="card__hook">Project updates on Bluesky.</p> 456 457</article> 458</div> 459</section> 460 461<h2>Highlights</h2> 462 463<ul> 464 <li><strong>2026-09-01</strong> - Michael published an <a href="https://versatiles.org/offener-brief-an-die-ard/">open 465 letter to the ARD</a>
465 (in German) on who takes responsibility for open map infrastructure.</li> 466 <li><strong>2026-07-22</strong> - We're forming a <a href="https://versatiles.org/consortium/">VersaTiles 467 consortium</a> - looking for ten organizations to build Europe's first user-funded consortium for open map 468 infrastructure.</li> 469 <li><strong>2026-05-07</strong> - We published our <a href="https://versatiles.org/versatiles-map-animation/">map 470 animation tool</a> for composing camera animations on a VersaTiles map, right in the browser.</li> 471 <li><strong>2026-04-05</strong> - We released <a href="https://tiles.versatiles.org/#map=13.86/46.67217/9.54747/-62.6/60&style=satellite&config=eyJ0ZXJyYWluIjp0cnVlfQ">global 472 elevation data</a>, enabling hillshading and 3D terrain visualization in VersaTiles maps.</li> 473 <li><strong>2026-01-02</strong> - <a href="https://github.com/versatiles-org/versatiles-rs/">versatiles-rs</a> got 474 <a href="https://www.npmjs.com/package/@versatiles/versatiles-rs">Node.js bindings</a>.</li> 475 <li><strong>2025-10-08</strong> - We published <strong>global imagery data</strong>, combining free 476 satellite and aerial orthophotos: <a href="https://tiles.versatiles.org/#map=4.17/51.7/11.44&style=satellite">tiles.versatiles.org</a></li> 477 <li><strong>2025-08-17</strong> - Michael presented <em><a href="https://media.ccc.de/v/froscon2025-3303-versatiles_-_finally_maps_for_everyone">VersaTiles - finally 478 maps for everyone</a></em> at FrOSCon 2025.</li> 479 <li><strong>2025-03-04</strong> - The documentation moved to its own site: <a href="https://docs.versatiles.org">docs.versatiles.org</a></li> 480 <li><strong>2025-02-01</strong> - We released our free <a href="https://versatiles.org/node-versatiles-svelte/map-editor">map editor</a>.</li> 481 <li><strong>2024-09-25</strong> - German magazine <a href="https://www.heise.de/news/VersaTiles-Open-Source-Projekt-als-Alternative-zu-kommerziellen-Kartendiensten-9952858.html">Heise</a> 482 featured VersaTiles as an open alternative to commercial map providers.</li> 483 <li><strong>2024-07-30</strong> - Our <a href="https://versatiles.org/tools/setup_server">setup-server tool</a> went 484 online.</li> 485 <li><strong>2023-07-16</strong> - <a href="https://versatiles.org">versatiles.org</a> officially launched.</li> 486</ul> 487 488<h2>Roadmap</h2> 489 490<div id="roadmap"> 491 <div class="roadmap-category roadmap-done"> 492 <h3><span class="status-badge">Done</span></h3> 493 <ul class="roadmap-items"> 494 <li class="roadmap-item"><a href="https://docs.versatiles.org">Publish documentation at docs.versatiles.org</a> 495 </li> 496 <li class="roadmap-item"><a href="https://versatiles.org/node-versatiles-svelte/map-editor">Publish map 497 editor</a></li> 498 <li class="roadmap-item"><a href="https://github.com/versatiles-org/versatiles-docker/tree/main/versatiles-nginx">Publish Docker 499 container with nginx and TLS</a></li> 500 <li class="roadmap-item"><a href="https://www.npmjs.com/package/@versatiles/versatiles-rs">Add Node.js bindings 501 to the VersaTiles Rust CLI</a></li> 502 <li class="roadmap-item"><a href="https://tiles.versatiles.org/#map=4.19/49.22/10.14&style=satellite">Publish 503 satellite and aerial imagery</a></li> 504 <li class="roadmap-item"><a href="https://github.com/versatiles-org/maplibre-versatiles-styler">Publish style 505 editor plugin for MapLibre GL JS</a></li> 506 <li class="roadmap-item"><a href="https://versatiles.org/tools/setup_server">Publish interactive server setup 507 tool</a></li> 508 <li class="roadmap-item"><a href="https://github.com/versatiles-org/versatiles-svg-renderer">Add SVG export for 509 print-quality maps</a></li> 510 <li class="roadmap-item">Publish free global elevation and terrain data â <em>enable hillshading and 3D terrain 511 visualization</em></li> 512 <li class="roadmap-item">Simplify conversion from GeoJSON to vector tiles â <em>easily add your own data layers 513 to VersaTiles maps</em></li> 514 <li class="roadmap-item">Migrate tile generation to Planetiler â <em>faster and better tile generation from OSM 515 data</em></li> 516 <li class="roadmap-item">Integrate global land cover data â <em>add vegetation, urban areas, and other land use 517 information</em></li> 518 </ul> 519 </div> 520 <div class="roadmap-category roadmap-planned"> 521 <h3><span class="status-badge">Planned</span></h3> 522 <ul class="roadmap-items"> 523 <li class="roadmap-item">Find partners and sponsors â <em>ensure long-term sustainability of the project</em> 524 </li> 525 <li class="roadmap-item">Release VersaTiles Studio, an all-in-one app for map creation â <em>create and export 526 custom maps without code</em></li> 527 </ul> 528 </div> 529 <div class="roadmap-category roadmap-exploring"> 530 <h3><span class="status-badge">Exploring</span> funding needed</h3> 531 <ul class="roadmap-items"> 532 <li class="roadmap-item">Update and extend satellite imagery â <em>
532improve coverage and resolution 533 worldwide</em></li> 534 <li class="roadmap-item">Build a new style engine</li> 535 <li class="roadmap-item">Provide new vector tiles for hillshading and contour lines</li> 536 </ul> 537 </div> 538</div> 539 540<h2>Funded by</h2> 541 542<p style="text-align:center; margin:3rem 0"> 543 <a href="https://nlnet.nl/project/VersaTiles/"><img src="/assets/logo/nlnet-white.svg" alt="NLnet Foundation logo" width="139" height="52" loading="lazy" style="background-color: transparent;margin-right:30px"></a> 544 <a href="https://nlnet.nl/project/VersaTiles/"><img src="/assets/logo/ngi0core-white.svg" alt="NGI Zero Core logo" width="166" height="52" loading="lazy" style="background-color: transparent;"></a> 545 <br> 546 <small>Funded by European Commission's Next Generation Internet programme<br>through the NGI0 Commons Fund by 547 NLnet.</small> 548</p> 549 550<p style="text-align:center; margin:3rem 0"> 551 <a href="https://www.miz-babelsberg.de/foerderung/foerderprojekte-alumni/details/versatiles-editorial-tools.html"><img src="/assets/logo/miz.png" alt="MIZ Babelsberg â media innovation centre logo" width="294" height="36" loading="lazy" style="background-color: transparent;"></a> 552 <br> 553 <small>MIZ-Babelsberg has funded the development of the "VersaTiles Editorial Tools"</small> 554</p> 555</main> 556 <footer role="contentinfo" aria-label="Site information"> 557 <div id="github-link"><a target="_blank" href="https://github.com/versatiles-org/versatiles-org.github.io/tree/main/docs/index.html" rel="noopener">Improve this page on GitHub</a></div></footer> 558 559 560</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.