Getting Started

To get started follow these simple steps.

  1. Open the Config application
  2. Create Environments and Features in the app
  3. Generate credentials for uploading from the app based on your provider of choice
  4. Install a client library for your language
  5. Wrap functionality in a "should"

Client Libraries

The magic happens inside of the client libraries. They consume the static json config and perform all the significant logic. We are adding new client language support as fast as we can.

Don't see your language? Help us decide by voting with a thumbs up on the Github Project.

Config Schema

This is what the json payload schema looks like.

environments: {
[environmentName: string]: {
[featureSetName: string]: { // currently hardcoded to "untagged"
[featureName: string]:
| VexillaToggleFeature
| VexillaGradualFeature
| VexillaSelectiveFeature;

Feature Types

Other feature types are being considered.

enum VexillaFeatureType {
TOGGLE = "toggle",
GRADUAL = "gradual",
SELECTIVE = "selective",
interface VexillaToggleFeature {
type: VexillaFeatureType.TOGGLE;
value: boolean;
interface VexillaGradualFeature {
type: VexillaFeatureType.GRADUAL;
value: number;
seed: number;


Here you can find patterns, recommendations, examples for how to use Vexilla to accomplish your goals.

Have a recipe you want to add? Let us know in a Github Issue or PR.

We are looking to improve our documentation all the time. Help us out by making suggestions.