We live in such interesting times. Over the weekend, I added support for the standard.site spec. All my posts are published as standard.document attached to my Bluesky account. Well, when I say “I added” I mean I worked with claude to add this to my blog.
This all happened when I saw this skeet on a Saturday morning while having my morning coffee:
I'm new to the AT Protocol ecosystem (intending to get my blog using standard.site this weekend) but there's an incredible momentum around it. It feels like a much-needed optimistic corner of the tech world.
the general bsky userbase being a lil dismissive of the standard.site integration is a reminder that this whole atproto atmosphere ecosystem is a long game. not everyone will be on board, and that's ok! we'll be ready to welcome people into a decentralized social future as big social fades away :)
So, a quick recap, I know nothing about AT Proto, aka ATmosphere. I’ve seen Dan Abramov’s musing on the topic on bluesky, but I’m going in with zero knowledge. So I figured, let’s see how far we can get with claude. The worst case is that we eat up some tokens and learn some lessons.
Now, sure you could tell claude: “Hey Claude, let’s add standard.document support to this blog and publish posts via ATProto”. However, that’s really unlikely to get you a useful result. While claude can feel like magic, you need to guide it to consistently get good results.
My approach was to start with a prompt that included a link to the spec and something along the lines of: “Lets support https://standard.site/docs/quick-start/ — On this site, lets talk about how to support this spec.”
It came back with a plan, which we iterated on. Initially, it had just dumped my blog text into a field called textContent. I ended up having claude write a parser to pull any images, embeds and interactive content and replace them with descriptive content. When the plan looked solid I sent it off for implementation. Here are the session stats:
Session: agitated-ptolemy-5f067a (PR #78 — standard.site / AT Protocol support)
Main session (540 assistant turns)
| Type | Tokens |
|---|---|
| Input (uncached) | 1,060 |
| Cache creation (writes) | 1,897,048 |
| Cache read | 52,260,952 |
| Output | 502,863 |
| Total | 54,661,923 |
Subagents (5 agents, 193 turns)
| Type | Tokens |
|---|---|
| Input (uncached) | 296 |
| Cache creation (writes) | 505,387 |
| Cache read | 4,728,232 |
| Output | 24,837 |
| Total | 5,258,752 |
Grand total
| Scope | Tokens |
|---|---|
| Main session | 54,661,923 |
| Subagents | 5,258,752 |
| Grand total | 59,920,675 |
I now have ATProto publishing built into this blogs build pipeline and all it cost was a few million tokens.