Many popular software libraries and SDKs used by developers are open source, like Octokit for interacting with GitHub, React for building front-end web applications, and TensorFlow for machine learning.
There are several advantages to open sourcing our code, both for Duffel and our customers:
1. A better experience for our customers
Open source provides more training and help materials to our customers and continues to improve developer experience. When the codebase was closed source, our customers only had our official documentation and guides to draw from. Now they can also jump into the source code to see how things work behind the scenes.
Our customers can even get involved directly and contribute changes back to our codebase. If they find and fix a bug, or make an improvement, they can send us a pull request so that everybody can benefit from their changes.
2. Helping our peers
Duffel, like pretty much all online services, is built on open-source software. Very little of this software was created in isolation – it's the result of people extending, remixing and drawing inspiration from prior art.
By making some of our code open source, we are contributing back to this ecosystem in a small way, allowing others to kickstart their own ideas from our work.
3. Recruitment and retention
Currently, we're still a relatively small company. As we grow, we must continue to hire and develop great people. Developing in the open gives us more visibility in the engineering community, which in turn will help us attract talented people.
It also makes it easier for us to talk about what we're up to. Instead of having to take our word for it, people can check out the codebase and actually see examples of what we're talking about.
With all of the advantages it brings, making our client library open source was an easy decision to make. Take a look at the client library on NPM or GitHub, and feel free to open an issue or pull request.