Ingest
Bring your GIS data
GeoJSON, Shapefile, GeoPackage, KML, CSV. Connected PostGIS sources without rehosting. Column metadata + bbox auto-detected.
Self-hosted maps SaaS · v0.1
Ingest your GIS data, compose layer trees with MapLibre, and publish tiles to your own domain. Multi-tenant out of the box, QGIS-native, and priced for teams running more than one company.
Free tier · no card required · compare plans
What you can build
Everything you expect from a hosted map platform — plus the source, plus the schemas, plus the keys.
Ingest
GeoJSON, Shapefile, GeoPackage, KML, CSV. Connected PostGIS sources without rehosting. Column metadata + bbox auto-detected.
Compose
Stack vector and raster overlays into nested groups. Visibility cascades to children. Per-layer opacity. Export the tree to QGIS.
Publish
One-click tippecanoe builds. pmtiles in S3 or DigitalOcean Spaces, behind an auth proxy with per-key rate limits and origin allow-lists.
Embed
iframe snippet, JS bundle, signed embed tokens, QGIS XYZ + WMTS endpoints. SDKs for browser + Python + a CLI.
Tenant-aware
One PostGIS schema per workspace. Per-org API keys, analytics, and audit log. Switch workspaces from a header dropdown.
Self-hostable
Apache-licensed deps the whole way down. Docker Compose for local. Kubernetes manifests for DigitalOcean. No proprietary lock-in.
Pricing
The Free tier covers a solo cartographer's first map. Paid plans unlock private maps, more tile capacity, and team seats. Enterprise plans add an SLA and dedicated capacity.
Compare plansSolo. 3 maps, 100 MB.
Small teams. 50 maps, 5 GB, 5 seats.
Production. Unlimited maps, 100 GB, 25 seats.
Create a workspace in under a minute. No credit card required for the Free tier — and we honor promo codes for teams who've been comped.