Growing a Sustainable Ecosystem around an Open Source Project
Unleash is an open-source feature flag solution. I created Unleash back in 2014 to solve my own needs as a lead developer, working for FINN.no, the leading classified marketplace in Norway. It was clear to me that building a feature flag solution was not the core business of my employer, so I requested to build it in public as an open-source project.
This decision was also inspired by Domain-Driven Design, which tells us that a feature flag system should be considered Generic Domain for most companies, except for those actually in the business of providing the feature flag system.
By releasing Unleash as an open-source project, we gained several benefits.
- Community and Innovation: The open-source nature of the project made it possible for developers in other companies to use and contribute back to Unleash. This brought new ideas and perspectives into the development process, which led to greater flexibility and a wider range of use cases. It also helped to share the burden of maintaining and extending Unleash. With the support of our community, we could innovate at a pace and efficiency that would have been unattainable had Unleash remained a proprietary, in-house tool.
- Transparency: Open-source software is also highly transparent. All changes are publicly available, and anyone can audit or run their security assessment tools on it. This makes it easier for companies of all sizes and complexities to adopt open-source software, as they can validate that the software is secure and well-maintained.
- Quality and support. More eyes to review the code and code changes allow more bugs and security flaws to be detected and fixed. A thriving and engaged community of developers helped us get started and fix bugs. After all, given enough eyeballs, all bugs are shallow.
An Ecosystem Forms
Over time, Unleash was adopted by a growing number of companies. With this Open Source success, new challenges arose. While companies appreciated Unleash’s core functionalities, there were additional needs not being met by the current scope of the Open Source project, including:
- Support: Some companies require all production software tools to have an official support channel with defined response times. Because feature flag solutions control your applications in production, it is critical for some businesses to have SLAs in place with escalation procedures if something goes wrong.
- Security: Many of these same companies also require guarantees for how security vulnerabilities are dealt with in a timely manner.
- Enterprise features: Particularly larger companies have certain needs in terms of controlling access (SSO, RBAC), audit logs, approval flows, backup policies, and more.
- Cloud Hosting: For most companies, managing a feature flag system is not their core competence. The ability to offload this to someone else allows them to focus their engineering efforts on their core business capabilities.
- Survival: Companies that make long-term decisions to adopt software tools want assurances that those projects will continue to grow and thrive long-term. Any project that lacks a way to sustain itself over the long term is an unacceptable risk.
For all of these reasons, I started getting inquiries from companies who wanted more than just the Open Source code available on GitHub. This led me to explore building a sustainable, long-term business around this project that would be beneficial to myself, our Open Source community, and companies who wanted to use Unleash at scale.
Choosing Our Business Model
Because it was just me to start, my opinions shaped a lot of our early decisions. One of the biggest of those opinions is that I hate vendor lock-in. It makes it hard to switch tools or cut costs when budgets and/or requirements change. The big benefit of a well crafted open source project is that you can always fall back on the free, open-source version without an expensive rewrite of your solution. Because of this, it was important to me to keep the core flagging capabilities to be part of the open-source version while developing and charging for enterprise capabilities.
After taking our first steps as a company, and as we started building paid capabilities, we learned a lot. We decided on the open-core business model for Unleash. Put simply, this means the core of Unleash is free, open source, and available for anyone via the generous Apache 2.0 license. To keep our offering pure, we have built-in extension points into Unleash, making it simple to deliver a commercial version on top of Unleash Open Source. In addition, we decided to offer the commercial version of Unleash as a cloud-hosted solution as well.
If you want to learn more about business models for Open Source, I recommend reading up on the “Making Money from Open Source’ article by Robby.
Today, we have learned much more than those initial days. We have many more customers with very different needs. As a result, Unleash is currently being offered in three bundles: Open Source, Pro, and Enterprise.
Unleash Open Source
Unleash Open Source serves individual developers and small teams needing feature flag capabilities. All core feature management capabilities, like creating feature flags and defining targeting rules, are available as part of Open Source.
This is how Unleash started, and we have invested in this core ever since. Along the way, we’ve contributed many improvements, including user admin (v4.0), environments (v4.4), strategy constraints (v4.16), Fontend API (v4.16), and segments (v5.5).
Sometimes, we build new capabilities for Unleash Enterprise first, simply because we have a close collaboration with our enterprise users and hear lots of feedback from them. Some of these features will eventually be moved into the open source.
We chose to Open Source Unleash at the very beginning because it felt right. Since then, we’ve realized that this decision has been a critical part of growing a sustainable ecosystem where we all benefit from each other:
What’s in it for Unleash
- Awareness: People recommend tools they like to use. Because we have a compelling open-source offering, many more people have learned about and adopted Unleash than we could have ever reached as a closed-source project.
- Community support: By having a lot of users, we also benefit from some of these users knowledgeable about Unleash and willingly guide others on how to use Unleash in their context.
- Tested extensively: We see that open-source users are great at reporting bugs, particularly those weird corner cases, and even providing fixes for them.
- Integrations: Over the years, the community has been great at building out integration with Unleash. The community has particularly championed SDKs, and several official SDKs started their life as a community SDK.
- Feature requests: We get valuable feedback on our roadmap. Which features to build and new capabilities to invest in to improve Unleash over time.
- Potential Future Customers: Over time, a small percentage of our Open Source users grow into the product and adopt a paid version of Unleash.
Benefits of using Unleash OSS
- Free: It’s free for everyone, and you can use it for whatever you want.
- Try before you buy: Provides an easy way for developers to try out Unleash in their environment before they bring it to the management.
- Continuously improved: The fact that Unleash has a health company backing it and that the open-source offering is a core part of our business means that open-source receives a lot of love. If you compare our contributions to Unleash Open Source and Enterprise, 90% of our contributions go towards the open-source project.
- Tested Functionality: A Cloud offering allows us to trial new features in a production environment and oversee their performance before making them part of our next release of Unleash Open Source. This step is crucial, considering we view Open Source as Long Term Support since we can’t dictate when users choose to upgrade. Our data suggests that users typically upgrade Unleash just a few times annually.
The Pro offering is the middle sibling between Open Source and Enterprise. The intended audience is engineering organizations with up to a few teams of developers that need feature flag capabilities. Because it is intended for smaller organizations, you will not find advanced permission control and security policies supported in the Pro offering. It has a lot of the same capabilities as Open Source, with a few additional projects supported, and it is hosted by the Unleash team.
What’s in it for Unleash?
- Quality and rapid feedback: Pro customers have simple needs and must comply with our standard terms of service. In contrast to Enterprise customers, we are free to release new features continuously as we build them. This allows us to follow a continuous delivery process, which provides rapid feedback for the team and ensures higher quality of the software we build.
- Awareness: We have a huge number of customers on the Pro plan, which provides great word of mouth among developers.
- Tested extensively: because we operate and monitor these instances, we can faster detect edge cases and scenarios before new features are released to Open Source and Enterprise.
- Revenue: Our pro customers contribute a steady stream of revenue.
Benefits of using Unleash Pro
- Cloud Hosting: You get a feature-rich managed service from the team behind Unleash. You will not need to worry about how to host, scale, or keep it secure.
- Flexibility: You decide in which region we host your Unleash instance. You can also host an Unleash Edge instance wherever you need in order to increase performance, redundancy, privacy, and scalability.
- Simplicity: It is easy to get started with the Pro offering. All you need is an email address and a credit card, and then you are ready to roll.
- Continuously improved: We release enhancements to Unleash every week, and Pro customers get access to new functionality first.
- Provide feedback: We listen to all Unleash users to learn how to improve our offering to better solve relevant use cases.
- Support: If you ever need help, you can reach us through our help center or chat with us on Slack.
We designed Unleash Enterprise to meet the needs of complex organizations. These entities not only demand robust feature flagging capabilities but also have stringent security and vulnerability patch requirements. In addition, they seek refined access control, auditability, 4-eyes approval, complex deployment scenarios, and specific service level agreements to support the collaborative efforts of hundreds of developers across various teams in building software.
What’s in it for Unleash?
- Profit: Having a strong offering for the most demanding organizations on the planet also puts food on the table for the employees at Unleash. This also enables us to continuously invest more in the open source solution.
- Feedback: Working closely with larger organizations, who often have homegrown solutions they are migrating out of, gives us a unique opportunity to learn and improve Unleash and ensure it can scale to their complex needs.
- Validation: Knowing that large trusted organizations use our product at scale gives us tremendous validation, making it easier for smaller companies to also adopt Unleash.
Benefits of using Unleash Enterprise
- Flexibility: We have a very flexible offering for our enterprise customers. We can host it in your preferred region. Our unique single-tenant setup also ensures that your data is not co-located with other customers’ data. Alternatively, you have the option to self-host Unleash Enterprise. We also accommodate hybrid-cloud approaches, demonstrating our commitment to flexibility.
- Roadmap: Enterprise customers have a strong influence on the product roadmap for Unleash.
- Quality: We continuously test new features on Pro customers and release new features to our enterprise customers monthly. This ensures that all features released to Enterprise are already tested in production.
- Scalability: We built Unleash Enterprise to be a solution that scales to large organizations’ needs, meeting both their compliance and performance requirements.
- Premium Support: Enterprise customers get our team’s fullest attention. We provide them with dedicated support for troubleshooting, product guidance, and anything else they need.
We consider both Enterprise and Open Source users as long-term support customers. Upgrading Unleash multiple times a week to provide us with feedback is not reasonable for these customers, particularly when you self-host.
This how Unleash Pro provides it’s own unique value to everyone in our ecosystem. By managing a cloud offering, we can innovate, get feedback, and build quickly together without burdening our users. We use feature flags to do this, and we use a lot of metrics and alerts to ensure we keep our quality high. After new features have been tested in Unleash Pro and we have collected enough feedback, we can include it in the next release of Unleash. This process has given us higher-quality releases with fewer bug fixes while delivering a new feature release of Unleash every month.
We are grateful for all of our Unleash users. We believe that all of us provide unique value to each other in a truly sustainable way.