Advanced
Catalog
Catalog is a static, read-only application for exploring the definitions, relationships, and Git history in a Featurevisor project.
It is implemented by the separate @featurevisor/catalog package and is available through the Featurevisor CLI.
What the Catalog contains#
Catalog reads your project through Featurevisor's configured datasource and makes these definitions browsable:
- features
- segments
- attributes
- targets
- groups
- schemas
- project and entity Git history
Test specs are included when Catalog maps relationships. Entity pages include their original definitions and relevant relationships. For example, a feature can show the segments, attributes, schemas, groups, targets, tests, and required features connected to it. Feature pages also provide dedicated views for variations, variables, rules, and force entries.
List pages expose useful metadata such as tags, environments, target membership, archived or deprecated status, usage counts, variations, variables, and the last change. Feature search supports qualifiers including:
tag:<tag>in:<environment>archived:trueorarchived:falsewith:variationsorwithout:variationsvariation:<value>with:variablesorwithout:variablesvariable:<key>
Projects using Sets get a separate Catalog view for every set, with a set switcher in the interface.
Local development#
Run Catalog without a subcommand while working on your project:
$ npx featurevisor catalogThis command:
- exports the Catalog application and project data;
- serves it at
http://127.0.0.1:3000/; - watches the project configuration and definition directories;
- rebuilds project data and reloads the browser when files change.
Use --port or its -p alias to choose another port:
$ npx featurevisor catalog --port=4000In this development mode, Catalog also detects supported local editors and can provide links that open an entity's source file directly.
Exporting#
Generate a deployable static Catalog:
$ npx featurevisor catalog exportThe output is written to the configured catalogDirectoryPath, which defaults to catalog/ in the project root. The export contains the compiled Catalog interface and generated JSON data. It does not require a running Featurevisor server.
The generated data includes a manifest, indexes, entity details, relationships, and paginated Git history. Re-running the command replaces the previous output.
To write somewhere else for a particular invocation:
$ npx featurevisor catalog export --outDir=./dist/catalogServing an export#
Serve the generated Catalog locally:
$ npx featurevisor catalog serveChoose another directory or port when needed:
$ npx featurevisor catalog serve --outDir=./dist/catalog --port=4000If the output directory does not exist, catalog serve exports it first. Unlike npx featurevisor catalog, the serve subcommand does not watch project files or enable live reload.
Hosting#
The exported directory can be deployed to any static hosting provider.
Catalog uses browser history routes by default. Configure the host to return index.html for application routes while continuing to serve /assets/ and /data/ files normally.
If the host cannot provide that fallback, export with hash routing:
$ npx featurevisor catalog export --hash-routerThe generated Catalog is read-only. Changes still belong in the Featurevisor project repository and should go through its normal review and deployment process.
Repository links and history#
Catalog reads Git history to show project and entity changes. When it recognizes a GitHub, GitLab, or Bitbucket origin remote, it also generates links to the repository, source files, and commits.
A remote is not required to generate or use Catalog. Without a recognized remote, repository links are simply omitted.
Output options#
| Option | Applies to | Description |
|---|---|---|
--outDir=<path> | all Catalog commands | Override catalogDirectoryPath for this invocation |
--port=<number> or -p <number> | catalog and catalog serve | Serve on another port instead of 3000 |
--hash-router | catalog and catalog export | Generate routes suitable for hosts without an HTML fallback |
--no-assets | catalog and catalog export | Generate project data without copying the Catalog UI assets |
--no-assets is primarily useful for workflows that manage the compiled @featurevisor/catalog interface separately. A normal standalone deployment should include the assets.

