Export QGIS projects to self-contained static web maps — PMTiles + MapLibre GL JS.
MapSplat is a QGIS plugin that exports your project layers to a self-contained web map you can host on any static target — a web server, cloud storage, or your local machine. No tile server, no backend, no additional stack. Your QGIS styling, labels, and layer order are preserved.
This project targets QGIS 4.x and is written almost entirely by AI.
| Your QGIS project | The exported web map |
|---|---|
![]() |
![]() |
- Install — download the latest
mapsplat.zipfrom Releases and add it in QGIS via Plugins → Manage and Install Plugins → Install from ZIP. For offline basemaps and raster export, also put the pmtiles CLI on your PATH (not needed for basemap Stream mode). - Style your layers in QGIS as you want them online, and zoom to your starting view.
- Open the MapSplat dock and tick the layers to export (Inputs tab).
- (Optional) Enable a basemap and keep the max zoom small to start (Options tab).
- Export, then open the output folder and run
python serve.py— your browser opens the map.
Full walk-through with pictures: User Guide · screenshot tour: Gallery.
| Doc | What's in it |
|---|---|
| User Guide | Step-by-step: prepare → export → view → deploy, with Caddy/nginx config |
| Features | Everything MapSplat does (export, styling, tools, tiles, basemaps) |
| Basemaps | Protomaps, XYZ providers, and the extract cache |
| Hosting & self-hosting scope | What's bundled (PMTiles) vs streamed live, and how to serve it |
| Troubleshooting | Common issues and fixes |
| Limitations | Known gaps and unsupported symbology |
| Screenshots | Annotated tour of the plugin and viewer |
| Changelog | Release history |
| Tutorial script | Storyboard for a demo video |
| Roadmap / backlog | What's planned next |
| Design archive | Historical planning & design notes |
| Requirement | Version | Notes |
|---|---|---|
| QGIS | 4.0+ | This project targets QGIS 4 (Qt6) |
| GDAL | 3.8+ | PMTiles via ogr2ogr; MBTiles driver needed for raster export |
| Python | 3.9+ | Bundled with QGIS |
| pmtiles CLI | any | Basemap bundle mode + raster export (not Stream mode) |
From ZIP (recommended): download mapsplat.zip from
Releases → QGIS Plugins → Manage and Install
Plugins → Install from ZIP → restart QGIS.
From source (development): clone the repo and copy/symlink the plugin folder into your QGIS
profile's python/plugins/ directory, then enable it in the Plugin Manager.
Issues and PRs welcome. Please keep changes small and focused; the plugin follows a security-first, QGIS-4-only baseline. See the roadmap for planned work.
GPL-2.0-or-later — see LICENSE.
Built on Protomaps (PMTiles), MapLibre GL JS, GDAL/OGR, and QGIS. Basemap tiles © OpenStreetMap contributors.

