How to make a #FOSS project successful?
(Or more truthfully, some factors of @godotengine's success story, and what are key takeaways to reproduce it?)
A thread ⬇️
Godot was released as a rough, niche engine in 2014, and grew exponentially with ever more users, contributors, and now paid devs, to go rival proprietary alternatives.
To avoid being bottlenecks for other team members, they built tools to let them all do the integration themselves.
Having to wait for an engine programmer to test each iteration is a big bottleneck. So Godot was created to enable this iteration.
It was built as-needed for these games, implementing the new tools that they need, and evolving based on users' feedback.
godotengine.org/article/first-…
Of course, like most in-house engines, Godot was pretty rough. When the engine is for one team, you don't invest so much on UX.
The first public release, Godot 1.0, was published in Dec 2014: godotengine.org/article/godot-…
Godot has changed *a ton* since then, yet you can still see many similarities in the overall design of the interface (and of the API, if you were to use it).
2014: 730,000 lines of code (and a lot of it was unused and ended up removed little by little as we cleaned the codebase).
2020: 1,900,000 lines of code (all of it used).
So they open their source code (great!), but often with custom, needlessly restrictive licenses.
But if you want to benefit from the momentum of the #FOSS community, you have to go all in.
That's the risk with projects having a Contributor License Agreement (CLA) which often enables this.
I don't want to work on others' product for free, I want to work on the #commons.
en.wikipedia.org/wiki/Commons
It means that Godot is owned by all the contributors who worked on it over the years. We each own a part of Godot's copyright which we contributed to it.
What is available now will always be available. We could decide to change the license for future changes, but anyone can fork the current code and keep developing it.
You can make a fork, but if the bulk of the development team focuses on the proprietary version, you'll lose a lot of momentum.
Their mission statement is that everything we do must be #FOSS and in the benefit of the project.
We simply *can't* fail you.
godotengine.org/article/godot-…
It's yours to use, modify, fork, redistribute, even sell if you want. Today, in a year or in three decades.
Would you buy a proprietary fork of Blender maintained by a lone developer, that would become outdated in less than 6 months?
Your project governance doesn't have to be a democracy, but it should be transparent and you should communicate your vision and decisions to the community.
Be likeable.
Make your project likeable.
Ensure that you have a likeable community.
And of course, be genuine about it. It's not being nice to profit from it, but actually working towards the best interest of your users.
There's no better feeling than to work for the benefit of your community, with no ulterior motive than to provide the best technology possible for the common good.
And we're having a blast 🔥
Have a nice week-end!