Skyreader update - Bookmark syncing to Semble/Margin and Standard Reader Collections support

There are two big updates to call out this week:

@standard-reader.app collection support

Saved article syncing with @semble.so and @margin.at

Saving your reading

You can now opt into syncing your saved articles to @semble.so or @margin.at .

By default your saves are kept private and stored off protocol on the Skyreader servers but you can now also turn on Semble/Margin syncing in settings:

When enabled, your saves in Skyreader will be written to your PDS using the Semble/Margin lexicon and added to a collection (by default called "Skyreader Saves" but you can pick an existing collection). Your save list in Skyreader will then be kept in sync with the collection, anything you add to the collection from outside of Skyreader will show up in Skyreader and vice versa.

As I've written before one of my goals for Skyreader is to make it a really powerful Atmospheric read-it-later app in addition to being a great feed (RSS/standard.site/etc.) reader. This means it's important to figure out the best approach to handle cross-app bookmarks/saves so your read-it-later list is fully portable and interacts nicely with other apps in the Atmosphere.

Ideally there'd be a single standard "bookmark" lexicon that all apps could share, but the details here are surprisingly subtle. @donohoe.dev has a nice writeup on what a bookmark even is (somewhere between "just a URL" and a full snapshot of the page) and @wesleyfinck.org sketched out a proposal : a minimal shared core (basically just the URL) plus a typed slot where each app puts its own metadata. The tricky part is that the per-app stuff (reading progress, private notes, a cached copy of the article) is where a lot of the value lives, and it's exactly the part that doesn't generalize.

The approach I'm taking right now with Skyreader is pretty compatible with that: ground the core save in the user's preferred lexicon (either Semble or Margin) and layer Skyreader-specific metadata alongside it. The one place I diverge is that I keep that metadata in a private sidecar off protocol, mostly because it caches the article content, which can't always be public due to copyright, so it can't just live in a public extension record today. Once permissioned data starts rolling out I think it'll make sense to move the sidecar on protocol, basically as Wesley's typed extension but access-controlled, so you get full control of all your bookmark data.

Support for Standard Reader Collections

@standard-reader.app (a reading app for @standard.site publications by @hipstersmoothie.com ) just released Collections , where a single collection pulls together articles from any publication.

Collections are normal @standard.site documents that use the links property to connect to a sidecar lexicon that describes extra features like article embedding and custom styling on top of it. Apps that don't know about the collection format see a basic @standard.site post but without the styling or article embedding intended by the author.

So since collections were "just" a few more lexicons to read I added support in Skyreader. If you subscribe to a @standard.site publication in Skyreader that publishes a @standard-reader.app collection you will see the custom styling along with a nice table of contents and each article fully embedded in a single readable article:

I realize adding support for this was probably a bit early; the feature was only released in Standard Reader last week and I think there are only a handful of collections created so far. But as @standard-reader.app put it:

It's neat to see something cool that should exist across the ecosystem of reader apps and just build it.