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.

Markdown