A free and open source visual editor for Mapbox GL so everyone can design their own beautiful map.
About this project
Mapbox GL is one of the biggest innovations the GIS world and is the first cross platform framework to display maps on the browser, mobile applications and the desktop. Maps are styled using a JSON style document described in the Mapbox GL style specification which is difficult to edit by hand. The missing piece in the puzzle is a visual style editor that is easy to use, free and open source!
Maputnik is an intuitive style editor with immediate feedback which will target both GIS professionals as well as enthusiasts to create Mapbox GL styles. Maputnik is free and open source, does not require a cloud based deployment and will run on your local machine (just likeTileMill).
The main goal is to create a free alternative to the cloud based Mapbox Studio and allow businesses and individuals to create their maps without tying themselves to services of a single company but still profit from the amazing Mapbox GL ecosystem.
This Kickstarter project will enable me to take time off from work to devote my full attention to this project.
Background & Rationale
The Mapbox ecosystem consists out of many amazing and innovative technologies by some of the smartest people in the GIS community. And for the most part it is open source and under very business friendly licences.
There are however two obstacles if you want to create maps in the Mapbox ecosystem without tying yourself to Mapbox the company.
- It is very difficult to get started to create your own custom map if you don’t have the map data (the vector tiles) available for free as well.
- You cannot effectively style a Mapbox GL map without resorting to the cloud based Mapbox Studio
The first problem has been adressed by our OSM2VectorTiles project where we worked over the last year to create a free OpenStreetMap friendly alternative to Mapbox vector tiles.
The second problem with Mapbox Studio is that it is not open source and you have to upload your data sources to external servers and essentially are locked in the Mapbox ecosystem. By reusing existing proprietary base styles you legally tie your style for use with Mapbox services and it is difficult to use other data source like OSM2VectorTiles, Mapzen or Kartotherian or even your own custom vector tile sources.
In contrast to using a styling language like CartoCSS the JSON format is difficult to edit by hand and much more suitable for editors. So in order to be able to create independent Mapbox GL styles we should rally behind and build our own free and open source style editor for the Mapbox GL style specification (which is adopted in more and more clients like Open Layers 3).
The following features suffice for the core editing experience of styles and are within the means of the basic funding goal of this campaign.
- Create, edit and delete layers
- Add custom vector tile sources
- Choose and filter data for your layers from the vector tiles
- Editing of the various layer types (Fill, Background, Line, Symbol, Circle, Raster)
- Order and organise layers (grouping)
- Ensure map history (CTRL+Z support) so you will never loose your data
- Ensure it works as single HTML bundle page and locally so that it never requires a cloud hosting
The other features should be defined by the actual stakeholders! You the backers and users – which is why we will do in open planning and development as in previous projects on GitHub where everyone can collaborate. For an example of a already existing simple style editor take a look at ArcGIS vector tile style editor.
I haven’t devoted much time to user interface design yet and this is one of the most important issues to get right in order to make the editor both approachable and effective. In order to make it easy to organise layers possible UX solutions might be a layer search or grouping the layers together. Each layer has different properties that can be tweaked and added.
Other UI components consist of a source editor (adding new vector and raster tile sources) and a data picker (to choose which data from vector tiles you want to incorporate into your layers).
We want to learn from the weaknesses and strengths of Mapbox Studio but not imitate it.
Luckily React and MapboxGL make it easy to give to only update the part of the map the value property affects and build an immersive editor.
Team & Community
Maputnik will be completely free of charge and open source with a business friendly license (MIT). We know how to effectively work in OSS and collaborate with others to reach the best solution and the challenges associated with it.
Initially, the lead developer and maintainer will be me, Lukas Martinelli. I’ve spent the last year working in the Mapbox ecosystem and am able to realise this project and provide a solid foundation.
I’ve experience in building several used open source tools and know how to collaborate and design OSS projects together, how important documentation is and I am very effective in realising software projects and finishing them. I’m a software engineer who fell in love with maps and their ecosystem and spent the last year working on making it easy for everyone to get data for their custom map styles.
I don’t want to dictate the direction of Maputnik. This is why the steering group will consist out of the major sponsors (which will be the biggest stakeholders) so we can ensure the users will get real value.
Roadmap and Goals
This Kickstarter campaign not only allows me to validate the demand but most importantly let’s me take time off from work to devote my attention to this project. I contribute to many OSS projects and without fixed days during the week it is very difficult to make progress.
Base Goal: Core editing experience (~$4,000)
With the minimum funding I am able to build up the core editing experience (with the features listed above) of Maputnik and provide a solid base to continue adding features later on.
For the stretch goals the proposed additional features can change depending on the needs expressed by the backers – the actual stakeholders.
Better Git and local filesystem integration (~$6,000)
One of the disadvantages of Mapbox Studio is to work together with source controlled styles. It is rather difficult to work with 4k line JSON files. With extended funding it is possible to develop a system to split a style into multiple local files (groups or individual layers) for easier maintenance.
Zoom Function support (~$8,000)
Mapbox GL supports zoom functions for optimising layers for different zoom levels (required to fine tune roads and label sizes for example). With extended funding it is possible to add first class support into Maputnik to deal with zoom functions (and perhaps property functions as well).
Above and beyond (~$10,000)
There are many more features a style editor profits from. With more funding we can define and implement more features together and guarantee progress over a longer time.
Risks and challenges
Maputnik faces three major challenges, given a successful Kickstarter campaign which we all plan to address and think ahead.
1. Fail to provide a good style editor experience within the given estimates
2. The editor will not be adopted by potential users
3. Copyright issues with Mapbox
To eliminate risk #1 the initial prototype shows how fast we can get good results. By limiting ourselves to the core experience at first we can avoid feature frenzy and guarantee both simplicity and a working product at the end.
Through the real backers of this project we know we can validate this idea of the editor and that people are willing to invest in it. Therefore we get a good headstart for risk #2 and then will continue evangelising at conferences and writing good educational material about it to bootstrap a healthy user base.
To avoid risk #3 and avoid copyright issues we faced as in OSM2VectorTiles we will take extra care of not violating any copyright principles and not affiliating the editor with Mapbox as company.