Flipt

An open source, self-hosted feature flag solution

Stars
3K
Forks
153
Open issues
32
Closed issues
200
Last release
5 months ago
Last commit
5 months ago
Watchers
3K
Total releases
119
Total commits
2.86K
Open PRs
4
Closed PRs
1.97K
Repo URL
Platform
License
gpl-3.0
Category
Offers premium version?
NO
Proprietary?
NO
About

An open source, self-hosted feature flag solution

<a href="https://github.com/flipt-io/flipt/releases" rel="nofollow">

</a>
<a href="https://github.com/flipt-io/flipt/blob/main/LICENSE" rel="nofollow">

</a>
<a href="https://codecov.io/gh/flipt-io/flipt" rel="nofollow">

</a>
<a href="https://goreportcard.com/report/github.com/flipt-io/flipt" rel="nofollow">

</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">

</a>
<a href="https://flipt.io/discord" rel="nofollow">

</a>
<a href="https://features.flipt.io/roadmap" rel="nofollow">

</a>
<a href="https://flipt.io/#newsletter" rel="nofollow">

</a>
<a href="https://twitter.com/flipt_io" rel="nofollow">

</a>



    <a href="https://www.flipt.io/docs/introduction" rel="nofollow">Docs</a> •
    <a href="http://www.flipt.io" rel="nofollow">Website</a> •
    <a href="http://www.flipt.io/blog" rel="nofollow">Blog</a> •
    <a href="https://features.flipt.io/" rel="nofollow">Feedback</a> •
    <a href="https://www.flipt.io/discord" rel="nofollow">Discord</a>

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.


 

Usecases

Flipt supports use cases such as:

  • Enabling trunk-based development workflows
  • Testing new features internally during development before releasing them fully in production
  • Ensuring overall system safety by guarding new releases with an emergency kill switch
  • Gating certain features for different permission levels allowing you to control who sees what
  • Enabling continuous configuration by changing values during runtime without additional deployments


Features

  • Fast. Written in Go. Optimized for performance
  • Stand alone, single binary that's 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 GRPC architecture
  • Powerful REST API with native SDKs for easy integration
  • Modern, mobile-friendly 📱 UI and debug console with dark mode 🌙
  • Supports multiple databases: Postgres, MySQL, SQLite, libSQL, and CockroachDB
  • Import and export to allow storing your data as code
  • Cloud-ready. Runs anywhere: bare metal, PaaS, K8s, with Docker or without
  • Works with Prometheus and OpenTelemetry out of the box 🔋
  • Filesystem, Object, Git, and OCI declarative storage backends to support GitOps workflows and more.
  • Audit logging with webhooks support to track changes to your data

Are we missing a feature that you'd like to see? Let us know!


Values

  • 🔒 Security - HTTPS support. OIDC and Static Token authentication. Auditing. 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, LibSQL, Redis... Flipt supports it all.
  • 👀 Observability - Flipt integrates with Prometheus and OpenTelemetry to provide metrics and tracing. We support sending trace data to Jaeger, Zipkin, and OpenTelemetry Protocol (OTLP) backends.


Try It

Try the latest version of Flipt for yourself.

Deploy

<a href="https://marketplace.digitalocean.com/apps/flipt" rel="nofollow">

</a>&nbsp;
<a href="https://render.com/deploy" rel="nofollow">

</a>

Sandbox

Try Flipt in a deployed environment!

Note: The database gets cleared every 30 minutes in this sandbox environment!

Homebrew 🍺

brew install flipt-io/brew/flipt
brew services start flipt

or run in the foreground

flipt

Flipt UI will now be reachable at http://127.0.0.1:8080/.

Docker 🐳

docker run --rm -p 8080:8080 -p 9000:9000 -t docker.flipt.io/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.

Nightly Build

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 docker.flipt.io/flipt/flipt:nightly

Works With


Integration

Check out the integration documentation for more info on how to integrate Flipt into your existing applications.



REST API

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.

REST Client Libraries

Language Version Status

Go

Node/TypeScript

Java

Python

Rust

PHP

GRPC Client Libraries

Language Version Status

Go

Ruby

.NET

Generate Your Own

If a client in your language is not available for download, you can easily generate one yourself using the existing protobuf definition.

Our integration documentation has more information on how to generate your own Flipt clients in your language of choice.


Release Cadence

Flipt follows semantic versioning for versioning.

We aim to release a new minor version of Flipt every 2-3 weeks. This allows us to quickly iterate on new features. Bug fixes and security patches (patch versions) will be released as needed.


Development

Development documentation is available for those interested in contributing to Flipt.

We welcome contributions of any kind, including but not limited to bug fixes, feature requests, documentation improvements, and more. Just open an issue or pull request and we'll be happy to help out!



Examples

Check out the examples to see how Flipt works in different use cases.


Licensing

There are currently two types of licenses in place for Flipt:

  1. Client License
  2. Server License
Client License

All of the code required to generate GRPC clients in other languages as well as the Go SDK 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.

Server License

The server code is licensed under the GPL 3.0 License.

See LICENSE.


Logos

Some of the organizations depending on Flipt in production.

              

Using Flipt at your company? Open a PR and add your logo here!


Community

For help and discussion around Flipt, feature flag best practices, and more, join us on Discord.


Contributing

We 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.

Check out our public roadmap to see what we're working on and where you can help.

Not sure how to get started? You can:

Review the Architecture and Development documentation for more information on how Flipt works.


Contributors ✨

Thanks goes to these wonderful people (emoji key):


Aaron Raff

💻


Rodrigo Chacon

💻


Christopher Diehl

💻


Andrew Z Allen

📖


Sebastien Armand

💻


Dat Tran

💻


Jon Perl

⚠️ 💻


Or Elimelech

💻


giddel

💻


Eduardo

📖 💻


Itai Schwartz

💻


Ikko Ashimine

📖


Márk Sági-Kazár

💻


Dan Piet

💻


Amay Shah

💻


kevin-ip

💻


albertchae

💻


Thomas Sickert

📖


Jameel Al-Aziz

📦


George

💻


Chase Pierce

💻


ITO Shogo

⚠️


Yoofi Quansah

💻


Darin McLain

💻


Adam Weiss

💡


Yuval Goihberg

🎨


David Stotijn

💻


Matthew Notarangelo

💻


Charles OConor

📖


Andrew Hobson

💻


Rudinei Goi Roecker

💻


guangwu

💻


Collin Driscoll

💻


James

💻


legoheld

💻


Akshay Nair

💻


Roman Dmytrenko

💻


Mattia Forcellese

💻


Mohammed El Amine Rhazzar

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.