Context
We want a single wiki-style viewer that surfaces everything in this monorepo — formal specs, ADRs, research, meeting notes, BMAD-synced stories — with the feel of a digital garden (Wikipedia, Andrej Karpathy’s notes, Google Brain research wikis). Specifically:
- Backlinks and a graph view — so readers can see how decisions, research, and specs connect.
- Full-text search — across the whole corpus.
- Plain
.mdworkflow — multiple AI agents from four team members will write concurrently. Every extra authoring step (MDX, custom components, proprietary syntax) creates drift. - Wikilinks
[[slug]]— slug-based so files can move without link rot. - Vercel deploy — existing infra, no new platform.
- Free — small team, no SaaS budget yet.
A custom vanilla-JS SPA already lived in both old repos at /app/ (marked.js + DOMPurify, 27 registered docs, BR-### auto-linking). It is fine for a small doc set but has no graph, no backlinks, no search, and will not scale to the combined knowledge base.
Evaluated options:
| Framework | Backlinks / Graph | Search | Vercel | Plain MD | Multi-agent |
|---|---|---|---|---|---|
| Quartz v4 | native (wikilinks, graph, backlinks, link previews) | Pagefind built-in | Native (official guide) | Obsidian-flavored .md | Excellent |
| Astro Starlight + starlight-site-graph | plugin-based | Pagefind | Native | .md + .mdx | Good |
| Docusaurus v3 | community plugins | Algolia/local | Works | Yes | Good |
| Fumadocs / Nextra | none native | Orama | Native | MDX-first | Good |
| Mintlify | none | Managed AI | Hosted-only | Proprietary | Editor-gated |
| Obsidian Publish | native | native | No | Vault-only | Not git-native |
We will use Quartz v4 as the wiki viewer. It is the closest match to the Karpathy/digital-garden feel, purpose-built for bidirectional links and graph views with zero configuration, free, open-source, and has an official Vercel hosting guide.
Decision
- Scaffold Quartz v4 at
apps/wiki/in this monorepo. - Configure
quartz.config.tsto pointcontentDirat../..(repo root) so the wiki indexesdocs/,decisions/,research/,meetings/,status/,prompts/,raw-dumps/without having to flatten them into a single folder. - Use ignore patterns to exclude
apps/,archive/,app/,flows-app/,presentation/,prototypes/,proposal/,templates/,meta/,node_modules/,.git/, and non-markdown files. - Enable the default layout components: Graph, Backlinks, TagList, Explorer, Search (Pagefind).
- Deploy to a separate Vercel project in Phase 2 on a new subdomain (tentative:
wiki.design.3sixtyone.co).
The existing custom SPA at app/ is marked for retirement once Quartz is live — but stays functional through Phase 1 so nothing breaks.
Alternatives considered
- Astro Starlight + starlight-site-graph plugin — strong runner-up. More flexible theme, official Vercel support. Rejected because graph/backlinks rely on a third-party plugin, the configuration surface is larger, and it nudges toward
.mdxwhich hurts multi-agent plain-MD workflow. - Evolve the existing vanilla-JS SPA (
app/) — zero migration. Rejected because we would have to build graph, backlinks, and search ourselves. More code to maintain as the knowledge base grows; agents must learn the customapp/app.jsdocument registry. - Docusaurus — mature, but no native graph/backlinks, heavier build, less digital-garden feel.
Consequences
Positive
- Graph view gives the user the birds-eye “what’s been done so far” surface they asked for.
[[wikilinks]]by slug mean files can move without breaking inbound links.- Pagefind search works offline, no Algolia account needed.
- Plain
.mdstays git-native — every agent can write without a build step.
Negative
- Quartz is Obsidian-flavored; we’ll need to nudge markdown style slightly (e.g.
![[image]]for embeds). - The theme is opinionated. Customising it to match
BRANDING.mdtokens is Phase 2 polish. - Custom SPA at
app/becomes redundant. Ship Phase 1 without retiring it (nothing breaks); retire in Phase 2 once Quartz is stable.
Follow-up
- Phase 2: deploy
apps/wiki/to Vercel on a new subdomain. - Phase 2: customise Quartz theme to use
BRANDING.mdtokens (fonts, colour palette). - Phase 2: add a
docs/progress.mdbirds-eye page that queriesstatus: in-progressacross the corpus. - Phase 2: retire
app/(legacy SPA).
Outcome (2026-04-21)
Shipped. Wiki is live at oxflow-wiki.design.3sixtyone.co. The subdomain shifted from the tentative wiki.design.3sixtyone.co above to the final oxflow-wiki.design.3sixtyone.co during deploy. The Vercel project is oxflow-wiki on the 361 admin team, linked to github.com/361-coders-nz/oxflow-hub (Root Directory apps/wiki, cleanUrls: true).
References
- Quartz v4 — https://quartz.jzhao.xyz/
- Quartz Vercel hosting guide — https://quartz.jzhao.xyz/hosting
- Jacky Zhao (author) — https://github.com/jackyzha0/quartz
- 0001-monorepo
- 0004-frontmatter-schema