Skip to main content

Component Framework — Canonical Taxonomy

Canonical folder structure, per-component file listing, decision rules, and JSDoc standard for snippets/components/. This is the primary reference for authoring and governing components in the Livepeer Docs v2 library.

Folder Taxonomy

Tier 2 companion files (props-extracted components) live adjacent to their MDX pages, not here: v2/[section]/[page-slug]-data.json — same slug as the page, with -data suffix. Written at page-authoring time; see @aiDiscoverability section below.

Decision Rules

Component Counts

Component JSDoc header standard

Every exported component must include a JSDoc header block with these 7 core tags. Hook-using components additionally require @aiDiscoverability. No other governance tags should be used — removed tags (@owner, @category, @tier, @contentAffinity, @decision, @duplicates, @lastMeaningfulChange, @breakingChangeRisk, @dependencies, @usedIn) must not appear.

Tag reference

After the header block, each prop gets a standard @param:

Removed tags (must not appear)

@status values

@accepts values

List which extensibility props the component supports:

@aiDiscoverability values

Required on any component that uses React hooks (useState, useEffect, useRef, etc.). Not required on pure/presentational components. How it works in Mintlify: .json files placed alongside .mdx pages in v2/ are served as static assets at their URL path. A file at v2/developers/glossary-data.json is accessible at https://[domain]/v2/developers/glossary-data.json and readable by AI crawlers, agents, and LLM pipelines without any build config. Write-time obligation: any author or agent writing a page that uses a props-extracted component must create the companion .json alongside the MDX.

Example headers

Element:
Wrapper:
Integrator (snapshot — external fetch):
Hook-using wrapper (props-extracted — interactive UI hides data):
Scaffolding:
Last modified on May 22, 2026