Licensing
OnlyMap JS is proprietary software. It is free for non-commercial use with attribution — personal projects, education, academic research, and evaluation. Commercial use needs a commercial license. Commercial use includes for-profit products, internal tools, revenue-generating services, paid consulting, and government work. The full terms are in the package’sLICENSE.md.
The Free Plan
Without a license key, a map runs on the free plan:- Up to 5 layers per map, and 25,000 rows per layer (20 MB per data fetch).
- A small badge shows on the map: “OnlyMap by NIKA. Free for non-commercial use.” You must keep the badge visible. This is a condition of the free non-commercial grant.
- A limit never breaks the map. A layer past the layer cap does not render. A layer past the row cap renders its first 25,000 rows and shows a dismissible on-map notice that the data is partial, so a capped map is still useful without pretending to be complete. Either way, the validation stream names the exact limit and how to lift it.
- The limits apply only on hosted http(s) pages (since 0.6.0). In a development context — localhost, a
file://page, or any non-web scheme such as a desktop app shell — every cap lifts so you can build without friction. The attribution badge stays in all contexts. - The exemption is a technical convenience, not a license grant: commercial deployment — hosted or shipped inside a packaged app — requires a commercial key regardless of whether the technical limits were active (LICENSE.md §3).
License Keys
A license key lifts all limits and removes the badge:Third-Party Software
The published bundle includes open-source components (deck.gl, MapLibre GL, Apache Arrow, the GeoTIFF/raster stack, and others). Each component keeps its own permissive license (MIT, ISC, BSD, Apache-2.0). The full list, with the license texts, ships in the package asTHIRD-PARTY-LICENSES.md. The library generates this list from the dependency tree at each release. OnlyMap’s own terms do not change those licenses.
Telemetry
The library reports one deployment-scoped usage snapshot per map, per page load. The snapshot holds the layer types and counts, the widget types, the renderer, the library version, and the page hostname. The library also reports errors from its own code — never from your page scripts. Both go to a NIKA-operated first-party endpoint. The full payload schema is in the package’sdocs/telemetry.md.
The library never collects page paths or URLs, your data or its contents, coordinates, cookies, or any persistent visitor identifier. A test suite stays silent, because a headless map never reports.
Opting Out
map-id
map-id is an optional attribute. It identifies the map artifact, not the visitor. Usage can then tell one popular dashboard from many different maps: