From the 2026-08-23 docs audit, Diátaxis lens.
The imbalance
2 tutorials, 17 how-tos, 9 reference pages, 12 explanations. The quadrants are
individually well-kept — every page carries its frontmatter and quadrant
blockquote, every public export reaches a reference table — but the learning
journey stops after getting-started (boot an HTTP app) and second-runtime
(the same module under Temporal). A newcomer never receives a lesson on
authentication, configuration, testing, or slices; the how-tos carry that load,
and a recipe is not a lesson: protect-a-procedure assumes a reader who
already knows why the contract is marked and what a principal is.
The ambition is to replace NestJS/AdonisJS, and their docs win adoption on
exactly this quadrant: a long guided path a newcomer can follow end to end
before ever needing a recipe.
The arc
Extend the existing two into one continuous build — each lesson ends with the
gate green and the app runnable, and each hands off to the next:
getting-started (exists) — boot, one procedure, runMain.
configure-and-test — Config.provider for a real setting, then
bootFixture + the in-memory runtime proving it; the fake clock makes an
appearance so timing is never real.
protect-the-api — mark a procedure, defineHttp with one scheme, read the
principal; end on the 401 the anonymous caller gets.
split-into-slices — the modulith move: two fragments, two controllers,
needs declared per slice, the keyed router.
second-runtime (exists, becomes the finale) — the same application under a
worker, which is the one-process-one-runtime thesis made tangible.
Every sample rides the fence-extraction gate (#94) the day both exist, so the
tutorials cannot drift the way getting-started already did once (TS2305 on
its first sample, caught in #89's final review).
Acceptance
- The three new lessons, in the house style (frontmatter, quadrant blockquote,
root-relative links), each buildable by literally typing along.
- The sidebar presents the five as one ordered arc.
- Each how-to that a lesson now fronts links back the other way ("the lesson:
…"), so the two quadrants reference rather than duplicate each other.
From the 2026-08-23 docs audit, Diátaxis lens.
The imbalance
2 tutorials, 17 how-tos, 9 reference pages, 12 explanations. The quadrants are
individually well-kept — every page carries its frontmatter and quadrant
blockquote, every public export reaches a reference table — but the learning
journey stops after
getting-started(boot an HTTP app) andsecond-runtime(the same module under Temporal). A newcomer never receives a lesson on
authentication, configuration, testing, or slices; the how-tos carry that load,
and a recipe is not a lesson:
protect-a-procedureassumes a reader whoalready knows why the contract is marked and what a principal is.
The ambition is to replace NestJS/AdonisJS, and their docs win adoption on
exactly this quadrant: a long guided path a newcomer can follow end to end
before ever needing a recipe.
The arc
Extend the existing two into one continuous build — each lesson ends with the
gate green and the app runnable, and each hands off to the next:
getting-started(exists) — boot, one procedure,runMain.configure-and-test—Config.providerfor a real setting, thenbootFixture+ the in-memory runtime proving it; the fake clock makes anappearance so timing is never real.
protect-the-api— mark a procedure,defineHttpwith one scheme, read theprincipal; end on the 401 the anonymous caller gets.
split-into-slices— the modulith move: two fragments, two controllers,needsdeclared per slice, the keyed router.second-runtime(exists, becomes the finale) — the same application under aworker, which is the one-process-one-runtime thesis made tangible.
Every sample rides the fence-extraction gate (#94) the day both exist, so the
tutorials cannot drift the way
getting-startedalready did once (TS2305 onits first sample, caught in #89's final review).
Acceptance
root-relative links), each buildable by literally typing along.
…"), so the two quadrants reference rather than duplicate each other.