Two products, two licences,
a single foundation
I don't resell anything. I write and publish the tools I was missing in the field: an open-source mapping library, and the suite of Odoo modules that brings it into the ERP. The second is built on the first — which is why they hold together.
01 · In production
GeoLeaf JS
A field mapping client, built on MapLibre GL JS 6.
It is not a general-purpose GIS library, and it does not try to replace one. It is a mapping application you view and edit on a phone or tablet, with or without a network — and one that is defined by a JSON profile rather than by code.
- Profiles
- One JSON file defines the entire application: layers, styles, taxonomy, panels, filters. Changing the use case means changing the profile, not recompiling.
- Offline
- Edits made without coverage are stored locally, queued, then replayed idempotently — an interrupted synchronisation does not create duplicates. Data and basemaps are declared in advance and downloaded before the round. Mobile coverage often stops where the equipment starts.
- Size budget
- What the page loads at startup is measured and capped. A capability that is left out is not deferred: it is not in the file.
- Formats read
-
GeoJSON·WKT·MVT / PMTiles·OGC API Features·WMTS / WMS·FlatGeobuf·COG·GPX·KML / KMZ·CSV·TopoJSON
02 · In progress
GeoLeaf Suite
The map goes inside the Odoo backend, not next to it.
Fifteen standard Odoo 19 add-ons — no fork of the core, no modification to Odoo. Every geolocated business record becomes viewable and editable on a map, from within the ERP. Maintenance management (CMMS) is the flagship product: equipment, interventions, public reporting, inspection rounds.
- The core
- Geospatial models and a reusable mixin, taxonomy, a registry of publishers that normalises any Odoo record into a geographic object, a REST API, four authentication methods, a call log purged after ninety days.
- The CMMS
- Equipment installation with stock movement and lot number, intervention log, maintenance due dates and life-cycle status, access rights by geographic area, citizen reporting, inspection rounds.
- Modular
- A vertical layer never works its way back into the generic layer: the CMMS names no particular trade. So a maintenance contractor does not install what does not concern them.
- Odoo edition
- Designed for Odoo 19 Enterprise, whose Field Service app it uses. A derived variant runs on Community, without Field Service, and is therefore less complete. A SaaS CMMS, built on Community, is under development.
- PostGIS
- Optional. The core runs without it, and that is the default installation mode. PostGIS is only added for the spatial operations that genuinely require it. It is this constraint that makes the modules installable on hosting I do not control.
State of play, unembellished
The suite is not yet published on the Odoo Apps Store, and has no public pricing. The demo, on the other hand, does exist: it runs on a test instance with a sample asset base and the full intervention cycle. Ask for access — I issue it in your name, with a slot to walk through the demo together.
03 · Architecture
How they fit together
Each layer knows only the one directly beneath it. The connector carries no business logic, only transport and security. The publishers handle neither transport nor security.
-
MIT licence
GeoLeaf JS
Rendering, profiles, the offline cycle. In the browser.
-
OPL-1 licence
Connector
GeoJSON REST API. Transport and security, nothing else.
-
OPL-1 licence
Publishers
Normalise any Odoo record into a geographic object.
-
Standard Odoo
Your business objects
Equipment, interventions, stock, invoices. Right where they already are.
Why two licences
The library is open source and will stay that way: it is of use to everyone, including people I will never meet. The Odoo modules are a paid product, because they encapsulate business know-how and are maintained version after version. Nothing that is open source ever becomes paid.
What this means for you
Your technical contact is the person who wrote the code. No ticket working its way up a chain, no vendor roadmap to wait for. And if you take back control, the mapping layer is under MIT: you keep it.
Questions
What people ask me about the products
Also published by MP-i
CostooBTP, construction cost estimating
Want to see it running?
Tell me what you manage and roughly how many pieces of equipment. I send named access to the demo instance, with a slot to walk through it together.