Skip to content

flagbase/flagbase

Repository files navigation

Flagbase.com

Status GitHub PRs Welcome Build Commits

Flagbase: Democratizing Feature Management

Flagbase is an open-source feature management platform, allowing you to manage, track and deliver feature flags to all your applications, in real-time. Flagbase was built with performance in mind, whilst being simple to use.

Flagbase offers these three key features:

  • Workspace / Projects / Environments
  • Feature Flags / Advanced Targeting
  • Segments for reusable targeting
  • Custom IAM roles and policies

Integrating Flagbase in your application is super simple. Get started by following our Quick Start Guide today!

Features

Whilst Flagbase is quite minimal at its core - its extendable nature allows you to tailor it your organisation's needs.

Below are some of the features Flagbase offers:

Intuitive Targeting

Flagbase uses a percentage-based targeting system by default - allowing you to incrementally release you feature to a particular segment of your users over time. Targeting demo

Client and Server SDKs

Flagbase offers client-side and server-side SDKs for feature flagging. Client-side SDKs, embedded in client applications, personalize features for end-users but may have slower performance. Server-side SDKs handle server-to-server communication, maintain security, and are designed for high traffic and scalability.

Client SDK Server SDK

Well-designed Resource Hierarchy

Flagbase's resource hierarchy consists of instances, access, workspaces, projects, environments, flags, identities, segments, and targeting. An instance is a single Flagbase core installation using a shared PostgreSQL database. Access refers to key/secret pairs restricting operations on resources. Workspaces group projects, while projects contain flags and segments across multiple environments. Environments represent different targeting states. Flags determine feature states, while identities are flag observer/consumers. Segments group users based on traits, and targeting rules map conditions to flag variations within specific environments.

Resource Hierarchy

Other Features

  • Multiple transports (HTTP long-polling, SSE)
  • Robust Identity & Access Management (IAM) that uses a hybrid RBAC/ABAC design policy based access control
  • Extend to use additional contextual data from flag evaluations, using your own data sources
  • Self hosted: can be provisioned to the cloud of your choice or run on-prem

Getting started

Flagbase is very easy to get up and running. Follow our quick start guide to get up an running:

  1. Set up the core: provision the service on server(s). You can use your preferred cloud vendor.
  2. Integrate to your application: use the SDK in your application to wrap features you want to control remotely.
  3. Configure targeting: set up your flag's targeting rules so users see feature variations intended for them.

That's it! Now your ready to release your feature code - knowing that you'll be able to turn it off anytime 🚀

Directories

This monorepo contains the code for Flagbase Core, UI & SDKs.

  • /core: Code for flagbased, the service used to manage protected resources and stream feature flags to the SDKs. This service can be run in multiple worker modes, including poller, streamer and API.
  • /sdk: SDKs retrieve and evaluate feature flags from the service.
  • /ui: UI interacts with the Core API. It is used to manage resources (e.g. workspaces, projects, environments, flags, etc).
  • /website: Code for flagbase.com, build using Docusaurus.

Support

Please raise an issue and label it with help wanted or question for any help.

Contributing

We encourage community contributions via pull requests. Before opening up a PR, please read our contributor guidelines.

Join us on Github Discussions.

  • Announcements: General PSAs & feature updates
  • Development: Where contributors discuss ideas
  • Help: Stuck on something? Ask for help here 😄

Roadmap

Flagbase's roadmap consists of our step-by-step plan made up of different parts:

  • Roadmap
    • Goals: big things we want to achieve
    • Objectives: smaller goals that help reach the big ones
    • Tasks: to-do items that explain what needs to be done to meet each objective

Other Resources

License

Mozilla Public License Version 2.0, see LICENSE