Organic Maps: Android-only release tags, a split data licence, and funding the project admits is short
🍃 Organic Maps is a free Android & iOS offline maps app for more than 6M travelers, tourists, hikers, and cyclists. It uses crowd-sourced OpenStreetMap data and is developed with love by the community. No ads, no tracking, no data collection, no crapware. Please donate to support the development!
At a glance
- What is it?
- A free offline maps and navigation app for Android and iOS built on OpenStreetMap data, created by the MAPS.ME founders with no ads, tracking or data collection. Every recent release tag is Android-only and date-based, the repository carries two separate licences for code and map data, and GitHub reports none, and the project states plainly that voluntary donations fall significantly short and new features are beyond reach.
- Who is it for?
- Adopt Organic Maps when you want offline navigation and OpenStreetMap detail with no ads, no tracking and no account, and when you will download regions in advance. Do not expect a feature roadmap, because the project states that donations fall significantly short of what it needs and new features are out of reach.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- organicmaps/organicmaps15,967 ★ · +507
| Repository | 2026-09-21 | 2026-11-14 |
|---|---|---|
| organicmaps/organicmaps | 15.5k | 16k |
507 Stars in the last 54 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
Every recent release tag is Android-only and named after its build date
The three most recent releases are 2026.09.29-32-android, 2026.08.27-18-android and 2026.07.23-6-android.
Two things are visible in those names. The first is the platform suffix, and all three say android. The second is the shape of the identifier: a date, then a build number, then the platform. The dates run 2026-07-23, 2026-08-27 and 2026-09-29, roughly every five weeks, and the build numbers climb from 6 to 18 to 32.
So the version is derived from when the build happened rather than from a semantic version scheme. That is a reasonable choice for a mobile app where the meaningful identifier is the build you are handed, and it makes an artefact traceable to a moment.
The absence of iOS tags is the part with a consequence. This is a cross-platform app with an iPhone version on the App Store and a TestFlight beta channel, yet the release feed shows Android builds only. None of the three most recent tags is an iOS build.
If you are tracking a specific version, the tag is the identifier you have, and it identifies an Android artefact. The iOS side is versioned inside Apple's distribution, which is outside what this repository records.
The README says outright that new features are beyond reach
Most projects describe their funding warmly. This one does not.
The sentence is unambiguous: the majority of all expenses have been funded by founders of the project since its inception, the project is far from achieving any sort of financial sustainability, the current level of voluntary donations falls significantly short of covering the efforts needed to sustain the app, and any new developments of features are beyond the scope of possibility due to the absence of the necessary financial resources.
That framing explains the sponsor table above it. The institutional support listed is targeted rather than general. The NLnet Foundation funded a specific project, The Search and Fonts improvement, through the NGI0 Entrust Fund, which comes from the European Commission's Next Generation Internet programme under a named grant agreement. Google Summer of Code backed five student projects across 2022 and 2023, including Android Auto and a Wikipedia dump extractor. FUTO awarded a $1000 micro-grant in February 2023.
The other two entries are infrastructure rather than development. Mythic Beasts, an ISP, provides two virtual servers with 400 TB per month of free bandwidth for hosting and serving map downloads and updates. 44+ Technologies provides a free dedicated server worth around $12,000 a year to serve maps across Vietnam and Southeast Asia.
Read together, the shape is a project that can keep serving maps it has already built, funded by donated infrastructure and occasional grants, and that treats new features as something a grant or a large donation might make possible. For an adopter, that means the sensible question is not when the next version ships but whether the one you would install still does what you need.
Two licences and a REUSE directory are why GitHub reports no licence
GitHub reports the licence of this repository as unrecognised. The root of the repository says otherwise, and the reason is that the licensing is split.
There are three separate licence artefacts. LICENSE is the main one, DATA_LICENSE.txt covers the data, and LICENSES/ sits alongside NOTICE, DATA_LICENSE.txt and LEGAL. There is also a .reuse/ directory at the top level, which is the REUSE specification's metadata directory.
That arrangement is deliberate. REUSE requires each file to carry its own licence information, so a repository using it has a LICENSES directory holding the licence texts and metadata recording which applies to which file. GitHub reports the licence as NOASSERTION.
The split between code and data is the part that matters for this particular project. A maps application ships geographic data, and that data does not necessarily carry the same terms as the C++ that reads it. DATA_LICENSE.txt exists because the map content is licensed separately from the application.
So if you are assessing this for use, you have two files to read rather than one. LICENSE covers the code, DATA_LICENSE.txt covers the data, and the NOASSERTION result from a scanning tool tells you nothing about either. Read both, and if you are redistributing map data rather than only reading it, that is the licence to look at first.
The npm manifest is version 1.0.0 and calls itself Tools and helpers
There is a package.json at the top of a C++ project, and it does not describe the app.
{
"private": true,
"name": "Organic Maps",
"version": "1.0.0",
"description": "Tools and helpers",The version is 1.0.0, which is not the app's version, and the manifest is marked private so it is never published. The description is literally Tools and helpers. Its two scripts are both prettier invocations, one formatting documentation and one formatting GitHub YAML files, and its only dependency is prettier at a caret range.
So the npm manifest exists to run a formatter over Markdown, and nothing else. It is a convenience wrapper so contributors can format docs with one command.
The point worth carrying is that this repository contains several manifests, and none of them is the app's version. There is no version file at the top level alongside the platform trees. The version lives in the build, which is consistent with tags named after build dates rather than versions.
If you are scripting anything against this repository, do not read a version from package.json. Use the release tag, and remember from the previous section that it identifies an Android build.
pyproject.toml exists only to configure black, and says so
The Python configuration file opens with a comment that removes any ambiguity:
# This file doesn't define Python project (no Python version, no dependencies) and is used
# Only for 'black' formatting tool ( https://black.readthedocs.io/en/stable/ )That is a pyproject.toml with no project table, no requires-python and no dependencies, which is why tools like pip will not treat this as a distributable package. It exists to hold formatting configuration.
What it configures is narrower than you might expect. Black runs with a line length of 120 and target versions listed from py311 through py314. Then the include list names exactly one file:
include = 'tools/python/translate.py'So the formatter runs against a single Python script, the translation tool, rather than over the repository. The exclude list then covers three paths, and it is introduced as excluding submodules: 3party/, tools/python/twine/ and tools/kothic/.
Taken with the package.json above, the picture is a project whose Python and JavaScript tooling consists of one formatter config for one script, and one prettier wrapper for documentation. Everything else is C++.
The target-version list is worth a glance. It runs from py311 to py314, which means the formatting is configured to match source syntax up to and including a Python version newer than several currently shipping runtimes. For a single translation script that is generous, and it is the kind of list that gets updated casually rather than deliberately.
Four platform trees and a Qt directory behind one C++ codebase
The top level of the repository contains android/, iphone/, xcode/, qt/ and libs/ side by side, which is the physical shape of a cross-platform app that shares its logic rather than reimplementing it.
The two obvious platform trees are android/ and iphone/. xcode/ is there as well, which in a project with an iOS tree usually means the native build configuration lives apart from the source.
Supporting that reading are the files at the top level rather than inside any platform directory: CMakeLists.txt and CMakePresets.json for the build, and defines.hpp, precompiled_headers.hpp and private.h sitting at the root as shared compilation units. A CMakePresets file means the build configurations are enumerated rather than improvised per developer.
Also present are generator/, dev_sandbox/ for development experiments, tools/ for the scripts, 3party/ for vendored third-party code, data/ for map data resources, packaging/ for release packaging, and docs/ for the governance, contributing and installation documents the README points to.
Two more files confirm the emphasis on correctness tooling rather than manual process. gcovr.cfg is a coverage tool configuration, and .clang-format with .clang-format-ignore and .clangd alongside it is a three-way C++ formatting and language-server setup. There is also a .git-blame-ignore-revs file, which is the convention for marking bulk reformatting commits so that line-by-line history stays readable.
Six distribution channels, and two of them bypass the app stores
The download links at the top of the README name six places to get the app: the Apple App Store, Google Play, the Huawei AppGallery, a GitHub wiki page titled Installing Organic Maps from GitHub using Obtainium, F-Droid, and Accrescent.
The two that matter for a project with this stated position are the ones that avoid the commercial stores entirely. F-Droid is a free software repository with its own build and signing process, and Accrescent is a platform for distributing Android software outside Google Play. The project has a wiki page titled Installing Organic Maps from GitHub using Obtainium.
That is a coherent response to the privacy position the app takes. If the argument against the big map applications is data collection, then routing installation through the commercial store is a weak position to hold, and these three channels let a user install without Play at all.
For iOS the picture is narrower. The App Store is the distribution channel, with a TestFlight beta programme alongside it. There is no F-Droid equivalent for iOS and no Obtainium route, so the platform with the least store control is the one where the store is unavoidable. The Android beta channel is Firebase App Distribution, which is a reasonable middle ground: it is a testing distribution service rather than a public store.
The governance document and the contributing and installation guides are in docs/, and helping does not require coding skills.
What you can actually check in the feature list is the data coverage
Set aside the privacy claims, which are verifiable separately, and the feature list is mostly a statement about what the map data contains.
The offline coverage claim is specific: detailed offline maps with places that don't exist on other maps, attributed to OpenStreetMap rather than to the app. That is the meaningful difference and it is a data difference. Contour lines, elevation profiles, peaks and slopes are terrain data that many consumer maps omit. Subway maps and public transport routes are the other place where open data differs. Wikipedia articles for points of interest come along because the underlying data supports it.
Import and export is stated in four formats: KML, KMZ, GPX and GeoJSON. That is a track-oriented list, which fits the hiking and cycling audience named in the description alongside driving and biking.
Navigation is described as turn-by-turn for walking, cycling and car with voice guidance. Search is described as fast and offline. Dark mode is listed. And there is a claim worth reading carefully rather than skipping: countries and regions don't take a lot of space. That is the download size argument, and it is the one that matters most in practice, because an offline maps app competes on whether the region you need fits on the device and over a connection you do not want to use.
Everything above depends on the map pipeline and the hosting behind it. The 400 TB per month of bandwidth from Mythic Beasts and the dedicated server for Vietnam and Southeast Asia are not incidental; they are what makes the download promise deliverable. Understanding that the load-bearing part is the data hosting rather than the app is the practical insight here.
Editorial conclusion
Adopt Organic Maps when you want offline navigation and OpenStreetMap detail with no ads, no tracking and no account, and when you will download regions in advance. Do not expect a feature roadmap, because the project states that donations fall significantly short of what it needs and new features are out of reach. Read DATA_LICENSE.txt separately from LICENSE, since the map data and the code are licensed differently and GitHub reports no licence at all. If you need to pin a build, note that release tags are Android-only and date-based, so iOS comes through TestFlight and the app stores instead.
Frequently asked questions
What is Organic Maps?
A privacy-first offline maps and GPS app for hiking, cycling, biking and driving, built on OpenStreetMap data and created and maintained by the MAPS.ME founders. It is free and open source, with no ads, no tracking, no data collection, and it is distributed as an Android and iOS app.
Is the Organic Maps app safe?
The Android application is verified by the Exodus Privacy Project and the iOS application is verified by TrackerControl for iOS, both linked from the README. The app states no ads, no tracking, no data collection, no phoning home and no push notifications, and it describes itself as free from trackers.
Is Organic Maps free?
Yes, absolutely free, with no ads. Development is funded by donations plus institutional sponsors, and the README states plainly that the majority of expenses have been funded by the founders since inception and that current donations fall significantly short of sustaining the app.
How do I use Organic Maps offline?
Download the countries and regions you need in advance, since the app stores detailed offline maps on the device. Offline search is included, and regions are described as not taking a lot of space. Data comes from OpenStreetMap, so the offline set includes contour lines, elevation profiles, peaks, subway maps and public transport routes.
How do I use Organic Maps for hiking?
Hiking trails and walking paths are among the listed map content, along with contour lines, elevation profiles, peaks and slopes, and turn-by-turn walking navigation with voice guidance. Bookmarks and tracks can be imported and exported in KML, KMZ, GPX and GeoJSON formats.
How do I install Organic Maps?
From the Apple App Store, Google Play or the Huawei AppGallery, and outside the commercial stores through F-Droid, Accrescent, or an Obtainium page on the project wiki for installing from GitHub. To build it yourself, the README points at docs/INSTALL.md, and governance and contributing guides are in docs/ as well.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/organicmaps-organicmaps)Star history chart for your README
[](https://hysenlabs.com/projects/organicmaps-organicmaps)Was this useful?