OpenMapX uses a deliberate two-license split: the product is strong copyleft, and the reusable libraries are permissive so that other projects can adopt them freely.
| What | License | Why |
|---|---|---|
| The product — the deployable app, its integrations, and its services | AGPL-3.0-or-later | Keeps OpenMapX and any hosted derivative open. Anyone who runs a modified version as a network service must offer its source. |
Reusable libraries and the plugin SDK (selected packages/*) |
Apache-2.0 | These have value outside OpenMapX. A permissive license (with an explicit patent grant) lets any project depend on them. |
| Vendored third-party code | Its upstream license | Not ours to relicense. |
The root LICENSE file is the AGPL-3.0 and governs the repository by
default. Packages that carry a different license have their own LICENSE file
and a matching license field in their package.json; that per-package license
takes precedence for that package.
The third-party Docker images OpenMapX orchestrates (Valhalla, OSRM, MOTIS, Nominatim, Pelias, Photon, Elasticsearch, PostGIS, …) run as separate containers communicating over the network. They are not linked into OpenMapX's code and keep their own upstream licenses; they impose no obligation on the license of OpenMapX's own source.
Apache-2.0 is one-directionally compatible with the AGPL: the AGPL application may include the Apache-2.0 libraries, but not the other way around. That is why the SDK and shared libraries — the parts we want others to reuse — are the permissive ones, and the product that ties them together is copyleft.
apps/mobile/ — the native shell around the web UI — is currently
AGPL-3.0-or-later, like the rest of the product.
The intent is for it to become Apache-2.0, so that the shell is as reusable as
the libraries beneath it. That has not happened yet, and the reason is specific:
the shell links @openmapx/i18n, which is AGPL-3.0-or-later. An Apache-2.0
apps/mobile linking it would be a combined work distributable only under the
AGPL, so the label would be wrong rather than merely early.
Relicensing packages/i18n to Apache-2.0 would clear it — the code is ours and
the CLA supports it, and the AGPL product could keep consuming it unchanged. But
that changes the terms third parties receive, so it is a maintainer decision
rather than a refactor. See
the mobile release runbook for the full
audit.
The code licenses above cover the code. They do not grant any right to the OpenMapX name or logo, which are trademarks held by the Project and licensed separately under the Trademark Policy.
In short — and the policy, not this summary, is what governs:
| You may | You may not |
|---|---|
| Run your own instance, modified or not, and say it runs OpenMapX | Use "OpenMapX" (or a confusingly similar name) as, or as part of, the name of your own product, company, service, app, domain, or social-media handle |
| Refer to OpenMapX truthfully and referentially | Brand a modified or forked version as OpenMapX |
| Leave the marks where they already appear in the unmodified software and its documentation | |
| Write, talk, teach, and run meetups about OpenMapX |
This split is deliberate. The AGPL guarantees the freedom to fork; the trademark policy makes sure a fork is presented as its own project rather than as this one. Neither restricts what the software can do.
The default map style (apps/web/public/styles/openmapx-streets.json and its
dark variant openmapx-dark.json, generated by
apps/web/scripts/generate-dark-map-style.mjs) is a recolored derivative of
OSM Bright (openmaptiles/osm-bright-gl-style),
itself derived from Mapbox Open Styles. OSM Bright is dual-licensed:
| Part | License | Obligation |
|---|---|---|
| Style code (layer/expression JSON) | BSD-3-Clause | Retain the copyright notice (shipped on the /licenses page); no endorsement use of the names. |
| Style design ("look and feel") | CC-BY-4.0 | Visibly credit “© OpenMapTiles” (linking to https://openmaptiles.org/) on maps derived from it, alongside “© OpenStreetMap contributors”. |
OpenMapX satisfies the CC-BY design attribution through the map's attribution
control (BaseAttributions / baseMapVectorCredits in apps/web), which shows
“© OpenMapTiles” and “© OpenStreetMap contributors” on every vector base map —
plus “© MapTiler” when MapTiler's hosted tiles are used. The full upstream
notice text is reproduced on the /licenses page.
Contributions are accepted under a Contributor License Agreement
(CLA.md). The CLA lets You keep ownership of Your contributions
while granting the maintainer the right to license the combined work under other
terms — for example, a commercial license alongside the AGPL. This preserves the
Project's ability to sustain itself without changing the open-source promise to
the community. See CONTRIBUTING.md for how signing works.