Development record
abcd's record is built onto its own GitHub Pages, and abcdev.app becomes abcd's documentation site
adrproposedadr-2610142147242544
Context
adr-48 deploys abcdev.app to a Cloudflare Worker from released bytes at each release, record and docs together, with a preview of main on every push. itd-2610091010348892 gives every opted-in project a record built onto its own GitHub Pages by a workflow abcd writes. The product thinker made three rulings:
- On 2026-10-14, that abcd's own repository moves to that route ("so that it no longer has to deploy to cloudflare").
- On 2026-10-15, that a site renders only what abcd writes to a repository anyway, with docs read on GitHub by default.
- Also on 2026-10-15, that abcd's own docs are rendered in high quality on abcdev.app until a community site arrives, and that abcdev.app is abcd's docs site while abcdesign.app is where a team edits its brief, for any abcd-managed repository.
The move is planned in itd-2610142145236613 and built later.
Decision
Proposed with the plan. It is accepted in the change that lands spc-2610142146250176's third step, when the code that enforces it lands.
- abcd's about page and record are built and deployed by the workflow
site setup --provider github-pageswrites for any project, from what abcd writes and nothing else. abcd's own needs are met inside that route, not beside it. - abcdev.app is abcd's documentation site until a community site replaces it. Its deploy (adr-48: on release, from released bytes, with the preview of
main) narrows to the documentation and its landing page. The record explorer leaves it. - The record's old addresses on abcdev.app (
/record/,/contributors/,/references/) forward with a 301 to the same path on abcd's GitHub Pages address. The forwarding is declared in the docs host's redirect file in the repository. abcd's own links point at the Pages address directly. - What GitHub Pages cannot carry is named, not hidden. On the project route, the document content policy moves into each page as an element. Framing refusal (
frame-ancestors) andX-Content-Type-Options: nosniffare lost there. The record loads nothing from outside itself and holds nothing a framing page could act on, so the loss is accepted for a read-only record. abcdev.app keeps its response headers on its own host. - The static abcdesign.app page is published from a repository of its own, because a repository has one Pages site and abcd's is the record.
Alternatives Considered
- Keep the Cloudflare deploy as it is (adr-48 unchanged). It keeps everything in one place. But abcd's record would not run on the route abcd offers, against the product thinker's 2026-10-14 ruling.
- Move everything, docs included, onto abcd's GitHub Pages and forward all of abcdev.app. This was the plan of 2026-10-14. The single-source ruling of 2026-10-15 rules out rendering hand-written docs on a project site, and the product thinker kept abcdev.app for abcd's docs.
- Read abcd's docs on GitHub, like any project's. That is the default for every other repository. The product thinker chose a high-quality docs site for abcd itself, for now.
- The record on the project route, abcdev.app narrowed to the docs, and the record's old addresses forwarded (chosen).
Consequences
- abcd's record depends on GitHub Pages' availability and limits (1 GB per site). The docs stay on their current host.
- Every project on the github-pages provider gains the page-carried content policy that abcd's record needs.
- abcdev.app's build drops the record explorer, and its redirect file gains the record's forwards. Cloudflare keeps serving the docs only.
- abcdesign.app's publishing repository is a new outward act at that intent's cut.
- When a community site replaces abcdev.app, the docs move with it, by a later decision.
Frontmatter
| id | adr-2610142147242544 |
|---|---|
| type | adr |
| status | proposed |
| date | 2026-10-14 |
.abcd/development/decisions/adrs/2610142147242544-abcd-s-site-is-built-onto-its-own-github.md
open on GitHub ↗ · commit history ↗
References5
- adr-47abcdev.app is rendered from this repository alonerelated
- adr-48The website deploys on release, not on mergerelated
- adr-2610091016270711Who may change an abcd-managed project's design on abcdesign.app, and how a change landsrelated
- itd-2610091010348892An opted-in project's record is built at each release onto its own GitHub Pagesrelated
- itd-2610142145236613abcd's own record is built onto its GitHub Pages like any project'srelated
Referenced by1
- itd-2611011151475128Every documentation surface is rendered from its one homerelated
mentions3
- spc-2610141709430146the-product-thinker-and-the-technical
- spc-2610141709461788anyone-who-opens-abcdev-app-finds-the
- spc-2610142146250176abcd-s-own-development-record-is-built