Why is this open source Feature Flag Management tool better than LaunchDarkly
Flagsmith is an open source Feature Flag Management and Remote Configuration tool.
In this blog, you’ll get to learn what are feature flags, what’s remote configuration, how can they help you, and what it’s like in a world without feature flags.
Oh, and of course why Flagsmith is better than LaunchDarkly! 🚀
First, as always, let’s walk through the basics.
[Note: You can skip straight to the difference if you’re familiar with these terms and use cases.]
The Basics
What is a feature flag?
If you’ve not heard of this term before — here’s an easy explanation with use cases and easy-to-understand examples.
Feature flags are feature toggles or switches to turn the functionality of certain feature(s) on or off without having to change the code or redeploy an application.
They enable you to deploy new features into a production environment but restrict their availability. With the flick of a switch, you can activate a new feature for specific users without restarting the app or deploying new code. (Source: Microsoft Learn)
A developer (or team) can choose to make a feature release go out to a specific set of users vs. all of them. This is helpful for gradual rollouts or A/B testing across different user segments.
It is also used internally for testing and QA (quality assurance).
Heads up: You’ll find more use cases of feature flags later in this blog.
To summarize, it can be enabling or disabling a feature release for all, or a part of the users segmented based on factors like location, age group, usage, subscriptions etc.
They are basically useful for controlling the availability and visibility of features in an app.
The biggest advantage of feature flags is the ability to decouple deployment and releases, so you don’t have to:
a. Redeploy code.
b. Disrupt the application performance for current users.
Source: Medium
Product and development teams need to have access to feature flag management for multiple use cases such as:
1. Canary Release (Phased Rollouts)
2. A/B Testing
3. Kill Switch
4. Sunsetting a feature
1. Canary Release
This means gradually rolling out a feature, in phases — starting with a smaller subset of users. One of the use cases is adding some new capabilities, and testing their performance and stability before the complete migration if successful.
For example, Medium is releasing the Partnership Program for some locations before eventually expanding the release to other users (here, Medium authors).
It’s also called phased or incremental rollout.
2. A/B (or A/B/n) Testing
The classic case of A/B testing involves comparing two versions of something whereas A/B/n signifies more than two.
For example, testing out 2 or more customer support channel/ advertising platform options while simultaneously deploying them; and making a decision based on performance and specific success metrics.
It’s also called multivariate testing.
3. Kill Switch
Photo by Judith Chambers on Unsplash
As the name suggests, it involves emergency brakes or an off switch. Unusual behaviour or something breaking in a new release can be handled with feature flags.
One of the other use cases is using an incident response tool to collect additional data for troubleshooting needs in case of an outage or some other problem.
4. Sunsetting a feature
Not every scenario needs emergency brakes to end something. You can use feature flags to disable a feature that’s no longer needed. Gradually remove features from the code base without disrupting the user experience at all.
What is Remote Configuration?
Remote Config goes above and beyond the use cases of feature flags.
It’s not binary.
While feature flags help in enabling or disabling a feature; remote config helps in handling the “how” of a feature configuration.
[Configuration refers to how hardware/ software components are arranged.]
Confused?
Simply put, it's making changes, updates or enhancements to an app without pushing an app update or deploying new code.
It’s extensively used both internally (back-end) and externally (client side) for multiple use cases such as:
**1. Testing in multiple environments
**It is used to push environment settings to testers, so they run in the right environment (for example: integration, test, and production). It’s also helpful for more sophisticated testing by a specific group.
**2. Pushing 3rd Party API Keys
**3rd party services often need API keys that periodically expire; using remote config helps to push those keys to applications as needed. Adding support for additional authorization from OAuth providers becomes super easy as well.
3. Changing in-app content
Using a custom CMS is a common practice to dynamically change or add content for users, but using remote config helps developers skip this process, and let respective teams deliver the relevant content as and when needed.
**4. Notifications
**Remote config is also used to send push notifications to users. This is especially helpful in case of outages where the app can pull the message and auto-display it to users.
In a nutshell, remote config. helps to customize the user experience and optimize the performance of features.
A world without feature flags
Here’s what things would look like
|
|
|
|
|
|
|
|
|
↓
Just kidding.
Here’s what could actually happen though:
Risky releases.
More downtime.
Lack of feedback loops.
Huge (messy) pull requests.
Delays and pushed timelines.
Hampered user experience.
Higher issue resolution time.
Limited A/B testing and customization.
Similarly, without remote configuration — the specifics suffer as much (if not more).
Here is an excerpt from a podcast by Ben Rometsch and Jason Bosco:
“You have 5 things that 3 teams are working on, and they all rely on each other somehow. One of those things doesn’t make it to production-ready at the end of the sprint, so you delay the go-live until the next sprint. You know what’s going to happen in the next sprint.”
A series of such events can lead to a constant cycle of — “We’re not ready to launch yet,” or worse, launching a flawed or unfinished version.
An extremely high-level representation of a loop could look something like this:
A bit too oversimplified example of a loop ^
“If feature flags ceased to exist, then we would have more bugs in production and more MTTR for fixing them.”
*MTTR: Mean Time to Resolve
Thus, the simple solution — Feature flags ✨
Get the control to enable or disable a feature without making any changes to the code!
It decouples the deployment and release in a way that doesn’t affect the user experience and helps you escape the vicious cycle of being stuck in the development phase.
Figure out if it’s the right time for you to move to feature flag software.
Feature Flagging Products
Source: featureflagsio.gtsb.io
Now that we know why feature flags are SO important. Let’s talk about some of the companies that offer feature flag management.
Tools like PostHog, Unleash, LaunchControl, and LaunchDarkly are some of the other players in the market.
What differentiates Flagsmith from the other feature flag alternatives?
“All of the alternatives have a single deployment option and that is as a SaaS application. While this is a really convenient option; we had data-sensitive clients who wanted to self-host, either in their own cloud or on-prem.
Many organizations in data-sensitive industries like banking, healthcare, and government have to self-host for policy or regulatory reasons. Until we built Flagsmith, there wasn’t a tool out there that allowed them to adopt feature flagging.”
Source: SourceForge.net
But today we’re comparing Flagsmith with LaunchDarkly.
Flagsmith vs LaunchDarkly
LaunchDarkly is a closed-source, proprietary feature flag management platform that offers cloud-based deployment. It was founded in 2014 in Oakland, California by Edith Harbaugh and John Kodumal.
It’s one of the most popular products in this space.
Flagsmith, on the other hand, is an open-source, fully featured, feature flag and remote config service. It was founded in 2018 by Ben Rometsch and Kyle Johnson.
Here’s a list of things that make Flagsmith different (and better) than LaunchDarkly:
1. It’s open source 💙
Flagsmith is open source with an active open source community of over 56 contributors! A major part of the product is free and open source to help users only pay for the enterprise features if you need them. (Here’s their repo.)
“The platform is open and stays open, and teams can deploy it how they want, whether that’s for self-hosted feature flags or otherwise.”
2. Multiple deployment options 💻
It is really quick and easy to deploy. You can use their hosted API, deploy to your own private cloud, or run on-premise. This gives you more control, security, and helps you meet compliance requirements.
“We’re not tied to any cloud provider or tooling infrastructure; the only requirements are a database and an API.”
3. No pricing lock-ins 💰
You only pay for what you use instead of investing more than you actually need. You don’t need to pay for bells and whistles (attractive, additional extras). This makes it much more affordable compared to LaunchDarkly (and other proprietary options).
4. Works with your current stack 🔥
You can easily continue to use the tools you do and integrate Flagsmith right into your current processes and existing tools (analytics, CDN, CI/CD, observation/APM). It saves you from adding decision points and becomes far more convenient.
“We also believe anyone should be able to run Flagsmith and use feature toggles without huge barriers, whether it’s for a personal project or an enterprise team deploying on-premises feature flags.”
5. A small, bootstrapped team 💜
Wait. How does this point belong here?
Not taking any funding and functioning as a lean, bootstrapped team makes Flagsmith focus on what really matters. External factors don’t influence things like pricing and the core ethos of the team.
“We aren’t bound to externally set revenue goals. We can choose what happens next.”
Speaking of, Flagsmith believes in offering a great degree of control (of data/flags/infrastructure) and flexibility to their customers; whilst making sure they provide extensive, reliable and responsive support at all times.
For instance, engineers are always curious to learn more, and talking to customers about their use cases is encouraged and practised.
Flagsmith also has a FREE plan that allows up to 3 team members and unlimited feature flags!
Take a look at the different versions you can opt for.
Our mission is to empower development teams to ship faster and continuously improve their products. That applies to the largest enterprise or a small startup; so we have features and pricing plans to meet the needs of any team.
A preview of the product ^
It’s cost-effective, flexible, scalable, and controllable; offers community support, multiple deployment options, easy integrations, and more.
This page will give you an in-depth look into their differences.
With Flagsmith, you can:
• Deliver true continuous integration.
• Get builds out faster.
• Control who has access to new features.
• Stop monster-coded PRs.
• Ship features to production that just work.
All of this can help you optimize your development processes, enhance collaboration, and deliver better products to your customers.
🚨 Exclusive: Flagsmith just launched an importer so you can import your Flags and Segments from LaunchDarkly directly into Flagsmith! 🤯
You can learn more and get started here.
The Future of Flagsmith 📈
The near future involves a LOT more improvements, updates and enhancements. Here’s a sneak peek into the public roadmap:
You can access it here.
Flagsmith is one of the most ethical and inspiring bootstrapped companies out there — with over $1.5M ARR! (ARR: Annual recurring revenue).
“It’s been a long journey! Building a sustainable commercial open source company is rewarding but it’s not an easy — or quick — path.”
Its origin story dates back to 2018, and it’s one worth uncovering.
Their podcast show called “The Craft of Open Source” is focused on the ins and outs of the Open Source Software Community. Each episode is an interview with creators, maintainers, entrepreneurs and the OSS community! 🎙
If you liked this blog, get ready for the next one which will be all about the fascinating origin and fabulous growth of Flagsmith! ✨
To keep up with the latest updates, follow Flagsmith on X, LinkedIn, and don’t forget to star them on GitHub! ⭐
Subscribe to my newsletter
Read articles from Penaaz Valecha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Penaaz Valecha
Penaaz Valecha
I am a freelance writer and open source enthusiast.