Check your posts (notes, articles, etc.) are marked up with h-entry:

Success!

We found the following reply h-entry on your site:

Name

# After the Drafting Room

Author

Karthik Gurumoorthy

In Reply To

Content

After the Drafting Room I wired the bit after the Drafting Room. The last note was about the room: the agent can sit there and poke at the writing, but it doesn’t publish. A draft leaving the room is still a draft. Then I wanted the rest of it to happen without me babysitting a terminal. So: I hit Prepare, and the text goes into Git as unpublished. I have to tick a box saying this exact version is okay to enter the public repo. Publish only flips draft. That’s the whole mutation. If Bluesky is down, the note is still on karthikg.in. That felt like the important split. Copies wait. At Prepare, Webmentions and Bluesky are both off unless I say so. Nothing fires until Vercel has actually put that commit on production. The Action fetches the live URL, looks for the ObjectId, then talks to the rest of the web. One note, not a scan of the archive. Bluesky uses a stable key so a retry doesn’t spawn a second post. The URL gets written back into the file, and a second deploy is what puts u-syndication on the page. I keep almost typing “and then it’s done” and it isn’t, quite. There’s a second deployment. Whatever. The last note already went through this. I think that’s funny. I wrote about not collapsing thinking into a publish button, then I automated the part after the button. Still not one button. Just fewer steps I will forget. I don’t know if this is the right amount of machinery for a site with four notes. It is the amount that meant I didn’t have to remember the CLI this time.

Published

URL https://karthikg.in/notes/after-the-drafting-room/

Syndicated Copies

  • https://bsky.app/profile/karthikg.in/post/3mtw6wcnvicvx

Categories

Add some categories! <a class="p-category" href="…">…</a>

Your h-entries should have, at minimum, the following properties:

  • e-content — the main content of the post
  • p-name — if your post is an article with a name, use this classname.
  • dt-published — the datetime the post was published at, in ISO8601 format, with a timezone
  • u-url — the canonical URL of the post, especially important on pages listing multiple posts

It’s a common convention for the published datetime to be a link to the post itself, but they can be separate if you want.

There should also be some way to discover the author of the post — either link to your homepage (which should have your h-card on it) from anywhere within the body of the page with rel=author, or optionally embed a p-author h-card in the h-entry.

The web is an expressive medium, and as such there are many other properties which you can add to your posts. Check out the h-entry documentation for a full list.

Want to be able to use h-entry data in your code? Check out the open-source implementations.

Previous Step | Home | Next Step