Skip to contentSkip to Content
ConventionsStyle guide

Style guide

Stable

Conventions that keep pages consistent with each other. They exist so a page written a year apart from another still reads as the same site.

Voice

Write plainly and directly. Prefer the shortest correct statement. State a result before the derivation that produces it, so a reader who only wants the result can stop.

Do not use emoji anywhere in content.

Status markers

Every page carries a <Status /> marker in its first lines, directly under the heading. Much of this site is placeholder material, and a reader arriving from a search result has no other way to tell whether they are reading a stub or finished work.

Note that the label a reader sees is not always the value you pass: “In progress” is kind="active".

Markerkind valueMeaning
StubstubA placeholder. The scope is defined, nothing is written yet.
DraftdraftWritten but unreviewed. Treat numbers and claims with suspicion.
In progressactiveBeing actively worked on. Parts are settled, parts are not.
StablestableWritten, checked and sourced. Revised only when something changes.

Raise the marker as the page matures. The step from draft to stable is a review decision, not a word count: it asserts that the numbers have been checked and the claims sourced, so do not make it on a page you have only reread.

Units

SI unless a field convention makes SI perverse, in which case state the convention. Always attach a unit to a number. Common exceptions used here:

QuantityUnit usedReason
Orbital altitudekmUniversal in the literature
Delta-vm/sSI, and the natural magnitude
Specific impulsesField convention, despite the ambiguity
Signal power ratiodBLogarithmic, as radio engineering works
AnglesdegWith radians used inside derivations

Math

Inline math uses single dollars, display math uses double. Define every symbol the first time it appears on a page, even if it was defined on another page.

Δv=velnm0mf\Delta v = v_e \ln\frac{m_0}{m_f}

When a result will be referenced elsewhere, wrap it so it is visually named:

Tsiolkovsky rocket equationΔv=Ispg0lnm0mf\Delta v = I_{sp}\, g_0 \ln\frac{m_0}{m_f}

Prettier parses the children of a JSX block as JSX unless they are separated from the tags by blank lines, and \frac{2}{r} inside JSX is read as two expressions. The blank lines above are not cosmetic: without them a format run silently rewrites the equation into something that no longer compiles.

Diagrams

Author diagrams as Mermaid source in the page. Never paste a rendered image: an image cannot be diffed, corrected or restyled for the dark theme.

One diagram per mechanism. A diagram that only restates the surrounding prose should be deleted.

Mermaid blocks are the one fenced block that belongs in content. They are diagram source, not code.

Code

Do not put code in content pages. No source listings, no shell transcripts, no fenced blocks in any programming language.

An algorithm is documented by stating it: the governing equation, the iteration in mathematical notation, and a table of the steps an implementation needs with the reason each one exists. That survives a change of language, and it says why rather than only what. A listing does neither, and it invites the reader to copy something that has not been tested here.

Where an implementation genuinely exists, link to the repository that holds it and keep the page describing what it does and how it was validated. Commands a reader has to type belong inline or in a table, not in a block.

Citations

Cite the primary source, not a summary of it. Give enough that the source can be found without a link: author, title, venue, year. Where a number comes from a source, put the citation next to the number, not at the foot of the page.

Components

These are registered globally, so no MDX file imports anything.

ComponentUse
<Status />Page maturity marker. Required on every page. See Status markers.
<Hero />Landing banner. Index pages only.
<Cards />Grid of section links.
<Card />One link in a card grid.
<Facts />Key-value block for entity and mission attributes.
<Equation />A named result set apart from the derivation.
Last updated on