Featurevisor

Project

Frequently asked questions

Find answers to common questions about adopting, operating and contributing to Featurevisor.

Is Featurevisor free?

It is an open source project, released under the MIT licence. You can use it for free.

Why is it free? Where's the catch?

There is none. Featurevisor started as a developer's experiment in how far declarative files in a Git repository could go for feature management.

It worked for its author, and it might work for you too.

Is there any UI for managing features?

Featurevisor is a tool for developers, and its whole workflow is based on a Git repository. It follows the principles of Infrastructure as Code.

You change definitions by editing files, in YAML or JSON, and committing them to Git.

Catalog is a website for browsing definitions, their relationships, tests and Git history, but not for editing them. Run it locally or export it for internal hosting.

Should I use Featurevisor?

Featurevisor fits teams that want to manage feature flags, experiments and configuration through Git review and automated checks.

Other stakeholders can browse definitions and tests in Catalog, edit files in their Git host's browser interface and propose changes for review. They still need to understand the definition format and your team's approval process. See the GitOps guide.

If your team needs a managed editing interface that hides the definition format and repository workflow, another tool may be a better fit.

Will Featurevisor ever target nontechnical people?

Featurevisor's authoring workflow is aimed at developers who work with Git. Changes are made through files and code review. The Catalog gives other stakeholders a read only view of definitions, tests and history.

Can I switch from another SaaS to Featurevisor?

Yes. Featurevisor does not have a tool to import features and experiments from another service yet, so you recreate them as definitions.

Can I switch to another tool or SaaS later?

Everything lives in your own repository, so you can move to another tool or service at any time. Nothing locks you in, and the migration is yours to run.

Do you accept donations?

No, but thank you for thinking of it. Featurevisor is built in evenings and weekends, for fun and to learn, and not to make money.

Can I contribute to Featurevisor?

Yes. Read the contribution guidelines.

Does my application need Node.js?

No. Node.js is required for the Featurevisor CLI used to author, validate and build your configuration. Your application evaluates the resulting JSON datafiles using an SDK for its language, without running the Node.js CLI in production.

Are datafiles secret?

No. Treat datafiles delivered to browsers or mobile applications as public: users can inspect their definitions and values. Do not put credentials or other secrets in them. Keep sensitive configuration on your server, and enforce authorization there rather than relying on a client feature flag.

How quickly do changes reach users?

A change reaches users once it is built into a datafile, deployed, and loaded by their application. The delay depends on your CI pipeline, your cache settings and how often applications refresh, which Deployment compares. The SDK evaluates the datafile it already holds, and never fetches one per decision. A datafile bundled with an application changes only with a new release, unless the application also refreshes it.

How large can a project get?

There is no single capacity figure that applies to every project. Definition size, dependency graphs, test coverage and application constraints all affect the cost of building and evaluating your configuration. Measure build time, datafile size, memory use and evaluation time with your own definitions and target devices.

Use targets to select the definitions each application needs. Required dependencies are included too, so measure the generated result rather than only counting selected features. Catalog stores its browsing data in blocks and loads details as needed. This storage is separate from the JSON datafiles consumed by SDKs.

Why does my feature return an unexpected result?

Follow Troubleshooting to compare context, prerequisites, target selection and loaded datafiles. Run lint before test when checking definition or test specification changes.

Previous
v2