from Hacker News

Show HN: Featurevisor – Git-based feature flags and experiments management

by fahad19 on 4/24/23, 7:10 PM with 9 comments

Why?

- Decouple application deployment from releases

How it works:

- Make changes to your features and segments (YAMLs) via Pull Requests - Generate datafile (JSON file) in CI/CD workflow and upload to your CDN - Fetch datafile in your application runtime and consume with SDKs

Supports:

- Feature flags: boolean flags - Experimentation: a/b tests - Segments: targeting traffic with conditions - Variables: namespaced under each feature and conditional - Gradual rollouts: avoid big bang releases, go from 0% to 100% - Consistent bucketing: same user sees same variation - Multiple environments: prod, staging, test, and more - Force bucketing: allow testers to force enable/disable for themselves only - Tagging: resulting in smaller datafiles for your application(s) - Tracking: integration with any analytics tool - Status site generator: for human friendly status reporting - SDKs: for Node.js and browser environments, Kotlin/Swift planned for future

  • by rektide on 4/24/23, 8:34 PM

    The typescript types subpackage was a pretty nice high level overview of what to expect here.https://github.com/fahad19/featurevisor/blob/main/packages/t...

    This is definitely a neat effort.

    I started JSON dumping feature flags at work on a regular basis, so that is my main tool for scrubbing through & seeing what happened.

    The ability to keep building really neat tools around these paradigms is so infinite. Simon Willison's git-history is notablehere, which was submitted earlier today. https://news.ycombinator.com/item?id=35690942

    Personally I really think git (especially when going ham with good CoW filesystems) is the most notably interesting database coming at us from the future.

  • by asabla on 4/24/23, 8:53 PM

    This looks super interesting! Any plans on expanding documentation and support for more frameworks and/or languages?
  • by esafak on 4/25/23, 12:26 AM

    Do you support exclusions, to ensure interacting experiments do not intersect?