An open source, self-hosted feature flag solution
Documentation | Features | Values | Integration | Community | Feedback
Flipt is an open source, self-hosted feature flag application that allows you to run experiments across services in your environment.
Flipt can be deployed within your existing infrastructure so that you don't have to worry about your information being sent to a third party or the latency required to communicate across the internet.
Flipt supports use cases such as:
- Simple on/off feature flags to toggle functionality in your applications
- Rolling out features to a percentage of your customers
- Using advanced segmentation to target and serve users based on custom properties that you define
- Fast. Written in Go. Optimized for performance
- Stand alone, easy to run and configure
- Ability to create advanced distribution rules to target segments of users
- Native GRPC client SDKs to integrate with your existing applications easily
- Powerful REST API
- Modern, mobile friendly 📱 UI and debug console
- Support for multiple databases (Postgres, MySQL, SQLite)
- Data import and export to allow storing your data as code
- Cloud ready ☁️. Runs anywhere: bare metal, PaaS, K8s, with Docker or without.
- 🔒 Security - HTTPS support. No data leaves your servers and you don't have to open your systems to the outside world to communicate with Flipt. It all runs within your existing infrastructure.
- 🚀 Speed - Since Flipt is co-located with your existing services, you do not have to communicate across the internet which can add excessive latency and slow down your applications.
- ✅ Simplicity - Flipt is a single binary with no external dependencies by default.
- 👍 Compatibility - REST, GRPC, MySQL, Postgres, CockroachDB, SQLite, Redis.. Flipt supports it all.
Try the latest version of Flipt out for yourself.
Try Flipt in a deployed environment!
Note: The database gets cleared every 30 minutes in this sandbox environment!
docker run --rm -p 8080:8080 -p 9000:9000 -t flipt/flipt:latest
Flipt UI will now be reachable at http://127.0.0.1:8080/.
For more permanent methods of running Flipt, see the Installation section.
Like to live on the edge? Can't wait for the next release? Our nightly builds include the latest changes on main
and are built.. well.. nightly.
docker run --rm -p 8080:8080 -p 9000:9000 -t flipt/flipt:nightly
Some of the companies depending on Flipt in production.
Using Flipt at your company? Open a PR and add your logo here!
Join us on Discord ⌨️ and/or Whereby 📹 for office hours every Wednesday at 10am ET to chat about anything Flipt related or just to say hi.
Checkout the integration docs for more info on how to integrate Flipt into your existing application.
Flipt is equipped with a fully functional REST API. In fact, the Flipt UI is completely backed by this same API. This means that anything that can be done in the Flipt UI can also be done via the REST API.
The Flipt REST API can also be used with any language that can make HTTP requests.
❗ Offical REST clients in more languages coming soon.
❗ Offical GRPC clients in more languages coming soon.
Client libraries built by awesome people from the Open Source community.
Note: These libraries are not maintained by the Flipt team and may not be up to date with the latest version of Flipt. Please open an issue or pull request on the library’s repository if you find any issues.
Library | Language | Author | Desc |
---|---|---|---|
flipt-grpc-python | Python | @getsentry | Python GRPC bindings for Flipt |
rflipt | React | @christopherdiehl | Components/example project to control React features backed by Flipt |
flipt-php | PHP | @fetzi | Package for evaluating feature flags via the Flipt REST API using HTTPlug |
flipt-js | Javascript | @betrybe | Flipt library for JS that allows rendering components based on Feature Flags 🎉 |
If a client in your language is not available for download, you can easily generate one yourself using the existing protobuf definition. The GRPC documentation has extensive examples on how to generate GRPC clients in each supported language.
Check out the examples to see how Flipt works.
Here's a basic one to get started!
There are currently two types of licenses in place for Flipt:
- Client License
- Server License
All of the code required to generate GRPC clients in other languages as well as the existing GRPC Go client are licensed under the MIT License.
This code exists in the rpc/ directory.
The client code is the code that you would integrate into your applications, which is why a more permissive license is used.
The server code is licensed under the GPL 3.0 License.
See LICENSE.
For help and discussion around Flipt, feature flag best practices, and more, join us on Discord.
If you are a user of Flipt I'd really ❤️ it if you could leave a testimonal on how Flipt is working for you.
Mark Phelps |
I would love your help! Before submitting a PR, please read over the Contributing guide.
No contribution is too small, whether it be bug reports/fixes, feature requests, documentation updates, or anything else that can help drive the project forward.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!