I think this is cool. When someone sends me a follow request on activitypub, a markdown file somewhere not public gets updated to say "Here's the request, to accept it, paste this into followers.md!:".

2026-06-05T16:48:33.095143066Z: https://cfeb8982a04e8f.lhr.life/i followed me on ap

And when I do that, my markdown server sends the accept follow response back to their server.

Yup. You're reading my followers database. I'm writing this to you, in this markdown file. It feels useful to have a markdown file of people who want to follow me. It feels useful to be able to explain this cool feature in a markdown file. It pleases me that all of these things are covered from this markdown file.

I can't work out if this is insane and stupid, or elegant and beautiful, but it's markdown all the way down

A few other cool/quirky corollaries:

  • That sample above, that was a test follower on staging, and it worked.
  • I should be manually adding/delete lines to it as people follow/unfollow me.
  • Uh, I don't really socialise/use social media, this solution wouldn't scale well for a highly successful cult leader.
  • Backing up this markdown file backs up my notes on how I handle followers, and my actual followers.
  • Same file could be used for activitypub or any other open networks I want to join (ATProto?).
  • Same approach, but with offline followers file, would work for private follow lists like e-mail subscribers
  • Silly broad online laws require basically all content to be moderated, which this does.

Behind the scenes, some techincal notes:

  • There's a specific watcher on this followers.md which triggers a dispatcher
  • The dispatcher:
  • Checks the sentlog (which is a similarly structured markdown-first file) for last sent Accepts
        • Regex to find the accept string above and extract necessary details to generate Accept response
        • If the generated Accepts haven't already been sent, then send them

I like this pattern. I started with followers because it has the extra Accept step, which complicates things. Now that's done, a similar approach will be used for posts, responses, DMs etc:

  • input from internet gets dunked into a offline markdown file, with instruction on what to paste where if okay.
  • I check the markdown files when I feel like it.
  • Things which aren't obviously illegal or ill-willed I just paste the generated markdown to the linked place.
  • Sometimes those pasted things cause other things to be sent out or updated by watchers/dispatchers.

I haven't gotten this far yet, but having that offline collection of markdown notes in an untrusted obsidian vault, alongside my public markdwon notes (including this file) in another obsidian window, could make this feel really quite comfy and safe.