Browsing the catalog
The marketplace web app is a read-only window onto the published index — every card you see is a rendered feature contract.
Table of contents
The catalog
The landing page is a grid of every indexed feature with a free-text search box and two filters:
| Filter | Values | Comes from |
|---|---|---|
| Archetype | full, light, service, config |
Derived by source analysis when the contract is generated |
| Category | e.g. content, infrastructure, integration |
The category field authors set once in the contract (preserved across regeneration) |
The free-text search matches name, repo, description and tags. The same
query semantics are available offline in the CLI via
feature:search.
Better search, automatically
The catalog searches in memory by default. When the product also installs
the elasticsearch feature, the marketplace transparently upgrades to
full-text search with fuzzy matching and relevance ranking — no
configuration, no code change. This is a soft dependency: the
marketplace only tries to use ElasticsearchService and falls back
silently when it is absent or unreachable. (See
dependency kinds for how
soft dependencies work.)
The feature sheet
Clicking a feature opens its full sheet — the complete contract, plus everything the indexer computed around it:
- What it provides — routes, blueprints, models, services, hooks, signals, commands, translations and Docker services.
- Hard requirements —
requires.features: features that must be in the product or this one breaks.feature:installenforces these. - Works better with —
requires.features_optional: soft dependencies the feature degrades gracefully without (e.g. a public site that shows events only when the events feature is installed). Shown for guidance, never enforced. - Used by — reverse dependencies: which indexed features require this one.
- Collisions — features that provide the same route, service or model
and therefore cannot coexist in one product unless the SPL puts them in
an
alternativegroup. - Distribution — latest released tag, whether the package is on PyPI, and the source repository.
- Install command — the exact
feature:installline to copy.
The CLI equivalent of the sheet is feature:info.
Product lines
The Product lines page lists every SPL in the index with its parsed
variability model: mandatory features, optional features, and
alternative groups (pick at most one — e.g. session_filesystem vs
session_redis). When the marketplace product also installs the
configurator feature, each line shows a Configure this line action that
opens the configurator — another soft
dependency: without it, the page simply renders without the button.