The system catalog
Every part of devpage is explained here once, in the folder of the subject that owns it. Start from the vision for where this is going; come here for how the system works.
The boxes are listed under Topics below: the viewer, which is the program; engineering, which is how the program is changed; and the showcase deck, devpage presenting itself.
flowchart LR
catalog["System catalog"] --> viewer["Viewer<br/>the devpage program"]
catalog --> engineering["Engineering<br/>how changes reach main"]
catalog --> showcase["Showcase deck<br/>devpage's pitch"]
catalog --> constraints["General constraints<br/>checked on every review"]
click viewer href "./viewer/README.md" "Viewer"
click engineering href "./engineering/README.md" "Engineering"
click showcase href "./showcase/README.md" "The showcase deck"
click constraints href "../constraints/README.md" "General constraints"
How to read the catalog
Every subject has one home: a folder under boxes/ whose README is its
entrance. Folders are the hierarchy, and nesting means containment — a part
that merely uses another does not contain it, so follow links to reach the
owner. One box looks like this:
- viewer/
- README.md — the entrance: what the subject is, a picture of its parts, and its Topics
- glossary/README.md — the words it owns, one anchor per term
- constraints/
- the-served-folder-is-the-boundary.md — one rule per file: the rule, why, how it is checked
- writing-a-document/README.md — a concept or task article
- serving-pages/README.md — a mechanism page
A README's Topics section leads down layer by layer — essentials that teach the mental model, concept and task articles organized around what a reader wants to do, mechanism pages that explain one part fully, and reference. A broad box summarizes its parts and links to focused child designs; a focused box can explain its behavior fully. Code belonging to a child remains bound by its own and its ancestors' constraints. Each subject's words are in its glossary — the viewer's for documents and pages, engineering's for the development flow.
The docs on main describe the system as it is; a design that isn't built yet
lives on a design branch until the code catches up. A box appears when its area
is designed. Exact contracts stay beside their definitions in code; box docs
explain them and link to them. A change updates the explanations, contracts,
examples and incoming links it affects; a design decision lives in its owning
focused design, linked from the box entrance, and the reason for changing it
belongs in the commit message, not an ADR.
Constraints
Rules that belong to no single subject are the general constraints, checked on every review. Every other constraint lives with the subject it governs, one file per rule listed one line each in that subject's Topics, and applies to its descendants.
Topics
- Viewer — the
devpageprogram: serves a document and keeps open pages live. - Engineering — how changes reach main and how the system documents itself.
- The showcase deck — devpage's own presentation: what each slide proves, and the rules that keep it current.