MapsApp
MapsApp is an offline-capable geomap, meant for storing location bookmarks.
It is a PWA built on MapLibre GL and PMTiles, and serves as a proof-of-concept for the data flow behind something like Organic Maps. A world basemap is fetched on first load, users can download regional tiles on demand with additional detail, and everything renders offline after that. Bookmarks, collections, and search history are stored locally.


Technologies#
App
- maplibre-gl — vector tile rendering engine
- pmtiles — single-file tile archive format; enables serving maps from static files with no tile server
- pmtiles-offline — utility for serving pmtiles from local data
- nominatim - api for geocoding
- civility — PWA build system, service worker framework, router, and state management
- lit — reactive web components for route views
- deno — runtime and toolchain
Tile creation — see data/README.md for the full pipeline.
Development#
Running the app requires Deno and Civility:
curl -fsSL https://deno.land/install.sh | sh
deno install -gA jsr:@civility/cli --name civ
Before running the app, you need tiles, built via the CLI:
deno task data list
# First, download or extract osm files to /data/osm
deno task data download:osm europe/spain
deno task data extract europe/spain --from planet
# Then build pmtiles
deno task data build europe/spain
The you can then serve or build the app with Civility CLI:
civ start # Start a server with hot reload
civ build # Builds static files to serve from /www
Lint and type-check:
deno task test