Browser-based editor for creating and maintaining building/floor plans on top of a live map.
The app is local-first (IndexedDB), supports import/export workflows, and is built with React + Vite + TypeScript.
The map editor is currently still under going a lot of development. While that is happening, expect compatibility breaking changes to import/export formats. A big topic currently is correctness and aligning the format with the specification and what other editors in this space do.
- Interactive map canvas powered by MapLibre + MapTiler.
- Building/floor hierarchy with selection-aware editing panels.
- Draw/edit/delete support for point, line, and polygon floor features.
- Floorplan image overlays with corner-based alignment.
- Auto-save to IndexedDB with project snapshot sanitization and migration-safe loading.
- GeoJSON and IMDF-oriented import/export + validation utilities.
- Address search/recenter flow via OpenCage geocoding.
- Ensure Node.js
>=22is installed. - Install dependencies:
npm install- Create a local env file and add required API keys:
cp .env.example .envRequired variables:
VITE_MAPTILER_API_KEY(map rendering)VITE_OPENCAGE_API_KEY(location search)
- Start the dev server:
npm run devOpen http://localhost:5173.
npm run testfor unit tests.npm run test:browserfor browser smoke tests.npm run test:e2efor Playwright end-to-end tests.npm run typecheckfor TypeScript checks.npm run lintfor Biome lint/format checks.npm run buildfor production build output indist/.npm run validate-imdf -- <dataset-dir>to validate IMDF datasets.
- Third-party attributions and notices:
docs/THIRD_PARTY_NOTICES.md.