Skip to the content.

In-app gallery and technical docs

The Nuxt app exposes two browse hubs that share the same pattern: a root page, a grid or feed, and filter / group controls.

Route Role Chrome
/gallery Social-style sample feed (reels, stills, code, diagrams) Primary nav label Gallery
/docs Technical documentation sourced from the repo docs/ markdown tree Work sub-nav (AppWorkSubNav) — not in AppPrimaryNav
/docs/... Individual spec / runbook rendered from that markdown Linked from the docs catalog; Work sub-nav stays on Work pages only

Public primary rail is Work / About / Gallery / Writing / Code. Docs, AI Lab (/ai-lab), and Process (/process) live under Work — see portfolio-august-launch.md.

Content lives in core/web/content/gallery.json (Nuxt Content gallery collection). Posts are flattened from categories into a feed:

Helpers: core/web/shared/gallery-types.ts (resolveGalleryAspect, resolveGalleryPlatform, galleryEngagementLabel, GALLERY_PLATFORM_LABEL). Exhibit rendering: app/components/gallery/.

SSR / script-setup contract: Pug templates must not call those helpers on _ctx. Bind them in <script setup> (e.g. gridTiles computed that maps posts → { aspect, engagement, platform }) so Nuxt SSR does not warn about missing instance properties.

Technical documentation

Markdown under repo docs/ is ingested in place by the docs collection (REPO_DOCS_DIR in core/web/shared/docs-source.ts). Do not copy or move those files into core/web/content/. Editing a file under docs/ updates both GitHub/Pages sources and the next Nuxt Content build for in-app /docs.

Whenever those pages change, follow the documentation sync checklist (catalogs, related hubs, and matching inline comments).

At build time Nuxt Content parses the tree into the Content SQLite dump. Lambda (SYS_ENV=test / production) and Docker local/dev images restore that dump from host .output/<sysEnv> — the original .md files are not required on the runtime image. Dockerfile.app copies that output tree; it does not COPY docs or rebuild Nuxt.

Excludes: Jekyll index.md / _*.md, design-history superpowers/ and plans/. The in-app catalog groups by path prefix (App, Agents, Packages, Developer tooling, Ops & delivery).

UML-style diagrams:

See architecture.md for the diagram hub (C4, API UML, wireframes, sequences).

Fetch path: fetchContentCollection('docs', { mode: 'all' | 'first', path }) — same Nitro API as other collections. Do not call client queryCollection().