Unleash is a open source feature management solution designed to help developers implement feature flags into their product. Feature flags can drastically improve the time to market for new features by decoupling the deployment and release cycle.
On GitHub, Unleash is the most popular feature flag solution and has official SDKs for popular server-side or client-side languages such as GO, Javascript, Python, Ruby, Rust, .NET, Java, and PHP.
Features
- Feature flag categories:
- Release: Manage the deployment of new or incomplete features.
- Experiment: Perform different types of experiments such as multivariate or A/B tests.
- Operational: Transition between technical implementations with minimal risk.
- Kill switch: Gracefully degrade system functionality or turn off features.
- Permission: Control feature access based on user roles or entitlements.
- Instant rollbacks: When a new feature or deployment is not performing as expected, teams can disable a problematic feature without redeploying an old version of an application.
- Production debugging: Hard to debug components can be wrapped in a kill switch which can revert to another implementation if problems occur.
- Team management: It doesn't take an engineering fire drill to rollback a problematic deployment. Instead, team member can manage feature flags while engineers implement solutions.
- Multiple strategies: Use predefined activation strategies such as a gradual rollout or a rollout based on user ids.
Getting started
Unleash only needs a PostgreSQL database to run in production on FlexStack. Use Neon to get up and running quickly or check out our guide on databases to choose from another option - https://flexstack.com/docs/guides/databases
The PostgreSQL connection details are set via DATABASE_HOST
, DATABASE_NAME
, DATABASE_USERNAME
, DATABASE_PASSWORD
environment variables.
Two additional variables are optional. UNLEASH_DEFAULT_ADMIN_USERNAME
and UNLEASH_DEFAULT_ADMIN_PASSWORD
can be set to change the default admin login for the application. If these remain unset, the default username is admin
and the default password is unleash4all
.
Using Unleash
With Unleash, an application implements feature flags by importing a client-side or server-side SDK with an API key generated from the dashboard. These SDKs then begin fetching the latest feature flag configurations from the Unleash API.
For a conceptual overview and list of supported SDKs and features head over to the Unleash SDK reference https://docs.getunleash.io/reference/sdks.