Vancouver parks walkshed with 200m and 400m buffer zones.

Using the app

Load data

Paste any GeoJSON, CSV, GeoParquet, or PMTiles URL to add a layer to the map. Advanced options for CRS, format, and column overrides.

Upload file

Drag and drop or pick a local file to load it directly onto the map.

Operations

Run spatial operations like buffer, intersect, and union with a form-based builder.

Config editor

Edit, run, and clear YAML configurations with live syntax highlighting. Import configs or generate from session state.

Layers

Toggle visibility, reorder, rename, delete, and style layers. Drill into a style panel for color, opacity, width, labels, and zoom ranges.

Storage

Session persistence via browser storage - datasets survive page refresh. Export and import the database for portable sessions.

Search

Address search powered by Photon geocoding. Find any location using OpenStreetMap data.

Legend

Auto-generated legend derived from layer styles. Shows color swatches, gradient ramps, and category breakdowns.

Outputs

Export datasets as GeoJSON, CSV, Parquet, or PMTiles. Generate PMTiles from DuckDB sources or extract from remote archives. Export viewer-ready ZIP. Download results individually or as a ZIP.

Basemap

Switch between CARTO Dark, Light, Voyager, and satellite basemaps.

Status

Shows loading and processing state; click to open the history log.

How it works

Declarative YAML config

Define datasets, spatial operations, and layer styles in one file. Point at any data URL or PMTiles archive - municipal APIs, data portals, static files.

Client-side spatial engine

DuckDB-WASM runs full spatial SQL in the browser - buffer, intersect, union, difference, contains, distance, centroid - no server required.

MapLibre GL expression support

Write match and interpolate expressions directly in YAML to drive categorical and graduated styling from feature properties.

Static-first, open source

No backend, no accounts, no proprietary tiles. Runs entirely in the browser with free tile providers and publicly licensed data.

Try it yourself

Load the full app and paste in any data URL to get started.

Open the app