Funkwhale has been going for a few years now, and what started out initially as a small, personal project managed by one person has grown into quite a large platform which is deployed by multiple individuals across the world. Over the years we've had quite a few contributions from various people, ranging from code submissions to community support, documentation to evangelism. But as the project grows, we would like our community contributions to increase as well.
Managing a software project of this size is difficult, and without a healthy core of contributors adding to it the bus factor can become a major problem. A lot of the software has been written by a single person or a small number of people, which creates a bottleneck that can slow things down quite badly.
I've decided to write this post as somebody who entered the project a little bit later on but has stuck around and really found the experience rewarding. Participating in a sizeable software project such as Funkwhale can seem daunting at first, but I'd like to assure everyone that it is a very welcoming project run by people who love to receive suggestions, contributions, and support from as many people as they can. Given our anti-meritocratic stance, we believe in encouraging people to get involved, helping them achieve what they've set out to achieve, and ultimately grow alongside us.
For any contributions mentioned below, our code of conduct must be adhered to in order to ensure a safe and equal space for all people to express themselves in.
What is Funkwhale really?
Funkwhale is split up into multiple parts:
- The web app - written in Vue.JS
- The API - written in Django and Python
- The documentation - written in reStructuredText using Sphinx
We also have a few additional projects that we support:
- A mopidy plugin
- An Ansible deployment script
- A command line interface - written in Python
All components are freely licensed and hosted on our Gitlab, so feel free to take a look!
It's not just code
When looking at a software project, it's easy to think that knowledge of programming languages and software development are necessary for contributing. But software development relies on contributions from many different people with a multitude of skills. We need designers, translators, advisors, promoters, developers, community supporters, and users to keep our world turning. Any bit of time and expertise that you can lend would be greatly appreciated.
What can you do?
Take a Look at our Issues List
Our issues list contains a number of issues and suggestions that have been raised by users of the software. While the plan is to get around to them all in time, it may be that you have something in particular you'd like to try and fix or implement. We welcome any attempts to address the issues in this list, and are happy to provide guidance and critique to contributions made.
Suggest New Features/Enhancements
If you have an idea for new features, we'd love to hear it. Proposals for improvements and especially merge requests suggesting implementations of these features are a great addition to the project.
As individuals, our vision of things can be quite narrow. We appreciate people challenging the ideas set out in the project and presenting alternatives/improvements based on their experiences as this ultimately helps things evolve in a more holistic way.
Write about Funkwhale
Publicity is the lifeblood of any project. Software doesn't exist in a vacuum, and without users it simply ceases to matter at all. One thing we would love to see more of is people expressing their opinions about the project, talking about how they use it and what they think of it. The more people get excited about using the software, the bigger the content-base grows and the better the experience is for everyone.
Translate Funkwhale into Your Language
We want to make Funkwhale accessible to users across the world, but to do so we need native speakers to translate the project into their language. At the moment we have had translations in 28 different languages contributed. If you would like to add yours to the list, or would just like to help improve what's already there, please see our page on translating Funkwhale.
Support Other Users
If you use Funkwhale either as an administrator/pod owner or a user, you may be able to help out others with issues they're facing. Our forums and chatroom are places where people can raise questions and seek help, and having more people around to answer them is always a bonus.
Go Bug Hunting
"It's buggy"... It's software
All software has bugs, but until we know about them, we can't fix them. Bug reports and suggestions for fixes are a great way to get started with helping out on the project. From spelling mistakes to CSS glitches, all the way up to full-blown errors, bug fixing is one of the most useful contributions we could ask for. If you think you can fix something, give it a go! We're always happy to review and give advice if necessary.
Use the Software
Last, but certainly not least, Funkwhale thrives on people using it. Use it to publish that podcast you've been planning, or that song you've been writing. Share your work with others across the fediverse to enrich the tapestry of content we're weaving together. We want people to listen to you, and we want you to let us help with that.
Share this blog with anyone you think might be interested, and we hope to hear from some of you soon!