A scalable, high-performance feature management and progressive experimentation platform

Overview

Introduction & Our Philosophy

stars License Angular slack-community

FeatBit is a scalable, high-performance Feature Management and Progressive Experimentation platform.

Feature Management use cases: Trunk-based development, Testing in production, Progressive & Targeted release, Kill switches, Faster incident resolution, Data & Cloud Migration, etc.

Progressive Experimentation, which provides the ability to get online and offline feedback as quickly as possible. Use cases: Beta testing and qualitative feedback, Experimentation and A/B testing.

Our Philosophy

Empower All teams to Deliver, Control and Experiment with their software.

◆ Progressively delegating the control of a feature to the owner that is most closely responsible for the outcome.

◆ Less self-developed, more reusable open source software.

Getting Started

The project is under code refactoring. An update will be coming soon.

Documentation & Communities

◆ View the FeatBit Docs for info on how to use and develop with FeatBit.

◆ Join FeatBit Slack Community if you get stuck, want to chat, or are thinking of a new feature.

◆ Join FeatBit Github Discussions, this is a place to ask questions to the community and make suggestions to the team. You can react to comments just like issues and you can even create threads! It's also an alternative to Slack.

Useful links

FeatBit Roadmap - Looking for a feature? It might already be planned for release. You can also vote for the feature you care mostly.

Release Notes - Find out what changes we are making and how we are improving FeatBit.

Code of conduct - How we promote and maintain a harassment-free experience for everyone in our community.

Tech Stack

Architecture - Architecture of FeatBit.

Benchmark - More detailed reports on FeatBit's benchmark test.

Contribute to FeatBit

Building FeatBit is a collaborative effort, and we owe a lot of gratitude to many smart and talented individuals. Building it together with community ensures that we build a product that solves real problems for real people. We'd love to have your help too: Please feel free to open issues or provide pull requests.

License

FeatBit is under the MIT license. See the LICENSE file for details.

Comments
  • [Bug]: Can access and login only on localhost but login from another machine login generate an error

    [Bug]: Can access and login only on localhost but login from another machine login generate an error

    Contact Details

    [email protected]

    What happened?

    I ran the docker compose all containers up and running and I was able to log on the machine using http://mysevername:8081. When I try same thing but from another machine, I get the login page but when I enter login and password, it indicates has happened and get stuck on the login page

    To Reproduce

    1. On the local machine visit http://myhostname:8081 (not localhost)
    2. Login page is displayed
    3. after entering credentials I get into the site
    4. go to another machine in the same LAN, use the same URL and credentials
    5. click on login
    6. error happened and screen gets stiuck on the login page I used 2 different browsers, firefox as well as Edge

    Expected behavior

    No response

    Screenshots

    on local machine where containers run

    image

    from remote machine

    image

    Browsers

    Firefox Edge

    Additional context

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug good first issue 
    opened by eliassal 10
  • 📖 docs: add design contribution guidelines

    📖 docs: add design contribution guidelines

    Hey there.

    I really loved using FeatBit and thought you might be open for not only code but also design contributions. Designers would require a little bit of a different context than engineers so I wanted to prepare these docs for you and get the project listed at https://contribute.design to get visibility across designers.

    I'm not 100% sure about the flow I'm proposing and the design relevant materials you potentially already have – so feel free to change or propose changes :)

    documentation design 
    opened by fivenp 4
  • ✨ User & Organization & IAM Part-1

    ✨ User & Organization & IAM Part-1

    this pr constains two parts

    Part 1: Seed and Get

    1. setup
    • AutoMapper
    • seed user
    • seed organization
    • seed organization user
    • seed project
    • seed environments
    • seed group
    • seed group member
    • seed policy
    • seed group policies
    1. user
    • get profile
    1. organization
    • get by id
    • get organization list for current user
    1. project
    • get by id
    • get organization project list
    1. member
    • get member
    • get member list
    • get member groups
    • get member policies
    • get member direct policies
    • get member inherited policies
    1. group
    • get group
    • get organization groups
    • check group name is used
    • get group members
    • get group policies
    1. policy
    • get policy
    • get organization policy list
    • check policy name is used
    • get policy groups
    • get policy members
    UI API 
    opened by deleteLater 2
  • ✨ Login By Password Api

    ✨ Login By Password Api

    this pr contains these changes

    • [x] setup MediatR & FluentValidation
    • [x] setup api global exception handling middleware
    • [x] implementation
    • [x] unit tests
    • [x] integration tests
    • [x] consistent api response
    • [x] api versioning
    API 
    opened by deleteLater 2
  • [Bug]: Organization creator don't have permissions to manage IAM

    [Bug]: Organization creator don't have permissions to manage IAM

    What happened?

    After I create a new organization, I don't have the permissions to manage its IAM.

    To Reproduce

    1. Create a new organization
    2. Click IAM/Team menu
    3. A warning message says that I don't have permissions to take this action

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug 
    opened by deleteLater 1
  • [Bug]: lacking Go SDK sample  in docs

    [Bug]: lacking Go SDK sample in docs

    Contact Details

    No response

    What happened?

    On this page, Go SDK has listed. image

    When I clicked the link, the below page was shown. image

    Plus, Sidebar also lacks Go SDK demo. image

    To Reproduce

    see https://featbit.gitbook.io/docs/getting-started/4.-connect-an-sdk/server-side-sdks#go

    Expected behavior

    No response

    Screenshots

    No response

    Browsers

    No response

    Additional context

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug documentation good first issue 
    opened by wenfengwang 1
  • [BUG] The container name/port may conflict when user run docker-compose up -d

    [BUG] The container name/port may conflict when user run docker-compose up -d

    Describe the bug
    When user try our system with docker-compose up -d, container name/port may conflict

    To Reproduce Steps to reproduce the behavior

    # create a redis container named 'redis' and bind port 6379 to it
    docker run -d -p 6379:6379 --name redis redis
    
    # change directory to featbit
    cd featbit
    
    # up featbit
    docker-compose up -d
    

    we can see this error Error response from daemon: Conflict. The container name "/redis" is already in use by container "74d8d135781f10e373849e6c24bde7a6cbb37d55443eae87b31bae79791217e8". You have to remove (or rename) that container to be able to reuse that name.

    Expected behavior featbit system should be launched

    enhancement 
    opened by luluchou 1
  • ✨ ui/ux improvements for Sprint 3

    ✨ ui/ux improvements for Sprint 3

    implement some ui improvements:

    • [x] add flag key tooltip
    • [x] let targeting page tooltips more user-friendly
    • [x] archive, restore, delete flag in flags list
    • [x] remove archive button from flag details page
    • [x] save flag variations with new button
    • [ ] update picture in docs

    other:

    • [x] fix i18n warnings
    UI 
    opened by deleteLater 1
  • 📖 🏗 🔧Enable access of interactive demo hosted in remote server

    📖 🏗 🔧Enable access of interactive demo hosted in remote server

    "3. Try interactive with demo" button in "Quick start guide" is a dynamic link which is composed by :

    • Demo's remote server URL (which should be configurable).
    • Environment secret of current environment in Portal.
    • Evaluation server url which demo can communicate with for its FeatBit SDK.

    image

    So:

    1. I modified the code which recomposes the link of "3. Try interactive with demo" button.
    2. I added configurable params in environment.ts and environment.prod.ts. Because demo's url and evaluation server are different and depend on how users construct their network.
    3. I updated docker-compose-dev.yml file that we can pass two enviroment's params from docker-compose.

    PS: I also added the number before each "Get Started" item. This is feedback from testing users. image

    documentation demo 
    opened by cosmic-flood 1
  • ✨ feature flag part-2

    ✨ feature flag part-2

    todo apis:

    1. feature flag
    • [x] update settings
    • [x] update variations
    • [x] check if key has been used
    • [x] un-archive flag
    • [x] update targeting
    • [x] copy flag to another env
    • [ ] tag tree
    1. triggers
    • [x] get triggers by target id
    • [x] create trigger
    • [x] update trigger
    • [x] reset trigger token
    • [x] delete trigger
    • [x] run trigger
    1. segment
    • [x] get flag references

    refactoring:

    • add service base interface
    UI API 
    opened by deleteLater 1
  • ✨ feature flag part-1

    ✨ feature flag part-1

    todo apis:

    • [x] get feature flag list
    • [x] get flag by key
    • [x] create flag
    • [x] archive flag
    • [x] delete flag
    • [x] flag tags
    • [x] update setting
    • [x] update targeting rules
    UI API 
    opened by cosmos-explorer 1
  • [Bug]: Feature flag history tab content cannot scroll

    [Bug]: Feature flag history tab content cannot scroll

    What happened?

    Feature flag history tab content cannot scroll

    To Reproduce

    1. Go to feature flag tageting page
    2. Modify the feature flag multple times to have enough history items
    3. Go to history tab
    4. All history items are not visible if it has more than one page

    Expected behavior

    We should be able to scroll page to see all items

    Additional context

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug 
    opened by cosmos-explorer 0
  • [Bug]: User Key in ASCII charset.

    [Bug]: User Key in ASCII charset.

    Contact Details

    No response

    What happened?

    User Key is converted to ASCII characters in the rollout algorithm. There would be a prob if User Key contains special characters

    To Reproduce

    1. Go to...

    Expected behavior

    No response

    Screenshots

    No response

    Browsers

    No response

    Additional context

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    bug 
    opened by dsun0720 0
  • .NET SDK

    .NET SDK

    Discussed in https://github.com/orgs/featbit/discussions/113

    Originally posted by MOGUIJOE November 22, 2022 You guys are good at Dot NET. Why don’t you provide a .NET SDK ?

    design 
    opened by cosmic-flood 1
Releases(1.1.2)
  • 1.1.2(Dec 19, 2022)

    What's Changed

    • ✨refactor auditlog to component by @cosmos-explorer in https://github.com/featbit/featbit/pull/159
    • 🐛 The docker container name may be conflict by @deleteLater in https://github.com/featbit/featbit/pull/166
    • 🐛 cannot save flag change by @deleteLater in https://github.com/featbit/featbit/pull/172
    • 🏗 always use latest image by @deleteLater in https://github.com/featbit/featbit/pull/174

    Full Changelog: https://github.com/featbit/featbit/compare/1.1.1...1.1.2

    Source code(tar.gz)
    Source code(zip)
  • 1.1.1(Dec 13, 2022)

    Bug Fixes

    • 🐛Fixed bug: the targeting user name and segment name not displayed in audit log page https://github.com/featbit/featbit/pull/158

    Full Changelog: https://github.com/featbit/featbit/compare/1.1.0...1.1.1

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Dec 12, 2022)

    What's New

    • ✨ UI/UX improvements by @deleteLater in https://github.com/featbit/featbit/pull/133
    • ✨ Audit Log by @cosmos-explorer and @deleteLater in https://github.com/featbit/featbit/pull/142
    • 📖 Make README.md more beautiful and useful by @cosmic-flood
    • ✨ Python SDK by @dsun0720

    Bug Fixes

    • fixed delete member failed #126
    • fixed metric must not be removed if it is referenced by experiments https://github.com/featbit/featbit/issues/137
    • fixed experiment drawer won't close when user clicks mask #144
    • fixed can't create a feature flag that contains '%' in name #153
    • fixed cannot find users in segment individual list #154

    New Contributors

    • @fivenp made their first contribution in https://github.com/featbit/featbit/pull/132

    Full Changelog: https://github.com/featbit/featbit/compare/1.0.1...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Nov 29, 2022)

  • 1.0.0(Nov 28, 2022)

Owner
null
Maintain your API development, documentation and experimentation all within your codebase.

dostman Maintain your API development, documentation and experimentation all within your codebase. This project is a new release! Feel free to contact

Ege Çavuşoğlu 16 Mar 11, 2022
The LMS (Life Management System) is a free tool for personal knowledge management and goal management based on Obsidian.md.

README Documentation | 中文帮助 The LMS (Life Management System) is a tool for personal knowledge management and goal management based on Obsidian.md. It

null 27 Dec 21, 2022
Cross platform UI controls for progressive web and hybrid apps (plain JS, jQuery, Angular and React)

Mobiscroll What is Mobiscroll? Mobiscroll is a UI library for progressive webapps and hybrid development. Created with a lot of attention to usability

Mobiscroll 1.5k Dec 31, 2022
A framewok for building efficient and scalable, cross-platform bots (WhatsApp, Discord, Telegram and more) in a single codebase

project... An over-engineered all-in-one bot framewok for building efficient and scalable bots. Yep that's not a typo u heard it right "scalable bots"

Shubham Badgujar 6 Dec 24, 2022
High performance and SEO friendly lazy loader for images (responsive and normal), iframes and more, that detects any visibility changes triggered through user interaction, CSS or JavaScript without configuration.

lazysizes lazysizes is a fast (jank-free), SEO-friendly and self-initializing lazyloader for images (including responsive images picture/srcset), ifra

Alexander Farkas 16.6k Jan 1, 2023
AppRun is a JavaScript library for developing high-performance and reliable web applications using the elm inspired architecture, events and components.

AppRun AppRun is a JavaScript library for building reliable, high-performance web applications using the Elm-inspired architecture, events, and compon

Yiyi Sun 1.1k Dec 20, 2022
A Foundation for Scalable Cross-Platform Apps

Electron React Boilerplate uses Electron, React, React Router, Webpack and React Fast Refresh. Install Clone the repo and install dependencies: git cl

Electron React Boilerplate 20.7k Jan 4, 2023
🔑 Keagate is an open-source, high-performance alternative to popular cryptocurrency payment gateways such as Coinbase Commerce, CoinGate, BitPay, NOWPayments, CoinRemitter, CoinsPaid and more.

⛩️ Keagate – A High-Performance Cryptocurrency Payment Gateway ?? This project is actively in development ?? Table of Contents About the Project Purpo

null 76 Jan 3, 2023
An ultra-high performance stream reader for browser and Node.js

QuickReader An ultra-high performance stream reader for browser and Node.js, easy-to-use, zero dependency. Install npm i quickreader Demo import {Quic

EtherDream 156 Nov 28, 2022
👑 A tiny yet powerful tool for high-performance color manipulations and conversions

Colord is a tiny yet powerful tool for high-performance color manipulations and conversions. Features ?? Small: Just 1.7 KB gzipped (3x+ lighter than

Vlad Shilov 1.2k Jan 3, 2023
High performance personalization & a/b testing example using Next.js, Edge Middleware, and Builder.io

Next.js + Builder.io Personalization & A/B Testing with Edge Middleware This is a fork of Next.js Commerce with Builder.io integrated and using Edge M

Builder.io 7 Sep 6, 2022
High performance JSX web views for S.js applications

Surplus const name = S.data("world"), view = <h1>Hello {name()}!</h1>; document.body.appendChild(view); Surplus is a compiler and runtime to all

Adam Haile 587 Dec 30, 2022
Crawler Crypto using NodeJS for performance with Elasticsearch DB for high efficiency.

Coin crawler - Coingecko version Crawler using NodeJS for performance with Elasticsearch DB for high efficiency. Requirements For development, you wil

Minh.N.Pham 1 Jan 20, 2022
High performance (de)compression in an 8kB package

fflate High performance (de)compression in an 8kB package Why fflate? fflate (short for fast flate) is the fastest, smallest, and most versatile pure

null 1.4k Dec 28, 2022
startupDB is an Express middleware function implementing a high-performance in-memory database

startupDB startupDB is a database designed to create REST APIs. It is implemented as an Express middleware function and allows for easy implementation

Jeroen de Vries 8 Jul 26, 2022
high performance、complex interaction table

功能描述 1、高性能、满足复杂交互的编辑表格 2、基于: antd4(https://ant.design/index-cn) ag-grid(https://www.ag-grid.com/) 3、基于原生ag-grid 的API进行封装 一、主要功能 将按下列顺序逐步迭代 1、通用编辑功能 ??

wheel-team 4 Feb 15, 2022
High performance JavaScript templating engine

art-template English document | 中文文档 art-template is a simple and superfast templating engine that optimizes template rendering speed by scope pre-dec

糖饼 9.7k Jan 3, 2023
The brand new @shopify/flash-list high performance list component can be used on TV as well as on phones!

FlashListTV The brand new @shopify/flash-list high performance list component can be used on TV as well as on phones! Quick start: Clone this repo Cha

Douglas Lowder 4 Oct 27, 2022
A TypeScript implementation of High-Performance Polynomial Root Finding for Graphics (Yuksel 2022)

Nomial Nomial is a TypeScript implementation of Cem Yuksel's extremely fast, robust, and simple root finding algorithm presented in the paper "High-Pe

Peter Boyer 10 Aug 3, 2022