← Projects

RadioTour

A custom static publishing system with content gates and explicit publication state.

Implementation and historical evidence · October 2026

Who it is for

A writer maintaining a small publication with a custom static publishing workflow.

The problem and constraints

The publishing system needs to turn content into a site while keeping publication state explicit. A custom generator also makes content checks part of the build rather than leaving them entirely to an editor’s memory.

How it is used

Maintain the post files and their publication state, run the generator and content gates, then inspect the generated static output. Client-side behavior stays minimal; the site uses self-hosted fonts.

Source

Post content and explicit publication state

Build

Custom generator → content gates → static output

Conceptual build sequence from the implementation. It is not a measured deployment trace.

Radio Tour: from post files to static output
A conceptual build sequence from the implementation, not a measured deployment trace. Shaded boxes are the writer’s steps.

A conceptual build sequence from the implementation, not a measured deployment trace. Shaded boxes are the writer’s steps.

Open diagram at full size
Read the workflow as text
  • At the source, writers maintain post files and publication state.
  • The source holds post files with explicit publication state.
  • Build: the custom static generator runs, then the content gates.
  • Static output: self-hosted fonts, minimal browser behavior.
  • Last, the writer can inspect the generated output.
Local build of the published site, October 2, 2026
The home page of the local build. A featured dispatch, “Nobody here gets tired” by A Road Captain, dated 2026-09-03, with a short excerpt and a link to read it. Below it, the first row of recent dispatches: “The work that doesn’t show”, “The shape of a long task” and “Building in the open, from Northwest Arkansas”.

Built from the main branch with published posts only and served on a local machine. Cropped to the featured dispatch and the first row of recent dispatches.

What the source currently shows

Publishing state in the source
18post files13marked published5other states

These are source-file states on the main branch as of October 2026. They do not establish 18 published posts, current live availability, or an audience count.

The main branch contains 12 test files. This is a file count, not a passing test run.

Decisions and current state

The implementation uses a custom static generator, content gates, self-hosted fonts, and minimal browser behavior. The README describes no analytics or backend.

A static site still runs whatever scripts and styles the browser is allowed to load. As of October 2026, the README on the main branch described a strict Content Security Policy with zero external origins and zero inline scripts or styles. It stated that the local preview server sent the production policy, so a violation would show as a browser console error before deployment.

No audience, engagement, delivery-speed, or uptime metric is established. The exact rejected alternatives are not documented.

Learnings

What I learned: counting content files and counting published material answer different questions.

What is implemented: explicit publication state and build-time content gates. The figures above preserve the difference between the 18 source files and the 13 marked published.

What to test next: run the content checks, reconcile generated output with the publication flags, and confirm the README’s no-analytics, no-backend description against live network traffic.