Colophon

Afterword is a personal site and small web workshop. It is where I keep short updates, field notes, photographs, check-ins, media notes, older archive material, and longer writing gathered into one place. A lot of it follows a sort of PESOS logic, except that when it makes sense I try to save outside-generated material into my own AT Protocol Personal Data Server rather than leaving it entirely trapped in someone else’s product. It is very much an experiment, and also a learning project that has grown a little past the point of reason.

The site is built with Astro and runs on Cloudflare Workers, with EmDash as the CMS behind it. Pages, posts, sections, forms, comments, menus, tags, categories, and much of the photo archive now live close to the site instead of being stitched together from far-away services on every request.

A separate SvelteKit worker handles the messier sync and protocol work behind the scenes: Swarm/Foursquare check-ins, Bluesky and AT Protocol status processing, media normalization, webhook receivers, and a few other background tasks that are better handled by a dedicated service than by the public site itself. That split lets the public site stay calmer while the stranger machinery runs elsewhere.

Statuses come from Bluesky and AT Protocol. Check-ins are synced from Swarm into my own ATProto/PDS layer so they are not only trapped inside Swarm. The public site reads those dynamic streams through the sync worker, which keeps things faster and simpler than having the front end do that processing directly.

The gallery is intentionally more local now instead of being pulled from an outside publishing system. Images from photography, field notes, and gallery-tagged posts are copied into my own media storage and rendered through the site with responsive image routes and lightbox views. That makes the photographs feel like part of this place rather than remote embeds.

Music and media are still a little more federated. Some of that material begins in places like Crucial Tracks, Album Whale, RSS feeds, or my PDS, then gets normalized and gathered back into the site. The goal is not to hide the wider web, but to keep my own domain as the place where those signals collect and become part of a fuller record.

There is also some standard.site and Bluesky syndication happening through EmDash and AT Protocol. That part is still young, a little experimental, and exactly the kind of thing I like about this setup: writing can begin here while still finding its way into other small-web and social-web spaces.

The larger point is still the same. I am not trying to build a product. I am trying to keep a personal web home that can hold the professional parts, the wandering and photography parts, the music-obsessive parts, the family-and-garden parts, and the ordinary notes that would otherwise disappear into platforms built for speed instead of memory.

It is handmade on purpose, and usually a little in motion, probably a little broken, because it is not only a living site but also a place to learn.