• Stars
    star
    209
  • Rank 188,325 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 1 year ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Git-based feature flags and experimentation management solution for developers

Featurevisor

Feature management for developers

Manage your feature flags and experiments declaratively from the comfort of your git workflow.


What is Featurevisor?

Featurevisor is a solution for managing your feature flags, experiments, and remote config. It's built for developers, by developers.

It introduces a workflow that's fully git-based, where configuration is stored as YAMLs and changes are reviewed and merged via pull requests.

The workflow results into datafiles (JSON files), that contain your feature configurations. These datafiles can then be fetched by your applications and evaluated using Featurevisor SDKs.

More documentation available at https://featurevisor.com.

Quick start

You are recommended to see a more detailed quick start guide here: https://featurevisor.com/docs/quick-start/.

The whole process can be broken down into 3 parts:

Part 1: Create a Featurevisor project

Install Featurevisor CLI globally (or use npx @featurevisor/cli):

$ npm install -g @featurevisor/cli

Initialize a new Featurevisor project:

$ mkdir my-featurevisor-project && cd my-featurevisor-project
$ featurevisor init

You can now create and manage your feature flags, experiments, and remote config in this directory expressed as YAMLs.

See the building block guides here:

  • Attributes: building block for conditions
  • Segments: conditions for targeting users
  • Features: feature flags and variables with rollout rules

Part 2: Build and deploy datafiles

Once the project is ready, you can build your datafiles (JSON files containing configuration of your feature flags):

$ featurevisor build

You will find the output in dist directory, that you can upload to your CDN.

See further guides here:

A fully functioning example for deploying with Cloudflare and GitHub Actions (for free) is available here.

Part 3: Consume datafiles with Featurevisor SDKs

You can now consume the datafiles from your CDN in your applications directly using Featurevisor SDKs.

For Node.js and browser environments, install the JavaScript SDK:

$ npm install --save @featurevisor/sdk

Now you can initialize the SDK with the URL of your datafile, and evaluate your feature flags:

import { createInstance } from "@featurevisor/sdk";

// Initialize the SDK
const sdk = createInstance({
  datafileUrl: "https://cdn.yoursite.com/datafile.json",
  onReady: () => console.log("Datafile has been fetched and SDK is ready"),
});

// Evaluate a feature flag
const isFeatureEnabled = sdk.getVariation(
  // feature key
  "my-feature",

  // attributes
  {
    userId: "user-123",
    country: "nl",
  }
);

Learn more about SDK usage here: https://featurevisor.com/docs/sdks/.

Packages

Package Description
@featurevisor/cli CLI package
@featurevisor/core Core package used by CLI
@featurevisor/react React package
@featurevisor/sdk Universal SDK for both Node.js and browser
@featurevisor/site Static site generator for your project
@featurevisor/types Common typings
@featurevisor/vue Vue.js package

License

MIT Β© Fahad Heylaal

More Repositories

1

proppy

Functional props composition for UI components (React.js & Vue.js)
TypeScript
939
star
2

singool

Backbone.js based framework for developing single-page web applications
CoffeeScript
190
star
3

firenze

Adapter based JavaScript ORM for Node.js and the browser
JavaScript
131
star
4

tydel

Typed Models & Collections for JavaScript data structure
JavaScript
37
star
5

shape.less

πŸ”Ά Collection of LESS mixins for various shapes
CSS
36
star
6

huffer

Rapidly develop Ember.js applications with Grunt
CSS
18
star
7

cakephp-bower

🐀 CakePHP Plugin for Twitter Bower
PHP
17
star
8

clear_cache

CakePHP plugin/shell for deleting cache files
PHP
13
star
9

glob-run

Run multiple commands by glob patterns sequentially.
JavaScript
12
star
10

FontAwesomeFinder

AngularJS app for instantly searching FontAwesome icons
JavaScript
11
star
11

social_bookmarks

Croogo plugin for showing graphical social bookmark links
PHP
11
star
12

redux-boilerplate

Boilerplate generator for Redux
JavaScript
9
star
13

themes

Themes for Croogo CMS
PHP
9
star
14

markdown

Markdown plugin for Croogo
PHP
8
star
15

tydel-react

React.js bindings for Tydel
JavaScript
6
star
16

diyai

Dependency Injection in JavaScript/ES6
JavaScript
6
star
17

BowerPackages

AngularJS app for searching Bower packages
CoffeeScript
6
star
18

li3_css

Lithium library for introducing new CSS features
PHP
6
star
19

singool-tasks

Demo plugin built with Singool.js
CoffeeScript
5
star
20

get-params

Get a list of a JavaScript function's parameter names
JavaScript
4
star
21

crypto-js

CryptoJS for Browserify
JavaScript
4
star
22

droxit

create and sync Git repositories with Dropbox
Shell
4
star
23

winston-slack-hook

Slack WebHook transport for Winston logging library
JavaScript
4
star
24

frint-css-poc

CSS Modules PoC with FrintJS
JavaScript
4
star
25

cakephp-stitch

Stitch your JavaScript files as CommonJS for the browser
PHP
4
star
26

singool-cmsui

Experimental responsive CMS UI built in Singool.js
JavaScript
4
star
27

firenze-adapter-mysql

MySQL adapter for firenze.js ORM
JavaScript
3
star
28

wiki

Croogo's wiki
PHP
3
star
29

firenze-adapter-localstorage

localStorage adapter for firenze.js ORM
JavaScript
2
star
30

docume

Generate documentation in README from source files
JavaScript
2
star
31

firenze-adapter-sqlite3

SQLite 3 adapter for firenze.js ORM
JavaScript
2
star
32

material-design-variables

Google's Material Design colour variables
CSS
2
star
33

concat-from-list

Concatenate files listed in JSON/CSON file.
JavaScript
2
star
34

singool-js

Node module for Singool.js framework
CoffeeScript
2
star
35

run-scripts

Run multiple npm scripts sequentially in one go.
JavaScript
2
star
36

tydel-logger

Logger for Tydel
JavaScript
2
star
37

fahad19.github.com

1
star
38

firenze-adapter-memory

Memory adapter for firenze.js ORM
JavaScript
1
star
39

featurevisor-example-cloudflare

Featurevisor CI/CD example with GitHub Actions & Cloudflare Pages
JavaScript
1
star
40

firenze-behavior-slug

Slug behavior for firenze.js ORM
JavaScript
1
star
41

firenze-behavior-timestamp

Timestamp behavior for firenze.js ORM
JavaScript
1
star
42

short-name

Shorten long (human) names.
JavaScript
1
star
43

Sitemaps

Sitemaps plugin for Croogo
PHP
1
star
44

CroogoBot

IRC bot for Croogo
CoffeeScript
1
star
45

test

just for testing purpose
JavaScript
1
star
46

firenze-adapter-redis

Redis adapter for firenze.js ORM
JavaScript
1
star