One year ago, we started building an open source alternative to Google and Apple Maps. What does it take to do that ? How far have we gone ? What's next ?
⏳️ This article will be updated often
The beauty of Google Maps, the reason we almost all use it, is that it answers most of our usages of maps.
Is this restaurant open ? Google maps. Does the inside look cool enough ? Google Maps. Find the number to book a table ? How to go there ? Is it on my buses ? How long would I wait for the bus later ? Is the bus not too much crowded ?
Google Maps is not your classic mobile app, but more like an OS, an operating system. A geographical operating system encompassing most of our needs when we need to go somewhere at some point.
Like any OS, it's a complex infrastructure serving a simple user interface. Then Apple came ten years ago, failed, failed again, and finally succeeded in providing an even simpler version of this map operating system they crually needed to fill this important corner of iOS that Google took out of their control. Some other countries have local alternatives (France has Mappy.com, Czechia has... Mapy.com) but none is open source.
All the open-source alternatives are partial alternatives : they all rely on the incredible shared global map database called OpenStreetMap, and try to solve one use case with a new interface. The most famous one, Organic Maps, is limited to mobile (and hence only run on Apple and Google OSes), forces one to plan map downloads, has no bus routes, has very few place images, etc.
One year ago, we decided to see how far we could go in building an open source alternative to these all-encompassing map applications, on the Web.
...and on the Web only, mobile development being way too expensive.
What do we have today ? The following "state of Cartes.app" is inspired by Unbundling Google Maps.
We're using MapLibre to instantiate a canvas where the map will be drawn using your device's GPU, making it faster than traditional Web maps.
MapLibre is a fork of MapBox, which itself was an open source alternative to Google Maps's hosting service that gained traction when Google raised its prices.
MapLibre is just a client renderer that talks to a server to know what data to draw. We started using the Swiss and French-speaking MapTiler and its great panoply of basemaps.
Once you have map data to show, you need to decide how you'll show them : should buildings be gray or brown ? Should roads be yellow or gray ? This is defined in MapLibre JSON stylesheets, and also provided by MapTiler. We first customized their base style for with our own design choices.
But we soon hit higher than expected spending : to serve our first few thousand users, we had a 150 €/month MapTiler invoice.
So we built our own : on top of limiting costs to a fixed 50 €/month of a French Scaleway server using Protomaps's ingenious technology, it let us customise not only the style but the data we wanted to show to our users, departing from MapTiler's tile standard called OpenMapTiles.
OpenStreetMap is rich, sometimes incredibly rich. In most cases, especially in cities, you don't want to show all of OSM's data to your users to avoid drowning key information in details. If the style serves as the ultimate filter, the whole point of tiles design is to carefully select some features (places, trees, shops, trash bins...) for some level of zooms only, in order to save bandwidth space.
Open map tile standards (OpenMapTiles, Shortbread, Protomaps) are great for projects that want to embed maps, but fail short for projects that are rethinking maps themselves.
Conclusion : we now have a main custom map style (+ tiles), but also provide interesting third-party specialized styles.
See this issue to understand more thorougly the tiles challenge.
Note : you can freely embed Cartes's basemaps, see some integration demos
We've built a basic interface that adapts to mobile or desktop. Working on the modal sheet (the bottom content block that slides up and down with your finger) was hard (we cloned and corrected an existing lib), as nobody has yet built a Web mobile style sheet : all the $ went to Android and Apple development.
Place pages are the basics of a working digital map. Openstreetmap.org's place icons are not clickable because the map is not vector but raster. We had to encode the OSM place id + place type (node/way/relation) inside or own tiles : most tiles do not let us make the link to the OSM API to retrieve the full set of data of a place, and hence display a place page.
The place page needs lots of other sources of data to be interesting enough for the user. We need Wikipedia, its pictures, Wikimedia common's pictures, Wikidata facts, train station live train times, cinema snippets, etc. The list goes on, it's just a matter of implementing the right stuff. We're looking for the most open source of data for each domain.
One uses Google Maps in one language and mostly in one country. One does not realize how difficult it is to expand a map application to any country on earth. Google Maps is often seen as a monolithic map database maintained by a unique company, but it's not : it started as an series of aquisitions of startups, and its data is now bought to dozens of local entreprises that map the world for Google.
We do have advantages that Google does not : OpenStreetMap could have been called OpenWorldMap. Lots of places are already translated for tourists. Also, note that the surface of the interface that contains text that should be translated is reduced, since the map remains the main interest.
However, internationalising an app has consequences out of the product itself : the community of developers working on the project consists of real people, some more fluent than others in English, French, German, Dutch, etc.
Cartes is built in France, in French. We wanted to check the interest before thinking global. We wanted to speak the language of the people we're passing by everyday, let them open issues in their native language, the one in which they're doing the least effort and being the most expressive. Hundreds of messages have been written on the French OSM forum, a thriving community of enthusiast cartographers that were cruelly missing a modern Web map interface.
We'll more and more think European, now that the US let us down by electing a fascist president. We'll start to internationalize the application.
We'll keep French as a main language : remember that no country in the European union natively speak english anymore. English remains the best language for international discussions though.
We expect contributors to be OK to often stumble upon French comments, as we now expect French people to handle english comments too : remember to use the awesome translation tools that are popping every month. We hope Github will one day aknowledge the existence of the rest of the world and add a "translate" button under issue comments...
Google's search strenght were a key success of Google Maps. You don't need to go through a directory of place types to look for "greek restaurants" in Paris, nor select the search area.
We tried to reproduce this in Cartes with the technologies available : Photon by Komoot is our search engine. On top of it, we've built a directory of place types that can be queries directly with search terms.
Our directory brings Overpass's capabilites to the general public with human edited mappings. Dozens of user contributions were already treated to make the directory better.
In february 2025, our directory's icons were used to replace the old, ugly map icons for modern, background colored round place icons.
We know OSM's places often lack informations that Google has : opening times is the best exemple. We hope exposing OSM's data to the general public and letting users and show owners quickly edit them could give OSM a lead to catch Google.
Remember that Apple also lacks far behind Google for its incomplete place directory. That hasn't stopped Apple from winning back millions of users who had the choice of using Google instead.
This fragmentation between Google, Apple, Microsoft and a handful of local actors is OSM's strength now : data contributed to OSM is free. Businesses cannot afford to only be on Google anymore.
One big challenge still to be solved for OSM applications is place photos.
We've already integrated Wikipedia, Wikimedia commons photos to our map, both as a map photo search and as place photos. We'd like to go further and enable users to upload shop photos.
Hosting our instance of Panoramax for the inside of places is a possible solution.
We're using the French open source and OSM backed initiative Panoramax.
Nothing more to say here : Panoramax is an awesome, funded project, that we aim to make more visible through our general public map application. Contrary to Google, Apple, Mappy, and the others' initiatives, Panoramax is a collaborative database, much like OpenStreetMap.
Panoramax's infrastructure is in place, lots of places are missing 360 images but whole French cities already contributed great datasets. We need a collective effort to have good French coverage.
Google Maps, along with Waze, is a standard for car navigation. In France, using GMaps for bike navigation is often mocked, as its cycle map database is well known to be stale, directing you to closed countryside parks and dangerous busy city boulevards.
But Google Maps has invested big on transit, building its own data format, GTFS, gone standard.
Cartes has a deep focus on transit. We ambition to be the first planet friendly generic map application. We're catching up on Google on transit in France, aiming at a coverage of 90 %, and an interface that adds proper multimodal directions. The bike mode is already good enough, using the incredible BRouter software.
See this issue to understand the transit challenge.
Our car mode is lacking behind. We'd like to advise people to use Organic Maps for navigation.
The main OSM contribution interfaces are quite complicated. For instance, the official "id" editor has no opening times widget : you need to "code" the opening time, not click on buttons to define them.
On Cartes, we're planning to let the user change only a handful of OSM data, like OSMapp.org, OrganicMaps and OSMAnd did.
Contributing to OpenStreetMap shapes (roads, natural features) is of course out of scope.
A good map application needs user comments. We're not fond of ratings, but we really like reviews.
Ratings are often corrupted (see this blog post in French) : show owner cheating is generalized ; tourist advice often crushes local advices which globabizes restaurants ; reviews often serve as a means of pressure by tourists.
But comments include interesting informations, e.g. keywords like "crêpes" for a restaurant that could be used for search.
We will not build our infrastructure for this : existing networks of small user messages already exist in the Fediverse used by Mastodon and the AT protocol used by Bluesky.
See the relevant issue for details on why this is possible and interesting.
Google's wide user base lets them build features out of user localisation data. We do have plans for this, including publishing free public interest data, but obviously we first need to get more than 100 000 users per month in France.
We've initiated a discussion about our users' "dream" features. Most of them are not hard to implement as a first version.