/featurehub

FeatureHub - cloud native feature flags management, a-b testing and remote configuration. This is the main repo to report issues, PRs and contributions.

Primary LanguageDartOtherNOASSERTION

Feature Hub

FeatureHub is a Cloud Native platform to help software teams manage their features, from feature flags (also known as feature toggles) to A/B experiments and remote or centralised configuration. This is the primary source code repository for FeatureHub - if you want to help us resolve any outstanding issues, contribute a new SDK or just get a deeper understanding of how it works, this is the right place to be.

Try FeatureHub demo now

New in version 1.2 - Dark Mode!

FeatureHub console demo

Why FeatureHub?

Free

  • Unlimited users

  • Unlimited features

  • Unlimited clients requesting features

  • Unlimited Applications and Environments

  • Unlimited scalability

Feature flags, A/B testing, experimentation and analytics support

  • Choice of how to run your experiment - feature flag, number, string or remote configuration

  • Split targeting strategies support: percentage rollout, targeting by country, device, platform, version or any custom attribute specific to your application.

  • Integration with analytics so you can see how your experiments perform, with Google Analytics support out of the box

Easy to use

  • Control features from an easy to use console

  • View how your features are setup across each environment from the main console

  • Environments promotion order - to help you see and order features by environment

  • With "smart lock" only enable feature state updates when they are ready

  • Use handy admin functions, like applications, environments and user management

Enterprise ready

  • Run on your own infrastructure (self-hosted)

  • Access control levels to allow different teams/groups permissions.

  • Multiple portfolios (department) support

Best development experience

  • Easy to set up, Cloud Native - docker containers available

  • Easy to integrate with test automation - API to control feature states from the tests is available

  • Support for feature flags, numbers, strings and Json structure (remote configuration)

  • Easy to log events with analytics with attached feature state

  • Documentation and tutorials available

Supported SDKs

Featurehub SDK Languages

More detailed documentation on SDK’s can be found here

Documentation

Full documentation can be found at docs.featurehub.io

Getting started

Important
If you like to install FeatureHub, please refer to install repository with configured docker images

We selectively take cuts of this repository and build them into docker image sets. We then update the main install repository with the latest images and issues tags on that repository.

If you are just curious to see how FeatureHub works and would like to play with it there is a simple way of doing it, please follow instructions here.

Once you have decided to start using FeatureHub in your team, there are also several installation options depending on your use case, please read about these options here.

How to use SDKs and examples

Please follow documentation here. The examples are located here in their own repository if you wish to have a starting example to work from.

Coming soon

  • Feature auditing

  • SDK’s : Mobile (Swift), Python, Ruby

  • SAML support

  • Yaml remote configuration support

  • More deployment options, Helm Charts, Cloud-vendor specific support

For more details please refer to Roadmap tickets

Contributing

FeatureHub is an open source project, and we love to receive contributions from our community! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into FeatureHub itself.

Further information for contributors

If you have reviewed the Architecture section of the FeatureHub documentation you will notice there are several components. FeatureHub is designed this way to allow to scale from a single application option to large organisations serving billions of requests for features per day.

The Backend Servers

The Management Repository, Dacha (the Cache layer) and Edge (where all clients connect via their service accounts) are all written in Java. This allows us to build fully scalable software. In our simple examples, it all deploys together in one simple bundle. In complex examples it can all be sliced apart, sharded and massively scaled. Apart from Java, we use a few other technologies as well which will help OpenAPI, JAX-RS (specifically Jersey), Maven (specifically with Maven Tiles), and Ebean for our ORM.

Java was also chosen amongst the JVM stack because of its ability to allow the greatest number of people to contribute. The pom.xml in the main repository to allow for easy loading and local installation of the project. It is called a reactor.

If you want to go more advanced, we also support Prometheus, Health Checks, OpenTracing and Jaeger.

The FeatureHub Admin Console

The Admin front end is written in Flutter Web. This choice gives us a wide range of platforms (Web, mobile, native platforms) we can target from the same codebase. Currently, Web platform is our priority. If you want to contribute to the Admin Console - we would love you to join us!

The SDKs

If you are planning on helping us by building an SDK in a language we don’t yet support, please refer to this doc. We are happy to get contributions that slowly add full functionality for a new language.

Where to get help?

If you cannot find an answer in our documentation please join our Slack community Anyways Labs

You can also start a discussion in GitHub Discussions here

Or email our community supporters at info@featurehub.io

License

FeatureHub is operating under Apache 2.0 license. Please refer to the full license here.