Hacking on Bookmarks

We got a fun announcement from the Bluesky team today! Bookmarks are coming!

Bookmarks by rafaelbsky · Pull Request #4163 · bluesky-social/atproto

This adds endpoints to implement bookmarks. ATproto currently only supports public data. On the other hand, we&#39;ve designed bookmarks as a private feature, in which only the user can see their o…

I talked with members of the Bluesky team at the recent NYC Community Hack. He described Bluesky PBC's process for prioritizing work as listening to the users and shifting weekly. Which makes today's news make a lot of sense. The top request by most users is bookmarks. The protocol isn't ready for private bookmarks. So they build bookmarks off protocol, like DMs, and put off proper private data support for later. I can't really criticize them for this decision. I personally think protocol work should come before the features it is supposed to enable. Anyway.

All this made me think, "Hey, we have a bookmarks lexicon already!" The lovely crew over at lexicon.community have made several lexicon meant to be shared by all kinds of apps in the ATmosphere. And there's a handy dandy one called community.lexicon.bookmarks.bookmark. It's pretty simple. Here's a bookmark record.

{
"$type": "community.lexicon.bookmarks.bookmark",
"subject": "https://www.smashingmagazine.com/2025/08/optimizing-pwas-different-display-modes/",
"createdAt": "2025-09-02T18:33:08-04:00"
}

That's all there is to it. A link and a datetime. You can optionally add tags too.

{
"tags": [
"atproto",
"leaderboards"
],
"$type": "community.lexicon.bookmarks.bookmark",
"subject": "https://ufos.microcosm.blue/",
"createdAt": "2025-09-02T20:56:26-04:00"
}

Why there isn't a basic web bookmarking service using this lexicon is beyond me. I hope someone will build it...

Ok sure I'll give it a shot.

starting with a prototype

What's the easiest, smallest functional unit of bookmarks I can build first? The thing I've been wanting all this time anyway, the clipper. I'll start with making an iOS shortcut using Bailey's AT Toolbox actions. Shortcuts is basically pseudocode so it helps me to build out the logic there before jumping into typescript 🫣.

Save to 🍥

Unable to find the shortcut.

use the clipper

Install AT Toolbox if you haven't already. Log in. Run my shortcut from the share sheet on any URL. Add tags if you wish (comma separated). A bookmark record is created on your repo. Those examples from earlier are real records on my alt account.

next steps

As far as I know, nobody has built an app or web ui for looking at and organizing your bookmarks under this collection. That's a bigger task. I started looking into turning this shortcut prototype into a proper browser extension. That means I have to figure out OAuth. I'm sure it can be done, but my first round of research seems to indicate that the extension would need to communicate with some external service (a website) to complete the OAuth flow. That's beyond the scope of my evening hack session. Maybe I'll figure it out tomorrow.

For now, I can start saving links to my PDS from my phone.

Hey look at that,