MapLibre: How a Fork Became a Thriving Open Source Project

Every time a company pulls a previously open source project back behind a more restrictive licensing, a fork (and a community) is born. Or so it seems, given the stories of OpenTofu, Valkey and MapLibre, the subject of this edition of The New Stack Makers.
In late 2020, Mapbox changed the licensing of its map rendering engine, making a product that had been open source proprietary. The move disappointed people who used the engine and its many cool features who were not otherwise Mapbox customers.
Mapbox’s engine could “display maps on the web that used WebGL for high performance, so you could have complex vector maps that change as you use them, which means that you can change the labeling, you can add overlays, you can change the colors of things very quickly, and they built it as part of their initial project,” Seth Fitzsimmons, a principal engineer at Amazon Web Services, told Alex Williams, TNS founder and publisher, in this episode of Makers.
Capabilities that make Mapbox attractive for customers include BMW, General Motors, Instacart, The New York Times, and The Weather Channel. However, when Mapbox upgraded the engine and added new capabilities, it also moved the latest version of its Mapbox GL JS library to a proprietary license, requiring it to be used with a Mapbox product.
Three users of the open source project, Fitzsimmons said, decided to fork the Javascript version of the engine. They also committed to modernizing the project and continuing to keep it open source.
“Whenever there’s a fork, and this is what MapLibre is, I think there’s a failure,” Tarus Balog, principal technical strategist for open source at AWS. said in this episode of Makers. “Like, you’ve built this community, you built this thing, and for whatever reasons. I mean, if you own the copyright, if you’ve been putting the code together, it’s up to you to … determine how you want to proceed with your business. But forking, to me, is it should always be a last resort.”
The reason it should be a last resort, he elaborated: “It’s very, very hard to maintain momentum and have a successful fork.”
From JavaScript to TypeScript
But so far, MapLibre seems to have beaten the odds. Modernizing it has required support — from corporations like AWS, Meta and Microsoft but also from the community of contributors who stepped in to help build the project.
Very shortly after the fork was forked, a contributor submitted a GitHub issue, suggesting the project switch from building in JavaScript to TypeScript, said Balog
Other contributors, he said, picked up the suggestion: “Well, look, it’s easier to debug. It’s got better tools. It’s very similar to JavaScript.”
“What I love about this is, there was one man who wrote, ‘Yeah, I think they’re similar enough that it couldn’t confuse confused developers. And by the way, here’s a pull request.’ And he actually just started down this path, and it took him nine months, but nine months later, in September of 2021, the MapLibre GL product, even though it’s still called MapLibre GL JS, was a TypeScript product.”
He marveled at the effort involved. “It was 500 plus files changed! You just don’t see that. You just don’t see someone in the community who has no real financial interest … he wasn’t paid to do this.”
In addition to the community support, the MapLibre project has been able to reciprocate by paying some contributors, thanks to financial support from AWS and other companies previously mentioned.
“There are now, I believe, two or three maintainers, plus some other staff there that are employed by the MapLibre project itself,” Fitzsimmons said. “It gives us someone to hand off work that we’ve done, and it also gives us a little bit clearer of an opportunity to provide feedback about the direction we want to go in.
The project also has an advisory board that includes corporate sponsors. But, he added, “everybody is equal” on the project.
Listen to the full episode to learn more about MapLibre.