My website is now its own social media account

usefulStephan Hagemannarticle2026-10-15read planted software engineeringprogramming

Synopsis — AI-drafted from Dan's notes

For five years Hagemann’s site reached social media through other people’s services: webmention.io collected the comments, and Bridgy, later Bridgy Fed, carried his posts out to the fediverse and Bluesky and brought the replies and likes back. In this post he removes every middleman. Each hop was a place where things could quietly stop working, and he wanted to find out how much of the social web one small self-hosted setup could carry. His answer is “pretty much all of it”. He still recommends Bridgy Fed to anyone who wants a quick fediverse presence, and credits its migration tools with making the move possible.

The site itself hasn’t changed: posts are Markdown files in a git repository, built into a static site on a schedule. Around it sit three small services that read the build and own nothing. A webmention receiver verifies and stores mentions, and it is the one place every interaction lands. A Fedify service makes the site an ActivityPub account, @stephan@stephanhagemann.com. Bluesky’s own Personal Data Server runs in a container, keeps his existing identity, and an adapter publishes to it and polls it for replies. The next build reads every interaction back and renders it under the post. A post’s URL serves HTML to a browser and the ActivityPub object to a fediverse server, so there is no copy on someone else’s domain: “a post’s URL is the post.” He replies by writing a reply post, and the people he follows live in a YAML file in the repo, so “following somebody now means a git commit.”

He is plain about the gaps. The private timeline is rudimentary, and there is no reply button yet. The account move brought his followers but not the accounts he followed, so he rebuilt that list by hand. Some followers’ servers never processed the move, and the site is not a Mastodon client, so he can’t post as it from his phone.

Where I land

Interesting architecture. I’ve been struggling with how to invite my audience to my, currently static only, blog site myself. This is a novel approach to solving that problem.

Connections