Skip to content

Serve the followed feeds at /.well-known/following.opml - #47

Merged
pfefferle merged 7 commits into
mainfrom
add/followspec
Oct 15, 2026
Merged

pfefferle merged 7 commits into
mainfrom
add/followspec

Conversation

@pfefferle

@pfefferle pfefferle commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

This adds FollowSpec: /.well-known/following.opml answers with one flat OPML subscription list of the feeds in all blogrolls that are listed in the directory, as text/x-opml with Access-Control-Allow-Origin: *.

It is not an alias of /.well-known/recommendations.opml. That file only points to the OPML of each blogroll (type="include"), and FollowSpec readers expect the xmlUrls directly. Links without a feed are left out, and a feed that is in several blogrolls is listed once. Unlisted blogrolls stay out, the same as in the directory. The file has an ETag and answers If-None-Match with a 304, and OPTIONS for browsers on other sites.

If the SocialSpec plugin is active, Blockroll does not serve a file of its own. It adds the blogroll feeds to the following.opml of SocialSpec with the socialspec_following filter, so bookmarks and feeds from other plugins stay in the list. Feeds that are already in there are not added twice.

Without any listed blogroll, both well-known files now answer with an empty list instead of the home page.

An update does not flush the rewrite rules, so the plugin compares its well-known rules with the stored ones and flushes once if they differ. That also covers SocialSpec being activated or deactivated later.

The spec is still an RFC (socialspec/followspec.org#1), so details might change.

@pfefferle
pfefferle merged commit ff8174a into main Oct 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant