Hacker News new | ask | show | jobs
by yellat_chris 2048 days ago
I've seen this built as an in-house tool at every major tech company I worked at. Can't believe this hasn't been built as a standalone product yet. Imo, there are 3 main use cases that make this kind of system a must-have: 1. shipping critical changes that can't wait for CI/deploy pipeline. If you're at a company with more than 5 engineers or so, it probably takes you anywhere between 15 min to multiple days (for mobile clients) to get code from your laptop into production. In time-critical situations, this can be unacceptable. Maybe I have an alert banner that I need to show to all users NOW, (or perhaps a configurable subset of users). Having an online tool where I can change the alert_banner config from null to "We are experiencing outages due to an ongoing AWS issue. We expect a resolution by 3pm PST" is something that cannot wait for that deploy cycle. And sure, I can store it in S3 but then only people with AWS access can set it, which is quite problematic. 2. Non-engineers need access. Maybe I want my marketing person to be able to change the copy on my landing page. Rather than having them bug me every time they need a copy change, I'll just hand the keys to them, without giving them access to the code base or AWS 3. Nuanced codepath management (I don't know what else to call this). Feature flags are great, and every company has some system for this. However, I sometimes find myself in situations where I want finer-grain control than simple boolean flags. An example that came up at work recently: I was working on my company's zendesk integration. Inside of our zendesk webhook, we set a bunch of user tags every time that a ticket gets filed (maybe 30-50 tags). We found that one of the tags ("company_size"), which depended on clearbit to populate, was throwing errors and returning 500 due to frequent clearbit timeouts and improper error handling in our code. This needed to be resolved immediately. The ideal setup here: inside my webhook code, before executing any business logic, I pull a "tags_to_skip" config, and any tags included in that config never get populated. This would allow me to update the "tags_to_skip" config from [] to ["company_size"]. Realistically, we're not going to have a feature flag for every tag. And even if we did, it would not be ideal, because there'd be nowhere we can go to see the list of all tags that are currently being skipped. Eventually we threw too many errors and zendesk turned off our webhook, which caused major headaches for the support team.

I'm not sure if I did a great job of explaining that last use case :/

This type of tool is one of those things that you don't think you need, until you see it. Once you see the tool, you start seeing countless places in your work where you realize that a tool like this is extremely powerful. I just played around with config.ly, and I have to give major kudos on the ease of setup and use. Really great product!