Web frontend and supporting services for lance.blue
headquarters plan publishing.md
5.9 kB


id: publishing title: A post reaches the network in one deploy status: continuous repos: [headquarters, infra] dependsOn: [] exitCriterion: > Writing a post, deploying it and publishing it to ATProto is one pass, and a shared link unfurls as the thing it points at. #

publishing #

The blog is prerendered from markdown in web/src/content/blog with an Atom feed at /atom.xml, and posts are published to lance.blue's own repository as standard.site records with sequoia. The first post carries its site.standard.document record.

Open #

  • The lag is cheap. The record carries the post's own text, so a reader
    seeing it in the network gets the whole post either way; what the missing
    tag costs is Bluesky's richer preview, which reads the tag off the page.
    
    Doing it in the other order is not cheap: publishing also posts to
    Bluesky announcing the URL, so publishing before the page is served sends
    that announcement's clicks to the app shell, which answers 200 rather
    than 404. Worth deciding whether `bluesky.enabled` should be on at all.
    

The plan, rendered #

  • The reason it sat unbuilt is not the build step. A public roadmap is a
    promise, and twenty-seven epics with statuses read as a commitment to
    twenty-seven things. What to render is therefore part of the work: the
    register as it stands, or the milestones in
    [milestones.md](milestones.md), which is the same work in prose and
    without the appearance of a schedule.
    

Done #

  • The glyphs are now outlines taken from the same woff2 files the browser
    downloads, which fixes the drawing and the reproducibility together. The
    alpha stamp is on it as well, built from `.stamp`'s own numbers, so a
    card in a feed says what every page of the site says. `social-card.test.mjs`
    resolves each `--font-*` token the script names and fails if the file it
    loads is a different family.