Architecture
graph LR
browser[Browser] --> content[content-adapter-htmx]
content -->|Content port| markdown[content-markdown]
markdown --> files[(docs/**.md)]
browser -->|HTMX| catalog[catalog-adapter-htmx]
catalog -->|Catalog port| ts[(registry_crates)]
browser -->|HTMX| showcase[showcase-adapter-htmx]
showcase -->|Showcase port| apps[(showcase_apps)]The slices
docs-v2/
crates/content-contract/contractPages, navigation, search, Content and PageRepositorycrates/content-markdown/implementationMarkdown files as the page storecrates/content-adapter-htmx/adapterShell, routes, markdown to HTML, searchcrates/catalog-contract/contractCrate entries and the catalog viewcrates/catalog-timescale/implementationregistry_crates over TimescaleDBcrates/catalog-adapter-htmx/adapterThe crate catalog fragmentcrates/showcase-contract/contractApplication entries and the showcase viewcrates/showcase-timescale/implementationshowcase_apps over TimescaleDBcrates/showcase-adapter-htmx/adapterThe application showcase fragmentservers/web/compositionProviders, migrate/seed, router merge, assetsReading the wiring
Adapters never import implementation slices: the catalog fragment is fetched by
HTMX from the catalog adapter's own endpoint, so the content shell and both
registries stay independent. The page you are reading is markdown served by
the content slice; the cards that led you here came from
showcase-contract → showcase-timescale.