Contributing to Free Open Source Projects
Working at a tech company, you may find yourself using free and open source software (FOSS). The good thing about FOSS projects is that they are provided at no cost, are often reliable, and save you a great deal of time. But because of their free nature, FOSS projects need support and there are multiple ways to provide this. Here are three possibilities for a company to contribute to FOSS projects.
Sponsoring a project
There are multiple ways to sponsor a FOSS project, whether you directly donate to the maintainers, or help promote the software and organize events. In fact, most FOSS contributors are working in their free time to develop the software. To speed things up, having full-time employees or a company behind the project is necessary.
Creating and maintaining a FOSS project
Participating in existing FOSS projects
Most of the FOSS projects are provided through git repositories so it's quite easy to fork a project and fix an issue, or just add a new feature. For instance, Dashlane has provided fixes and features to dozens of FOSS projects in the past years.
Participating in the Nextcloud Community Event
What is Nextcloud?
Nextcloud is a free and open-source hosting files service that includes many tools like a calendar, videoconferencing feature, and online email client. The goal of Nextcloud is to be easily install-able and operable on your own private server, so that you have full control of your data. It is a complete and alternative solution to the Big Tech solutions like Google Drive. At Dashlane, we use Nextcloud to store documents we want to share with other coworkers. With the use of ONLYOFFICE, a cloud office provider, it's easy to edit any document online whatever OS you are running.
The Nextcloud Contributor Week
The community events organized by Nextcloud aim to gather contributors under the same roof for a week. The goal is to meet in person and discuss, hack, and learn from one another. Dashlane gave me the opportunity to join this event in Berlin.
On Friday, Frank Karlitschek, the CEO of Nextcloud, presented the new version of the software called Nextcloud Hub. This release brings together all the tools you need in your digital life in one place that can be self-hosted. The recent collaboration with ONLYOFFICE lets you install, in 2 clicks, an amazing editor for your Word, Excel, and Powerpoint documents.
I, personally, contributed to the Photos app, where you can view all your stored photos in a beautiful timeline and share your albums with your family and friends.
While contributing to FOSS software you can get the following benefits:
Discovering new tech
Companies don't change their technical stack often, so you may discover new languages or technologies you never used before.
Meeting passionate people
Community events are full of people that share the same passion for bringing something useful to everyone for free.
You can create benefits for you and your company:
Adopting new tech and coding styles
You may find a cool library you could use in your company's projects. Also coding styles vary a lot between projects and you might find some good practices you can implement. My advice is to prepare small trainings for your team and share with them your findings and decide if it fits your needs.
When you contribute to a FOSS project you can also have an impact on the direction taken and the next features developed.
Being proud of using a tool you contributed to
Whether you contributed as an individual or for your company, you can always be proud of helping others for free. FOSS projects are often used by lot of people!
What I learned from participating in the Nextcloud contributor week:
Keep a low-level entry ticket
If you want people to join your open source project it needs to be simple, well-documented, and use generic libraries. For instance, at Nextcloud, they made the choice not to use Typescript because it was adding an extra layer of difficulty when onboarding new people. In my opinion, this is also true for any company’s projects. It's important to keep things simple and understandable to maintain a smooth onboarding experience.
Get rid of heavy libraries on the front-end