How to support open source projects you really depend on effectively
If you are building any kind of software you are probably using open source projects to help you develop your own products safer, faster and easier. But open source projects come in all shapes and sizes. Sometimes your project is totally dependent on one big project like a web app using a framework like React. Big and well-known projects like React (just an example) have a community of many dedicated people who work on support requests, bug reports and developing the next releases of the project. But sometimes this is not the case.
Finding help might be hard, if you are using a project that is really small, brand new or not very well-known. The same thing goes for projects that might be a little older, less popular and that have less active developers now. If you are in this situation the typical reaction is to question your choice. This is a good thing. Of course, you should consider from time to time if your dependencies are up-to-date and in a good state. Sometimes new tools emerge that can replace something in your project. Sometimes dependencies you integrated become deprecated and unmaintained. You should always consider your investment of keeping vs switching technologies. The existing or the new tool could be right choice at this point in time. It always depends. But don’t get caught in a vicious circle and make your decision when it feels right.
At some point you will realize an open source dependency is really important for your project, and you will need some help or decide to support this project somehow. You want to make sure that you are betting on projects that are well-maintained and a solid choice for the future of your project/product. This is especially critical for dependencies that are hard to replace and that are an important part of your project. Your first idea might be to consider sponsoring the project or its maintainers. This can help support the project, but sometimes it doesn’t.
My personal opinion is that the majority of open source producers and consumers benefit more from collaboration than just exchanging money. Of course, every user and maintainer of open source is different. I strongly think the typical small to medium-sized company and open source project could benefit a lot if companies (the users of the open source project) encourage their employees to contribute to the projects, they need to make money.
I’m saying that you should invest your time and not money in open source projects. If you are a company who has identified one or more projects that are critical to you business, then you should strongly consider becoming active in the community. You should evaluate the current state of the project and stay up-to-date on the projects’ news, issues, releases etc. If you fix bugs, contribute them. If you solve problems yourself, document it. Encourage your employees to become active contributors and earn your own little stake in the project. Your company and employees will get recognized and might become important maintainers for the project. This has many benefits for both sides.
I think the most important piece of this puzzle is intrinsic motivation. This is true for many projects and especially developer focused open source projects. The best people to maintain and support a project are the ones who actually use it extensively. A common cause for a project becoming unmaintained is that maintainers just moved on and no longer user their own project. Maintaining it any longer is just not very appealing for the original maintainer anymore.
Paying maintainers can also be hard. If a maintainer wants to accept money for their work they have to take care of taxes, invoices and such. It might also be problematic if a maintainer is paid by a company to work on a project, and they don’t want to accept payments from other companies to avoid conflicts of interest.
Some projects just don’t have enough maintainers overall and paying them cannot help them with the workload. In this case it’s especially important to help the maintainers by becoming contributors yourself. If you or your companies employees become contributors or maintainers some day, this means you become less dependent on the limited work force of the few maintainers. You can solve problems yourself and exchange ideas with other maintainers to keep the project moving forward.
I would strongly advise you to have a look at your OSS stack and identify critical projects. You can start now and talk to the maintainers and ask what you can do for your beloved projects.