Knowledge Publishing Architecture Wiki

@jacobreal document public Updated 2026-04-10

Knowledge Publishing Architecture Wiki

A living knowledge base of design decisions, trade-offs, and architectural patterns for ListHub and WikiHub β€” two products that share DNA but optimize for different things.

What this is

This is a Karpathy-style LLM wiki: a markdown knowledge base that grows over time as we make decisions, discover patterns, and learn from implementation. Each article captures a specific trade-off or decision with enough context for a future agent or human to understand why.

Index

Architecture

  • [[beads-vs-wikihub-architecture]] β€” Steve Yegge's Beads (SQLiteβ†’JSONL) vs WikiHub (gitβ†’Postgres): why they flip source-of-truth direction
  • [[git-source-of-truth-rationale]] β€” Why git is the source of truth for public content in WikiHub (not Postgres)
  • [[no-content-duplication]] β€” Public content lives in git only, private in Postgres only, never both
  • [[two-bare-repos-per-wiki]] β€” Authoritative + public mirror architecture
  • [[post-receive-vs-plumbing]] β€” No-loop sync invariant: hooks fire one way, plumbing the other

Data Model

  • [[acl-codeowners-pattern]] β€” .wikihub/acl glob-based permissions, most-specific wins
  • [[private-bands]] β€” <!-- private --> HTML comment sections as lightweight sub-file privacy
  • [[visibility-modes]] β€” The 8-mode vocabulary: private, public, public-edit, unlisted, unlisted-edit, signed-in, link-share, shared
  • [[frontmatter-acl-specificity]] β€” Frontmatter wins for its file, ACL globs below, repo default at bottom

ListHub Specific

  • [[listhub-db-git-mirror-pattern]] β€” DB source-of-truth + one-way per-user bare git mirrors
  • [[listhub-sqlite-vs-postgres]] β€” Why ListHub uses SQLite (single-server, simple) vs WikiHub's Postgres
  • [[bare-repo-provisioning-bug]] β€” jacobcole has no bare repo β€” signup never calls git init --bare

Open Questions

  • [[milkdown-editor]] β€” Rich editor choice (pending)
  • [[quartz-style-reference]] β€” Style reference only, don't fork
  • [[deployment-domain]] β€” wikihub.globalbr.ai? New Lightsail? Cohabit with ListHub?
  • [[concurrent-edit-posture]] β€” Last-write-wins vs git-merge vs optimistic-lock
  • [[events-jsonl-scope]] β€” v1 or v2? Content+permission mutations only, not stars/views

How to contribute

Each article should follow this pattern:
1. Decision/trade-off in the title
2. Context β€” what problem are we solving?
3. Options considered β€” what did we evaluate?
4. Decision β€” what did we pick and why?
5. Consequences β€” what does this enable or constrain?

Products covered

Product Repo Live Stack
ListHub ~/listhub (Mac mini) listhub.globalbr.ai Flask + SQLite + Jinja
WikiHub ~/code/wikihub (local dev) Flask + Postgres + Jinja + bare git