Features
What this site and the programs behind it do, by job. Each card names the program that does it. For how this one site is built, see the colophon; for how the programs connect, the map of systems.
Writing and publishing
How an article gets written, checked and published to any site in the network.
Drafts that stay yoursCarrel
An AI's draft is saved beside the author's and never replaces it.
Checks that flagCarrel
Checks and reviewers point out problems in a text. The author decides.
Preview from the live siteCarrel
A preview is drawn by the site's own renderer, so it matches what readers get.
Publishing by roleCarrel
Who may publish depends on role. An AI tool cannot publish while a flag is open.
First publication is the owner'sdustinedwards.info
Making a post public for the first time is reserved to the owner. The code refuses an agent that tries.
Books and manuscriptsCarrel
Books, chapters and scenes from a private manuscript repository, checked for continuity and timeline, exported to ePub and Word.
Media libraryCarrel
Images are listed, imported and deleted, with alt text set for each.
WebmentionsCarrel
Mentions of a post from other sites are reviewed and accepted or declined.
One publishing contractShared code
Every site mounts the same API (site-api), so Carrel lists, edits and publishes on all of them the same way.
Scheduled updatesShared code
A change to a live post can be set to apply later, and the site applies it on its own schedule.
Pages, feeds and search engines
What every site sends to readers, search engines and AI agents.
One markdown pipelinePrelum
Every site renders its markdown the same way, with the same safety rules.
Alt text requiredPrelum
An image with no alt text is refused. A decorative image says so.
Captions and transcriptsPrelum
A video needs captions or a statement that it is silent. Audio needs a transcript.
Rich blocksPrelum
Figures, galleries, callouts, collapsible details, FAQs, link cards and buttons.
Math and codePrelum
Equations, and highlighted code with a file name and marked lines.
Diagrams drawn aheaddustinedwards.info
Diagrams are drawn at build time, one for the light theme and one for the dark.
Light embedsPrelum
YouTube, Spotify, Apple Podcasts and other players load only when a reader presses play.
A markdown copy of every pagePrelum
Add .md to a page's address, or ask for markdown, and you get the source the page was drawn from.
llms.txt and llms-full.txtPrelum
A guide for AI agents, and every post in one file.
FeedsPrelum
RSS, Atom and JSON feeds, for the whole site and for each tag and series.
SitemapsPrelum
Sitemaps that list each page's images and the date each page last changed.
Search engine pingsPrelum
IndexNow tells search engines when a page changes.
Structured dataPrelum
schema.org markup and the page's head tags, written the same way on every site.
Crawler rulesPrelum
robots.txt and ai.txt, naming search and AI crawlers and what each may do.
Site auditsPrelum
A crawler checks a site's pages, and its icons and manifest, against the shared rules.
Search without a databasePrelum
A small index ships to the browser, for a site that has no database to search.
Charts and figures
Charts that arrive with the page and can be read by everyone. Enarratio is an early alpha.
Drawn on the serverEnarratio
A chart is drawn into the HTML, so it shows without JavaScript and search engines can read it.
Words and numbersEnarratio
Every chart has a text alternative its author writes and an equivalent data table.
Light and darkEnarratio
Colors come from the theme's stylesheet, so a chart follows the theme without being redrawn.
Runs anywhereEnarratio
Node.js, Cloudflare Workers, Deno and Bun. Built on Observable Plot.
Astro and EmDashEnarratio
enarratio-astro puts charts in Astro pages and Markdown, and enarratio-emdash adds a Chart block to EmDash's editor.
The network's lookCapsomer
Capsomer gives every chart the shared colors, gridlines and behavior.
Design
One set of parts, so a fix in one place reaches every site.
Plain CSS, no frameworkCapsomer
Color tokens, spacing and type are plain CSS that any site can use.
A color family per siteCapsomer
Each site has its own family of colors, drawn from the same tokens.
Light, dark and higher contrastCapsomer
Every color has a light, a dark and a higher-contrast value, and every pair is measured against its minimum.
More than 80 componentsCapsomer
Tables, dialogs, menus, tabs, forms, date pickers, a command menu, a media library and more.
Shared header and footerCapsomer
The same letterhead header and footer on every site, each in its own color.
Admin partsCapsomer
An admin shell, a permission matrix, a moderation queue and a publish gate.
A markdown editorCapsomer
An editor with draft comparison, for the admin pages that write.
The map of systemsCapsomer
Draws the network as hexagons, or as a plain map of cards, from Capsid's public data.
A page of statesCapsomer
Every component is shown in every state on Capsomer's own site.
No flash of the wrong themedustinedwards.info
The theme is chosen on the server, and the toggle works with scripting off.
Memory and work for AI agents
Capsid keeps what earlier sessions settled and hands out work, with a record of who did what.
A versioned knowledge baseCapsid
Documents live in namespaces, each change keeps the old version, and any version can be restored.
Search by words and by meaningCapsid
Keyword search and semantic search work together over every document.
A briefing at the startCapsid
A new session opens with its project's conventions and the documents every agent reads first.
A queue of signed jobsCapsid
A job's text is signed when posted, so a changed job is refused. An agent claims it and finishes with a pull request.
Claims checked against GitHubCapsid
Capsid stores what an agent said it did beside what GitHub confirms.
A key and a scope per agentCapsid
Each agent has its own key and its own list of allowed projects, repositories and actions, checked in one place.
GitHub through an AppCapsid
Capsid reaches GitHub as an App, so it holds no long-lived GitHub token.
Merge, close and releaseCapsid
Pull requests can be merged or closed, branches deleted, commits tagged and releases published, by agents allowed to.
Auto-merge by signed policyCapsid
A policy only the administrator can sign decides which pull requests may merge without a person.
An audit logCapsid
Every change and delete is recorded with who made it.
Site watcherCapsid
Reads each site's health page, CI status, deploys and live responses, and repairs drift.
Session telemetryCapsid
Per-session summaries and cost and token totals for each job. It stores no prompts or replies.
The PortalCapsid
The owner's dashboard: items waiting, site health, the job queue, open pull requests and deploys.
Public model and explorerCapsid
A daily public model of the network and a public explorer that draws it.
Run a site from a chatdustinedwards.info
An admin server lets the owner work with this site's registry, citations and lab procedures from a conversation. It cannot write or publish posts.
A study of its own useCapsid
A public harness compares Claude Code with and without Capsid on the same tasks, scored on hidden tests.
Hosting, safety and backups
What every site gets from shared code, so each is run the same way.
Security headersShared code
A content security policy and the other headers, with a report endpoint.
Rate limitsShared code
One rate limiter for every site, with a version that counts exactly.
Sign-inShared code
One sign-in flow for members, and a check that an Access application lets in exactly the site's admins.
A health reportShared code
Every site answers /health in one format, and Capsid reads it.
Responsive imagesShared code
Images are resized to the reader's screen on request, and edits such as a crop are applied the same way everywhere.
SpeedShared code
Link prefetching, preloads and early hints, an edge page cache and a Server-Timing header.
Share cardsShared code
The preview image a page shows when it is shared.
Bot checks and emailShared code
A Turnstile check on forms, one way to send email and a security.txt file.
Checks on AI-written proseShared code
A check on prose written with AI, and a measure of an author's voice.
Per-table backupsShared code
d1-dump copies each table to the site's own storage on a schedule and works on databases with full-text search, where D1's own export does not.
Restore into a copyShared code
A backup restores into a copy you can inspect first, and the age of the newest backup shows on the health page.
A copy outside CloudflareCapsid
Every site's exports are copied to a locked Amazon S3 bucket in another account, with a markdown mirror of every Capsid document.
Building and checking
How a change is tested before it reaches a reader.
The same checks everywhereShared code
devkit runs one set of pull request checks: workflow audits, dependency scans, bundle size, bloat and an automatic reviewer.
A shared-code checkShared code
A repository that copies something a shared package already provides fails, so a fix is made once.
Update rulesShared code
One dependency update policy, used by every repository.
Deploys that roll backShared code
A deployed Worker is checked live and rolled back if the site refuses it.
Checks for the project's own claimsdustinedwards.info
The colophon's list of what the site does is held to the code by checks that fail when a claim's anchor is gone.
Accessibility in the builddustinedwards.info
Contrast, alt text, keyboard use and reading without script are tested, and the accessibility page names each check.
On dustinedwards.info
What a visitor can use here.
Publicationsdustinedwards.info
Each paper has a page, with BibTeX, RIS and JSON downloads.
Lab calculatorsdustinedwards.info
Titer, dilution, webbed plate, multiplicity of infection, efficiency of plating and lysate volume.
Protocolsdustinedwards.info
Procedures with versions and a printable sheet, downloadable as CSV and JSON.
A lab registrydustinedwards.info
A fact is stored once, in a record, and every page draws it from there.
Phage recordsdustinedwards.info
A catalog of phages with a section for each.
The CVdustinedwards.info
With its charts, a markdown copy and a PDF made on each save.
Search and Askdustinedwards.info
Keyword search by section, and a streamed AI answer with citations that link to the passage.
Search from an AI tooldustinedwards.info
The same search is open to AI tools over the Model Context Protocol.
How it is builtdustinedwards.info
The colophon lists every resource, check and dependency, generated from the code.