Skip to content

Rebuild website on the bikeshaving stack + 3.1 docs - #83

Merged
brainkim merged 6 commits into
masterfrom
website
Jun 8, 2026
Merged

Rebuild website on the bikeshaving stack + 3.1 docs#83
brainkim merged 6 commits into
masterfrom
website

Conversation

@brainkim

@brainkim brainkim commented Jun 7, 2026

Copy link
Copy Markdown
Member

Replaces the Docusaurus site with a shovel + Crank static site (mirroring crank/website) and brings the documentation current for 3.1.

Why

  • The Docusaurus dependency tree is the source of master's 216 dependabot alerts (23 critical / 104 high). Deleting it clears them at the root.
  • The guides predated 3.1 and pointed at deprecated/renamed APIs.

What

Stack: shovel (ServiceWorker static build) → Crank render → marked → Prism highlighting → pagefind search, deployed to repeater.js.org via gh-pages.

Preserved: the canonical /docs/<id>/ URLs (cool URIs don't change), and feature parity with the live site — homepage hero + Convenient/Safe/Powerful, navbar (Docs/API/GitHub/NPM), footer, sidebar sections. Adds dark mode and search.

Docs updated for 3.1: create* names, the /timers and /limiters subpaths, a "Disposing repeaters" section (using/await using), and a module entry-points reference.

Editorial + readability pass: dead-link/typo fixes, frontmatter hygiene, eleven prose simplifications, and a real bug fix — the safety guide's (push, _, stop) example (broken since the 1.0 API merge).

Notes

🤖 Generated with Claude Code

brainkim and others added 6 commits June 6, 2026 16:01
Replace the Docusaurus site (and its ~11k-line lockfile / dependabot
vuln tree) with a shovel ServiceWorker app that renders the docs through
Crank + marked and prerenders to static HTML, mirroring crank/website.

- docs/*.md -> docs/guides/*.md (kebab-cased; numeric prefix orders the nav)
- src/server.ts: router + static-site generation in the install lifecycle
- doc pipeline: models/document, components/{root,sidebar,marked}, views/{home,guide,not-found}
- pagefind search index builds over dist/public; gh-pages deploy to repeater.js.org

Builds all 10 routes + 404 via `npm run static`; `npm run pagefind` indexes 9 pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bring the shovel/Crank site to feature parity with the live Docusaurus
site (and past it):

- Preserve the canonical /docs/<id>/ URLs (cool URIs don't change), derived
  from frontmatter id — including ids that keep underscores (error_handling,
  inverted_repeaters). API page stays at /docs/repeater/.
- Homepage: hero + the Convenient / Safe / Powerful feature columns (verbatim
  copy + colors).
- Navbar (Docs / API / GitHub / NPM) and footer (copyright), wired into Root.
- Sidebar grouped into Getting Started / Guides / API Reference, mirroring the
  original sidebars.json.
- Syntax highlighting via Prism (SSR) with a light/dark token theme.
- `npm run clean` + clean static build (no stale routes ship).
- Ambient types for the shovel SSR globals.

Beyond the old site: pagefind search index + automatic dark mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The guides predated 3.1 and pointed at the now-deprecated aux packages.

- combinators: import createTimeout/createDelay from @repeaterjs/repeater/timers
  (was timeout/delay from @repeaterjs/timers)
- utilities: rewritten around the folded-in /timers and /limiters subpaths and
  the create* names; notes that the standalone timers/limiters packages are
  deprecated and that pubsub/react-hooks are not carried forward
- safety: new "Disposing repeaters" section (using / await using, Symbol.dispose)
- API reference: document the disposal methods and the module entry points
  (core / combinators / timers / limiters)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Repoint dead packages/{pubsub,limiters,timers} monorepo links (gone after the
  flatten) to /docs/utilities/; drop the pubsub link (not carried forward)
- Fix `@repeaterjs/timer` -> the /timers module with create* names in the
  inverted-repeaters guide
- Typo: Repeater.protoype.return -> prototype; "finish" -> "finishes"
- Trim trailing space in combinators frontmatter; unquote the repeater id

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Surgical readability pass on the technical guides — shorter sentences, lists
for enumerated conditions, plainer wording — without touching structure,
examples, or the rationale essay:

- error-handling: turn the throw "rethrow" conditions into a list; rewrite the
  "floating promise" sentence to lead with the plain condition
- overview: "exposed to parent closures to model architectural patterns" ->
  "hand them to outer functions to build patterns"
- safety: simplify the "leaky abstraction" and backpressure-intro sentences
- api reference: fix two grammar bugs ("repeaters detects … rethrow",
  "is either be undefined")

Also fixes a real bug in the safety guide example: the executor was written
`(push, _, stop)` (the pre-1.0 three-arg signature), which left `stop`
undefined so `await stop` resolved immediately. Corrected to `(push, stop)`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Continue the readability pass on the remaining dense spots:

- error-handling: drop the throat-clearing opener; tighten the promise-rejection
  paragraph (the long "regardless of when those values settled" sentence) and the
  "indicative of programmer error" phrasing
- safety: tighten the "memory leak in the form of unremoved event listeners" line

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@brainkim
brainkim merged commit b5ead12 into master Jun 8, 2026
@brainkim
brainkim deleted the website branch June 8, 2026 17:23
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