We've built an open-source feature flag server for 11 years

Posted by ivarconr 5 hours ago

Counter101Comment63OpenOriginal

Comments

Comment by sgt 4 hours ago

Had a look at their website [1]. Initial thoughts: this is a bit ridiculous, I can just build that myself. And in fact, I have done already.

Thoughts after about 3 minutes of browsing: OK, this actually makes sense and I see why people would pay for this. The value proposition is definitely there

[1] https://www.getunleash.io/

Comment by ivarconr 3 hours ago

Thanks, "I could build that" → "oh, that's what the other 90% is" is pretty much how Unleash started for us too. What does your homegrown version do? Always interested in where people draw the line between building and adopting.

Comment by kleiba2 2 hours ago

Great comeback!

Comment by cfontes 2 hours ago

I pay for it for my team... it's expensive to be honest, but worth it IMHO. Building it would be a ok, supporting it a pain.

If you work on a small startup, not worth it... on a Big corp with a lot of bureaucracy? It's worth it I think.

We have tried self-hosting it, but it's always a pain to allocate people on infra to do it, so I gave up and started paying for it for my teams, and they love it.

Comment by everforward 53 minutes ago

From the infra side, it’s something I don’t think makes a lot of sense to self-host. Metrics are the other notable one here.

They have non-linear scaling complexity, so they work fine with bumping up resources until they don’t and now you’re looking at queueing metrics on Kafka or something equally complicated. They’re horrible to change out because a lot of the APIs aren’t compatible and literally everything uses them.

They’re also awful to maintain. Everything uses them so there’s never a window when it’s convenient to shut down the feature flag system for upgrades or to test backup restores. People are much more accepting of “the vendor will be down for 2 hours on Saturday” than “I’m taking the system down for 2 hours on Saturday”.

Comment by amelius 3 hours ago

Hmm, after 5 minutes of browsing I still don't get it.

Comment by jascha_eng 3 hours ago

[flagged]

Comment by brookst 3 hours ago

It’s bad form to accuse people of being shills.

I haven’t used unleash but it’s pretty clear your characterization is wildly wrong. 30 seconds looking at docs shows it has features for gradual rollouts, A/B testing, experimentaion with analytics, authentication to control available features, and probably a lot more I missed in a quick skim.

Comment by soco 2 hours ago

Which doesn't really explain why all the comments of the OP/author are flagged and dead... competition at work?

Comment by sureglymop 5 minutes ago

Cool product!

This seem to be open source and self hostable (is it AGPL licensed?).

Can I, for personal use, fully self host every component? Or is it open core and e.g. multi tenancy isn't there etc.

Comment by ivarconr 5 seconds ago

[dead]

Comment by 0x70dd 4 hours ago

Yesterday I saw that LaunchDarkly is a $3B company. How crazy is that?!

Comment by notfried 4 hours ago

A million monthly active users, even free ones, would cost you ~$10K/month on LaunchDarkly. A million sounds like a lot, but "active" can mean one visit, even anonymous users. ~$120K/year for feature flags is a ridiculous line item.

These SaaS companies are only valued this much because they charge based on MAUs, not request-based. I prefer PostHog's model. 100M requests/month is ~$2K [*].

[*] I'm not affiliated with PostHog.

Comment by ivarconr 3 hours ago

On Unleash Cloud: 100M request per month on Unleash cloud would be $235 + 75$ per seat ($53 Million requests included).

Comment by skeeter2020 4 hours ago

Launch Darkly charges on volume across multiple dimensions, including MAU and server-side connections, plus log, trace and error counts. It's bonkers and anyone who can actually predict what it will cost (good luck) will run away as fast as they can.

There is no way a Feature Flag system is a multi Billion dollar company based on the tech, and if there IS a Saas-pocalypse it's coming for players like LD first.

Comment by pvo50555 3 hours ago

What would you recommend as an alternative?

Comment by paulryanrogers 2 hours ago

Put flags in your own DB(s)?

Comment by figmert 1 hour ago

Ex-LD engineer here. This was a classic mistake we saw most of our customers make, before they had to switch to LD or its competitors when they scaled a little bit more. Using a db is fine but can put heavy load on the server depending on the number of flags. In addition, it doesn't give you various features such as tagetting by users, segments, etc. Nor does it give you things like progressive rollout or automated rollback (yes we were using that in house and had saved us at least a few times).

I'm not advocating for LD, I'm advocating for any feature management system.

Comment by illamint 2 hours ago

What if your DB is down?

Comment by mportela 1 hour ago

Wouldn't you be having bigger problems if the DB is down (especially if you have good defaults for the flags)?

Comment by the_fury 2 hours ago

Have a safe default fallback.

Comment by LollipopYakuza 2 hours ago

Unleash Cloud ?

Comment by thomaspoignant 1 hour ago

[flagged]

Comment by ivarconr 3 hours ago

[flagged]

Comment by 34 minutes ago

Comment by vouwfietsman 2 hours ago

Shoutout to ConfigCat, https://configcat.com/

Same features as all these big guys, EU hosted, and down-to-earth pricing. Even the free tier got me quite far.

I'm unaffiliated btw.

Comment by gib444 3 minutes ago

A file syncing app that could be an FTP server or USB stick is over double that ;)

Comment by 2 hours ago

Comment by jonhohle 3 hours ago

Are most feature flag systems really just simple Boolean checks like this with no feedback loop? In 2009 Amazon’s equivalent supported multi-variate flags (run test with more than 2 options), a feedback loop for performance/attribution, and weighting. I don’t see any of that on the unleash home page, but also haven’t seen it in other feature config systems either.

Comment by hobofan 3 hours ago

What you are describing is usually part of analytics platforms (Mixpanel, etc.). A feature flag toggle only plays a small part in this (but it may also be used for a lot of other scenarios of how you may want to control feature flags).

Audience is decided by analytics tool -> Feature flag server maps audience to feature flag value -> Analytics tool tracks its events and includes feature flag value as attribute

Comment by jonhohle 2 hours ago

So if you want to slowly roll out a feature flag, you need to get a different app involved that can do everything the feature flag tool can do and a whole lot more? What’s the point of the feature flag tool?

Analytics is a much broader set of tooling. It can (and should) report similar things.

Comment by hobofan 1 hour ago

The point of the feature flag tool is to control feature flags. They are not just for A/B testing and slow rollouts, and most products are not on the scale of Amazon, where you need to have a feedback loop for the rollout. Of course there is always going to be some overlap between tools, where many analytics platform allow you to do the rudimentary version of this.

The main point of a FF system is that you have a runtime-controllable mapping from user attributes to feature flags, where a set of logic rules can dictate who is exposed to what feature. With most analytics-tool based rollouts, you would be able to only directly set an attribute and you then hard-wire that attribute to the feature toggle in app code, which gives you a lot less flexibility and always requires a engineer in the hot path when it comes to doing rollouts.

Comment by horticulturist 3 hours ago

usually some “data science” team takes the results and decides what to do. really heavy process for something that is usually quite simple.

Comment by wmichelin 3 hours ago

We have automatically generated readouts that run hourly and daily, show metrics between control and variant across a ton of core business metrics, and we can even opt into measurement of some super esoteric stuff.

Granted we have a whole team supporting just that experimentation platform, but it's pretty cool. They even expose an MCP server for us to have agents do experiment analysis for us using.

Comment by jonhohle 2 hours ago

Attributing an event to a flag is a heavy process? Oof.

Comment by ivarconr 3 hours ago

[flagged]

Comment by hmokiguess 2 hours ago

This domain needs some better ontology and taxonomy, there's so many overlapping and conflated terms whenever I hear about it. To name a few:

- Feature Flags used as Configs;

- Configs used as Feature Flags;

- Live Ops, Control Groups, Experiments, Analytics, and more bundled as "extras" to Feature Flags as if they were the right parent term;

I think classical systems/engineering see feature flags as boolean state in some data store, but these PaaS are pushing it as a new thing and struggling with marketing.

I wish they took the gaming companies lesson and started using the term "Live Ops"

Comment by rafabulsing 1 hour ago

This article does exactly that, you might find it an interesting read: https://martinfowler.com/articles/feature-toggles.html

Comment by hmokiguess 1 hour ago

Oh wow I didn't know about this one, thanks for sharing! Great read

Comment by kalcode 2 hours ago

To me there two type of feature flag. For tech and not for tech.

If you have good CI/CD practices, an ENV for the environment has what feature is simplest. No new dependencies, change code commit deploy.

Non-tech folks need something else that allows them to switch it on and then off. For a variety of reasons.

Comment by figmert 1 hour ago

Ex-LaunchDarkly engineer here.

Feature management goes well beyond an env var. Sure an env var change is fine on it's own, but a change of the feature flag (essentially a release) requires a deployment.

Feature management separates these two. You can deploy without releasing. Because the code is there, but dormant behind an if that can change at runtime, you can actually target users, segments, or even do progressive rollout, and so much more. What this also means is you can test your changes in production without causing prod to go down. Best of all, a release doesn't mean a bad deployment.

It's not just about non-tech folks. It separates deploy and release in the SDLC, and that opens up a whole new world.

Comment by ctkhn 2 hours ago

We had a weird constellation of these things at a previous job of mine. In addition to our env variables, we had a config table for more business-side stuff (ie percent of margin to include in bids and quotes for work on the platform) that our business team would upload new values to on our admin GUI with a CSV file, and eventually we jammed into that same table a config check that would enable features just for certain users by email. I was very happy when we eventually moved to Launchdarkly and tossed out the hacky stuff.

Comment by VulgarExigency 1 hour ago

This seems a bit reductive. What if you want to do a progressive rollout of the feature? What if it has a problem, and you want to disable it without needing to redeploy across multiple regions? What if you want to A/B test it?

Comment by linesofcode 2 hours ago

Cool! Feature flags are great when you need them. I’ve seen so many different implementations of flags over the years. Even made one myself couple years ago which uses a GitHub issue (and a list of checkboxes) as a persistent store for maintaining and toggling with flags. https://github.com/TimMikeladze/next-flag

Comment by Thomaschaaf 2 hours ago

OpenFeature (https://openfeature.dev/) is very similar and backed by CNCF.

Comment by soco 2 hours ago

You can hardly compare an API specification with an implementing product. So, no, even if Unleash does implement OpenFeature.

Comment by joaohaas 2 hours ago

Literally all their examples can be replaced by some sort of:

    if redis_client.get("staging.feature-flag"):
        ...
For frontend you add an endpoint that exposes this value.

I guess their frontend for managing these is 'nice', but at the end of the day it's a static page that sets flags on redis.

Comment by matsemann 2 hours ago

The flags are often not static, though. Varies between environments, markets, user cohorts and whatever rules you can come up with.

Comment by dolmen 1 hour ago

So plenty of parameters that could be exposed in Redis as well. No?

Comment by stackghost 2 hours ago

What else do you need for feature flags?

Comment by ivarconr 11 minutes ago

[flagged]

Comment by anonymous908213 4 hours ago

> Release, experiment, and kill anything AI ships

The only appealing marketing I've seen in the past three years

Comment by ivarconr 3 hours ago

[dead]

Comment by yuppiepuppie 5 hours ago

Configuration as a Service companies must be a having a tough time these days...

I couldnt imagine a lot of teams are debating anymore whether to build their own or use an off the shelf product like this. The former being a straight forward task for an LLM. And the latter being a point of failure/attack for any one want to mess with the core foundations of a product.

Comment by FinnKuhn 4 hours ago

Companies as well as people are still happy to pay for the second S in SaaS.

Building something, updating it, running it, testing etc. still requires resources and attention. One example for this would be taxis. You pay for the comfort of not having to drive the car, do maintenance, take into account road works, cleaning, etc. and not because you couldn't drive a car yourself. That time you can use instead to focus on your actual business.

Comment by chanhyounglee 1 hour ago

I build a B2B SaaS. I ran the same PDF through my product and a general-purpose AI. Both had zero number errors, and the AI's design was good enough. So I don't expect people to pay for the output. I think what's left is what happens after: who opened it, inquiries, spec changes, and team collaboration.

Comment by leetrout 4 hours ago

At a certain scale (probably bimodal distribution) it makes sense to have a provider you can shrug it off to and point the finger to when things are missing features or the system goes down, etc etc. On the big-co end of that spectrum I think you are right and AI makes this stuff easy to launch internally.

The owner at my current gig has multiple times said "software is over" as it being a sort of gravy train of rent seeking. Products are gonna have to offer real / significant value to attract new customers. Maybe even to keep them, too...

Comment by skeeter2020 4 hours ago

>> and point the finger to when things are missing features or the system goes down

This sounds good in theory but - and I speak from experience with a FF system causing a system-wide outage - clients don't care why YOU had an outage, or that it's not immediately your fault, and they really shouldn't have to. The reality is more like you're paying for a dependecy that you can't mitigate.

Comment by hobofan 2 hours ago

Being able to point fingers is also a moot point from a theoretical perspective.

Given that every FF system comes with a bunch of different mechanisms that prevent your system from being catastrophically impacted in case the provider goes down, its still the fault of the integrating party if you experience an outage due to a FF provider.

Comment by gerardnico 4 hours ago

You miss where the value of software is nowadays. Just the hosting of this thing is worse to pay for.

Comment by higeorge13 4 hours ago

Analytics, documentation, configuration, etc saas companies must be having the same hard time.

Comment by ltbarcly3 2 hours ago

Wow a server that can help you manage your booleans. That's so useful. Let me just add one more thing to my infrastructure so my list of booleans can be managed.

Comment by konfusinomicon 1 hour ago

managed in the sense that values keep getting thrown onto the pile and then people somehow manage to never think about or touch them ever again regardless of their temporary nature

Comment by ivarconr 12 minutes ago

This is the real problem in my experience. Creating flags is easy, removing them isn’t. We ended up building lifecycle tracking for it: each flag type has an expected lifetime, flags get marked potentially stale when they pass it, and you can see when a flag was last evaluated in each environment so you know it’s safe to delete. Someone still has to remove the code though :)

Comment by selinajing1001 1 hour ago

open-source = FIRE

Comment by sneak 2 hours ago

“open source” but it’s the nonfree AGPL, and naturally RBAC and SSO are behind a paywall. I’m tired of fake open source projects that just want the street cred and free marketing.

Comment by kleiba2 2 hours ago

AGPL is as free as it gets. Perhaps the word you're looking for is non-permissive?

Comment by sneak 2 hours ago

Don’t believe the hype. AGPL violates free software freedoms 0 and 1. It was designed by people who think that receiving a free gift confers obligation to reciprocate.

https://en.wikipedia.org/wiki/The_Free_Software_Definition

https://sneak.berlin/20250720/the-agpl-is-nonfree/

Comment by levkk 50 minutes ago

Huh? FSF wrote AGPL and the 4 freedoms.

AGPL does not require you to share your changes if you use it (like most people) internally. It does if you host it for others as a service. Pretty fair trade.

Freedom to use, modify and distribute, clearly enforced for the Internet age.

Comment by sneak 17 minutes ago

> AGPL does not require you to share your changes if you use it (like most people) internally.

The text of the AGP License does not support this claim.

Comment by ivarconr 5 hours ago

Hi HN, I'm Ivar, creator of Unleash.

Unleash started in 2014 as an internal tool at my company at the time, because we wanted to ship to production continuously without big-bang releases. It's an Open-Source feature flag platform with SDKs for >25 languages.

A few design choices that might be interesting:

- Local evaluation: server-side SDKs fetch the flag config and evaluate in-process, so user data never leaves your app and a flag check is a memory lookup, not a network call.

- Shared Rust engine (Yggdrasil): the evaluation logic is written once in Rust and embedded in the SDKs, so behaviour is the same across languages.

- Unleash Edge: a Rust proxy/cache for frontend and edge clients at scale. (Commercial)

- OpenFeature: supported if you don't want to lock into our SDKs.

Comment by gegtik 2 hours ago

I can see using something mature if you are starting from scratch.

if you already are in a platform capture situation, eg. Azure App Configuration or AWS AppConfig where you already integrate with platform tools using the native auth primitives, what is the benefit one can expect from switching to unleash?

Comment by ivarconr 13 minutes ago

[flagged]

Comment by arbor-group 2 hours ago

[flagged]

Comment by patryk_builds 3 hours ago

[flagged]