Skip to content

docs(website): split the website from the developer docs - #58

Merged
ajfriesen merged 3 commits into
mainfrom
docs
Oct 19, 2026
Merged

ajfriesen merged 3 commits into
mainfrom
docs

Conversation

@ajfriesen

Copy link
Copy Markdown
Owner

The public website moves to website/ as one self-contained Zensical project. docs/ keeps the developer docs only.

website/ zensical.toml (docs_dir = "content"), overrides/, pages and assets in website/content/
docs/ README.md (was developer/README.md), the ADRs, agents/ — never published
Gone developer/, and the root-level zensical.toml / overrides/

Why

Zensical publishes every Markdown file under its content directory whether or not it appears in nav. So all twelve ADRs and all three agent-skill documents were live at dashboardassistant.org/adr/… and /agents/…: reachable, unlinked, and written for contributors rather than users. After this, "is this published?" is answerable from the path alone.

The content directory is content/, not Zensical's default docs/, so no one word means the public site in one place and the developer docs in another. CONTEXT.md gains Website and Developer docs to match.

Public URLs

Unchanged, except by design. Zensical derives them from the path relative to the content directory, so the build produces the same 61 files at the same paths as before the move — verified by diffing the output tree against a pre-move baseline. The only delta is the 15 adr/ + agents/ pages, which now 404. Nothing on the site linked to them; inbound links from elsewhere break.

Verification

  • just website-build: 61 files, paths byte-identical to the baseline
  • nix eval of the x86 system passes with the moved sponsor-logo path — and fails (Path 'website/content/brand/NOPE-180.png' does not exist) when the path is deliberately broken, so the check can actually catch a regression
  • nix flake check --no-build passes; 177 labgrid unit tests pass; every relative link in docs/, README.md and AGENTS.md resolves
  • website/site/ and website/.cache/ confirmed ignored at their new paths

Needs a repo-settings change

The Pages workflow is renamed docs.yml → website.yml, and its check goes from Documentation to Website. Any branch protection rule or required status check naming the old one has to be repointed.

Notes

  • modules/core/kiosk.nix now reaches into website/content/brand/ for the sponsor button artwork, so the OS build depends on a path inside the website. Deliberate — it is what stops the on-screen mark drifting from the published one.
  • zensical serve/build no longer work from the repository root (they only look in the current directory). just website-serve / just website-build wrap the cd.
  • Rationale recorded in docs/adr/0013-the-website-is-a-self-contained-zensical-project.md.
  • The third commit repoints a docs/flash/flash.md reference that ci: build every board the same way, closure and image #57 added to boards.yml while this branch was open.

🤖 Generated with Claude Code

ajfriesen and others added 3 commits October 19, 2026 23:37
The public website moves to website/ as one self-contained Zensical
project: website/zensical.toml, its theme overrides, and the pages and
assets in website/content/. docs/ keeps the developer docs only — the
contributor guide (was developer/README.md), the ADRs and the agent
skills — none of which is published.

Zensical publishes every Markdown file under its content directory
whether or not it appears in nav, so all twelve ADRs and all three
agent-skill documents were live at dashboardassistant.org/adr/… and
/agents/…: reachable, unlinked, and written for contributors rather than
users. Those URLs now 404 by design.

Every public URL is otherwise unchanged, because Zensical derives them
from the path relative to the content directory: the build produces the
same 61 files at the same paths as before the move.

The content directory is content/, not Zensical's default docs/, so no
one word means the public site in one place and the developer docs in
another.

Also: the OS build reaches into website/content/brand/ for the sponsor
button artwork (modules/core/kiosk.nix); CI filters collapse to one path
each; and `just website-serve` / `just website-build` wrap the cd that
zensical now needs, since it only looks for its config in the current
directory.

See docs/adr/0013-the-website-is-a-self-contained-zensical-project.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The workflow builds the website, so that is what it is called:
.github/workflows/website.yml, name "Website". It was still called
"Documentation", the one word CONTEXT.md now tells us not to use for the
public pages.

Both path filters that name the file follow, plus the references in the
justfile and ADR 0013.

The GitHub Pages check reported on a push changes name from
"Documentation" to "Website", so any branch protection rule or required
status check naming the old one has to be repointed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The one-flow-per-board work landed on main while this branch was open and
cited docs/flash/flash.md, which the move had already turned into
website/content/flash/flash.md. Found by rebasing onto it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ajfriesen
ajfriesen merged commit 4908b93 into main Oct 19, 2026
6 checks passed
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