Add first post in path to Funkwhale 2.0
Compare changes
content/funkwhale-2-new-api.md
0 → 100644
+ 76
− 0
If you've been following this project for a while, you've probably heard the term "Funkwhale 2.0" a couple of times. It's something we've talked about many times, and something which acts as the ultimate near(ish)-term development goal for the project. However, despite talking about it, you've probably noticed that it's not here yet.
But what about **major** versions? Well, Funkwhale hasn't shipped one of those in a long time. The last major version release was Funkwhale 1.0 back in 2020. We decided to create version 1.0 when we were happy that the Funkwhale API was **stable** and would not be receiving any breaking changes. This is great for downstream developers as it means they can safely develop tools for and integrations with Funkwhale without worrying that we're going to change everything overnight.
The Funkwhale API has grown organically since the project first started eight years ago. Every time we needed a new feature or an improvement to an existing one, it was added to the API and shipped out. Once we were happy with how everything worked, we considered the API "stable" and created the first major version of Funkwhale: 1.0.
A lot has changed in those eight years and we've continued to add and add to the API to try and keep up. This has worked fine for the most part, but we've been dreaming up new functionality over the last couple of years and have come to the realization that we need the freedom to create something new and iterate on those ideas.
Creating a new API layer gives us the opportunity to step back and look at where Funkwhale is now, where we want it to be, and to plan a new API structure in a maintainable way. It also allows us to work on new things at our own pace, recreating existing functionality in a more efficient way, adding new features, and removing anything that we don't need any more.
The new API layer won't arrive all at once. We'll keep working on it in the background and update the web app to use new endpoints when we think they're ready. In fact, there's a good chance your server already supports Funkwhale API v2! We recently shipped our first endpoint, which is an updated and more efficient version of the Nodeinfo endpoint.
Every part of the Funkwhale app is powered by an API. This means that every action you take in the app from searching for content to favoriting tracks is done using the API. At the moment it's quite difficult for us to add new features, expand current features, and improve the platform's performance due to the structure of the v1 API. Creating a new API structure with a comprehensive specification, standard structure, and performance code will enable us to keep adding and improving Funkwhale's features.