# Features of the Dustin Edwards network

> What this site and the programs behind it do: writing, pages and feeds, charts, design, AI agents, hosting and checks.

Source: https://dustinedwards.info/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](https://dustinedwards.info/colophon); for how the programs connect, the [map of systems](https://dustinedwards.info/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](https://dustinedwards.info/features.md)
