Skip to content

docs: full rewrite of 62 pages, strip decorative components, scrub AI vocabulary - #64

Merged
agjs merged 3 commits into
mainfrom
docs/full-rewrite
May 30, 2026
Merged

docs: full rewrite of 62 pages, strip decorative components, scrub AI vocabulary#64
agjs merged 3 commits into
mainfrom
docs/full-rewrite

Conversation

@agjs

@agjs agjs commented May 30, 2026

Copy link
Copy Markdown
Contributor

Full rewrite of every page across the BoringStack docs site. Sixty-two files. Plan: .claude/plans/zippy-scribbling-sprout.md.

What changed

Every page rewritten under four principles:

  1. Don't re-document code. Schema columns, env vars, routes, ACL keys, compose service matrices, npm-script catalogues all get one-line pointers to the source file rather than duplicated tables.
  2. Lead with the path to the outcome. First content after the title answers "what do I do" or "what is this in one paragraph", not philosophy.
  3. Page must stand alone. A reader who only reads one page reaches a working outcome or full understanding.
  4. Plain markdown by default. Only <Aside> from @astrojs/starlight/components survives, for genuinely critical warnings.

Components stripped (zero across the corpus, except <Aside>)

Component Files before After
<PageIntro> ~30 0
<CommandRun> 28 0
<DocCallout> 27 0 (excluding 404.mdx, exempt)
<SignalGrid> 24 0
<DocFileTree> 10 0
<DataMatrix> 6 0
<FaqGroup> / <FaqItem> 32 0

Re-documentation sections deleted outright

  • api/mfa.mdx: both auth.users + mfa_recovery_codes <DataMatrix> blocks
  • api/audit-log, auth, multi-tenant, acl, env-validator, notifications, bounce-handling: schema and route enumerations
  • infra/resource-limits, profiles-and-overlays: defaults plus overlay matrices
  • reference/env-vars.mdx: 390 → 70 lines (point at the three .env.example files)
  • reference/commands.mdx: 259 → 83 lines (point at the package.json files)
  • architecture/monorepo-layout.mdx: file-tree replaced with prose

Other fixes along the way

  • api/bounce-handling.mdx had a broken <DataMatrix> rendering Raku/Perl-6 grammar token garbage on the production site. Fixed.
  • landing/landingContent.ts had stale boot commands (./compose/dev.sh, ./compose/prod.sh, "infra-template"). Updated to ./setup.sh --up and the current path.
  • Header.astro had a "Cost" top-nav link pointing at a deleted anchor on why-boringstack.mdx. Removed.
  • deployment.mdx Manual provision path had git-clone after scp, which would fail. Reordered to clone-then-scp-then-up.

Vocabulary scrub (before → after across the corpus)

Pattern Before After
em dashes () 103 0
"load-bearing" 5 0
"source of truth" 7 0
"out of the box" 6 0
"guardrails" 7 0
"mental model" 2 0
"first-class" 2 0
"battle-tested" 1 0
"blast radius" 1 0
"primitives" (as noun) 6 0
"opinionated" (without naming the opinion) 4 0
Tier-1 AI words (delve, leverage, robust, seamless, ...) already 0 still 0

Pages exempt per plan

index.mdx, 404.mdx, changelog.mdx, topics/privacy.mdx, topics/terms.mdx. The first three are special-purpose; the last two are legal templates the operator fills in for their fork.

Recipes (recipes/add-*.mdx) keep their code snippets — recipes ARE the code an operator writes to wire the feature.

Test plan

  • cd apps/docs && bun run build — green, 67 pages, no broken links
  • All six pre-merge greps return zero across the corpus
  • Pre-push security + smoke gates green (one gitleaks false positive on MEILI_MASTER_KEY= empty line allowlisted; see commit message)
  • Manual spot-check: deployment, provisioning-with-tofu, mfa, env-vars all read coherently end-to-end

Three commits:

  1. 9262aa9: the 62-file rewrite
  2. follow-up: fix the gitleaks false-positive in the Meilisearch recipe
  3. follow-up: allowlist the prior commit in .gitleaks.toml

agjs added 3 commits May 30, 2026 15:53
… vocabulary

Every page across the docs site rewritten under the four principles:

1. Don't re-document code. Schema columns, env vars, routes, ACL keys, compose
   service matrices, npm-script catalogues all get one-line pointers to the
   source file rather than duplicated tables.
2. Lead with the path to the outcome. First content after the title answers
   "what do I do" or "what is this in one paragraph", not philosophy.
3. Page must stand alone. A reader who only reads one page reaches a working
   outcome or full understanding without bouncing through three other pages.
4. Plain markdown by default. Only <Aside> from @astrojs/starlight/components
   survives, for genuinely critical warnings.

Components stripped (zero across the corpus, except <Aside>):
  PageIntro, CommandRun, DocCallout, SignalGrid, DocFileTree, DataMatrix,
  FaqGroup, FaqItem.

Re-documentation sections deleted:
  api/mfa.mdx: both auth.users + mfa_recovery_codes DataMatrix blocks
  api/audit-log, auth, multi-tenant, acl, env-validator, notifications,
    bounce-handling: schema or route enumerations
  infra/resource-limits, profiles-and-overlays: defaults + overlay matrices
  reference/env-vars: 390 lines down to 70 (point at .env.example files)
  reference/commands: 259 lines down to 83 (point at package.json)
  architecture/monorepo-layout: file-tree replaced with prose

Other fixes:
  - api/bounce-handling.mdx had a broken DataMatrix rendering Raku token
    garbage on the production site; fixed.
  - landing/landingContent.ts had stale boot commands (./compose/dev.sh,
    ./compose/prod.sh); updated to ./setup.sh --up.
  - Header.astro Cost nav link pointed at a deleted anchor; removed.
  - deployment.mdx Manual path had git-clone after scp (would fail);
    reordered to clone-then-scp-then-up.

Vocabulary scrub counts (before -> after across the corpus):
  em dashes 103 -> 0; load-bearing 5 -> 0; source of truth 7 -> 0;
  out of the box 6 -> 0; guardrails 7 -> 0; mental model 2 -> 0;
  first-class 2 -> 0; battle-tested 1 -> 0; blast radius 1 -> 0;
  primitives 6 -> 0; opinionated 4 -> 0; Tier-1 AI words already 0.

Pages exempt per plan: index.mdx, 404.mdx, changelog.mdx, topics/privacy.mdx,
topics/terms.mdx.

Recipes (recipes/add-*.mdx) keep their code snippets. Recipes ARE the code an
operator writes to wire the feature; the snippets are the content, not
re-documentation.

Docs build green: 67 pages, no broken links.
The empty MEILI_MASTER_KEY= followed by MEILI_LIMITS_CPUS=0.5 on the
next line tripped gitleaks's generic-api-key heuristic. Adding a
placeholder value makes the rule happy without changing what the
snippet teaches.
@agjs
agjs enabled auto-merge (squash) May 30, 2026 13:57
@agjs
agjs merged commit 6786314 into main May 30, 2026
23 of 24 checks passed
@agjs
agjs deleted the docs/full-rewrite branch May 30, 2026 13:58
agjs added a commit that referenced this pull request May 30, 2026
#65)

* fix(docs): firewall-and-tls Security link points at the real route

/infra/security/ doesn't exist; the page lives at /topics/security/.
Caught by docs-linkcheck after the rewrite PR landed.

* chore(gitleaks): allowlist the PR #64 squash commit

Same false positive as the original docs/full-rewrite commit, now
re-surfaced under the squash-merge SHA on main.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant