Mapbox GL JS is no longer open source
I did not see this coming. There were hints of it in what Mapbox did with the native SDK, but I totally missed that drama.
As a project I’ve used and contributed to (in a minor way) for years, it felt like a gut punch. I took a walk to chew things over, and I have some thoughts.
Mapbox GL JS v2 is pretty awesome
I mean…have you seen this?
I don’t have any 3D needs in my life, but wow. That’s cool.
What interests me more is it’s reportedly faster and includes progressive map rendering to improve perceived performance. The library itself only got fatter by ~40kb gzip’d, which is pretty incredible for all the new stuff. All while not breaking backward compatibility.
Hats off to the GL JS devs. v2 is amazing.
Mapbox isn’t doing anything wrong here
Legally there’s no issue. v1’s BSD license does not preclude this sort of thing. IANAL AFAIK, but it’s totally fine.
Mapbox is a business with a lot of new investors whose mottos probably aren’t along the lines of “making the world a better place”. They need to make money. I have no idea what the company’s financial situation is like, but a few things seem clear:
- They thought map tiles were where the money was at, and that seems to have been a mistake. GL JS v2 charges the same no matter where you get your tiles.
- Watching proprietary companies fork their hard work while giving them nothing, besides being unsustainable, must have been infuriating. (If you have a copy-left freak flag, go ahead and fly it.)
- While there were 100 committers to GL JS the last time I looked, there’s no denying it’s mostly Mapbox keeping the lights on. They don’t believe losing contributions from the developer community will hurt.
As a company, they’re being pretty nice about the whole thing. They aren’t hiding or obscuring v1, and you can NPM install it for as far as the eye can see. The docs are open source, so I’m sure somebody will stand up the last v1 version of those on Github pages in short order. They’re keeping a lot of their underlying libraries open source as well, at least for the time being.
My only gripe is they’re keeping the source code for v2 on Github. The idea of contributing code to a project I can’t use without slapping down a credit card leaves a funky taste in my mouth, and I don’t think I’m alone in that. But the bigger issue is anybody maintaining a v1 fork has to worry every pull request may have some v2 code stuck in there.
Edit: I was remiss in failing to mention this: every person I’ve ever talked to that works or has worked for Mapbox have been great people. Not just great devs or community leaders, but genuinely great people that care about their work. Nothing about v2’s licensing changes my view on that.
I’m probably never using v2
I don’t imagine anybody at Mapbox is going to cry themselves to sleep at night over that. I fixed a few bugs. I made a bunch of tutorials and shared a lot of code using GL JS. I said nice things about the tech. I don’t have any way to translate that to money in Mapbox’s pocket.
I’m an open-source-if-you-can, proprietary-if-you-must kind of cat. It isn’t a cost thing (although the process of getting my organization to write a check fills me with existential dread). It’s a philosophy thing to a certain extent. But mostly I find working with open source software more fun. It sparks joy. Go figure.
There’s nothing must-have about GL JS v2 for me that would make the proprietary + credit card + (mild) telemetry seem like a good idea. While the 3D stuff is cool, it’s not anything I need in my life. Mecklenburg barely has hills. We have one really nice hole though.
I’ll stick with GL JS v1. If there’s something on the horizon that will drag me kicking and screaming to v2, I haven’t seen it yet.
What comes next?
I imagine the community will fork GL JS v1 in short order. Having looked over enough of the source code to fix a couple of bugs over the years, it won’t be easy. GL JS is a non-trivial Javascript library, and just stomping bugs in future browser releases will take knowledge and expertise.
Call me an optimist, but despite that, I’m looking forward to seeing what the community can do with it. And I’ll help if I can.