Why use Open Source Feature Flags?
Tags: opensource, devops, development, programming
Published: 2024-04-16 12:28:58

In the recent landscape of software development, companies and teams are increasingly inclined to build on open source software due to various reasons and the flexibility it offers. In this article, I’ll dig into some use cases for feature flags and four ways to get started securely with open source (or test out your own feature flag use cases). Before diving into why to choose open source over any proprietary software out there, let's first understand what feature flags are.

## So, what are feature flags?

Feature flags enable developers to enable or disable specific features within an application or service without modifying the codebase. It's like turning a switch on and off. For example, we can turn on a promotional banner during the festive season and turn it off when it’s over.

![flagsmith demo gif](https://github.com/Pradumnasaraf/Pradumnasaraf/assets/51878265/7351ed9c-e331-4550-99d4-4b87b6f4ea54)

## Why choose open source feature flag solutions over proprietary tools? 

As feature flags and configuration code directly affect our app functionality, it’s really important to ensure everything works well and security standards are met. With Open Source feature flagging, both transparency and security are paramount. Open source tools offer high levels of code transparency. For example, this means ensuring the security of the feature flag code which we will paste into our app, making sure it is not pulling any data, etc. And it's not just about feature flags; it can be databases, frameworks, etc. There are many more reasons to opt for [Open Source feature flags](https://www.flagsmith.com?utm_source=devto&utm_campaign=pradumna&utm_id=thirdparty), especially when using them in production, such as:


- Vulnerabilities: With proprietary software, when vulnerabilities or threats arise, there is often an approach to hide them from the public domain, leading to a lack of scrutiny. With Open Source, everyone can see and respond.
- Transparency: With closed source solutions, the decision-making and roadmap are controlled by a small group of people. With open source tools, the roadmap and code are public, giving you full transparency and access to the developers maintaining the project.
- Collaboration: One of the best things about open source tools is that developers from all over the world can collaborate and provide their opinions and suggestions for the project. This provides built-in user testing and means that the feature flag project has been tested and used by developers around the globe. 
- Open Feedback: Open feedback is an important part of the open source software roadmap. Projects tend to gather feedback via issues and comments and move according to what the community needs. In proprietary software, we have seen requested features take years to be implemented.
- Less Vendor Lock-in: Open source means less vendor lock-in by nature. Many open source feature flag solutions are also partnered with [OpenFeature](https://openfeature.dev/) to promote open standards, community, and less lock-in at the code level.  

Considering all these points, the team at Flagsmith has developed a feature flag management platform [Flagsmith](https://flagsmith.com/) and made it open source. The core functionality is open and you can check out the GitHub repository [here](https://github.com/flagsmith/flagsmith). I have utilized and authored several blogs discussing their excellent offerings and strategies. 

DevOps use cases for feature flags
With Flagsmith, users can use open source feature flags to implement strategies such as:

**1) Feature Toggles:** Feature flags enable toggling a feature on and off as needed, such as displaying a signup form for a few days each month.

**2) Scheduled Releases:** Plan releases for specific times, for instance, activating a promotional banner on the homepage at midnight on December 25th during the holiday season.

**3) Canary Deployments:** At times, we aim to minimize risk and validate new software by releasing it to a small percentage of users. With feature flags, we can adjust and control the percentage of users who can access the feature.

**4) [A/B Testing](https://www.flagsmith.com/a-b-and-multivariate-testing):** Easily conduct tests using the dashboard, showing the new UI to only 50% of users while the other 50% see the old one. If the responses and feedback are positive, and users prefer it, we can deploy it to all users.

Traditionally, these strategies were confined to the operations team or involved manually adjusting config files. However, with feature flag tools, developers gain more control and can speed up the testing and feedback process.

**4 ways to get started with open source feature flags**
There are so many ways to start with open source tools—through contributions, supporting projects, getting involved in communities, etc. Here are a few ways you can get started (all for free):
1. Try a free app To get started with Flagsmith, visit [flagsmith.com](http://flagsmith.com). 
2. Try the open source version: Be sure to explore the [repository](https://github.com/Flagsmith/flagsmith), try out the tool and provide feedback. Or simply give it a star to show your support and appreciate the impressive work accomplished by the Flagsmith team. 
3. Contribute to open source: You can also get involved in the project and contribute in many ways, such as contributing to the code base by raising Pull Requests. If you find any issues or vulnerabilities, you can raise them on the repository. 
4. Join an open source Discord community:
Join the amazing [community](https://discord.com/invite/hFhxNtXzgm) to receive technical support.