working on writing FEDERATION.md i already found one easily fixable deviation (siteName instead of nodeName in nodeinfo).
toddsundsted@epiktistes.com
Posts
-
working on writing FEDERATION.md i already found one easily fixable deviation (siteName instead of nodeName in nodeinfo). -
Before creating and publishing FEDERATION.md for #ktistec I wanted to understand what existing practice looked like across the Fediverse.Before creating and publishing
FEDERATION.mdfor #ktistec I wanted to understand what existing practice looked like across the Fediverse.FEP-67ff describes the requirements of the
FEDERATION.mdfile in loose terms and provides a non-normative template. I scraped the URLs ofFEDERATION.mdfiles from FEP-67ff itself and confirmed I could fetch them. The FEP listed 30 accessible projects (31 total, but one project—FIRM—does not appear to exist).If a file had a section with the heading "Supported FEPs" per the non-normative template, I only looked there for supported FEPs. Otherwise I scanned the entire document.
Implemented FEPs, ranked by the number of implementations that attest support, are:
FEP Name # ---- --------------------------------------------------------- -- 67ff FEDERATION.md 18 f1d5 NodeInfo in Fediverse Software 16 8b32 Object Integrity Proofs 7 044f Consent-respecting quote posts 7 2677 Identifying the Application Actor 7 e232 Object Links 6 1b12 Group federation 6 3b86 Activity Intents 6 521a Representing actor's public keys 5 2c59 Discovery of a Webfinger address from an ActivityPub actor 5 7888 Demystifying the context property 5 5feb Search indexing consent for actors 5 4adb Dereferencing identifiers with webfinger 4 d556 Server-Level Actor Discovery Using WebFinger 4 fb2a Actor metadata 4 ef61 Portable Objects 4 8fcf Followers collection synchronization across servers 4 844e Capability discovery 4 7628 Move actor 3 61cf The OpenWebAuth Protocol 3 c390 Identity Proofs 3 400e Publicly-appendable ActivityPub collections 3 c0e0 Emoji reactions 3 0151 NodeInfo in Fediverse Software (2025 edition) 3 fffd Proxy Objects 2 f228 Backfilling conversations 2 fe34 Origin-based security model 2 eb48 Hashtags 2 171b Conversation Containers 2 a5c5 Web Syndication Methods 2
There are obvious flaws in the methodology. Or maybe in the data. Only 18 out of the 30 projects I could access had a FEDERATION.md that attested FEDERATION.md support. Only 19 mentioned "FEDERATION.md". Only 21 mentioned "67ff". The remaining projects clearly did support FEP-67ff—the file itself was evidence. (
FEDERATION.mdis not meant to be machine readable—there's an issue about that).It was more difficult to rank implemented federation protocols. I extracted keywords from documents with a "Supported federation protocols and standards" section and created a dictionary of terms. If a file had a section with the heading "Supported federation protocols and standards", I only looked there. Otherwise I scanned the entire document.
Feature # ---------------- -- activitypub 26 webfinger 24 http_signatures 21 nodeinfo 19 json_ld 2 ld_signatures 2 ostatus 2 authorized_fetch 1 atproto 1
If time allows, I'm going to try to rank these documents by "utility", though I haven't yet determined the exact metric. These documents clearly provide valuable information, but their lack of standardization makes them harder to analyze systematically.
-
I've seen an ongoing debate between "Note" versus "Article" in ActivityPub / ActivityStreams.@reiver I like this distinction well enough that I might implement it.
-
Are there any good activitypub/fediverse blogging software out there? -
Release v3.3.0 of KtistecRelease v3.3.0 of Ktistec adds support for consent-respecting quote posts (FEP-044f). Quote posts represent the most lines of code I've written for any single changelog entry in my life.
Added
- Support for consent-respecting quote posts (FEP-044f).
Changed
next_attempt_atin tasks now means not scheduled whennil.- Permit type changes for ActivityPub objects.
Important: Quote posts come with a few big caveats. I've been using iterations of this in production for weeks, but if you don't like what you read below you might want to wait for the patch release.
- FEP-044f quote posts require delicate choreography between quoted and quoting servers. Server support across the fediverse is incomplete and evolving. If a quote post doesn't display it might be my bug, it might be their bug. Expect bugs.
- Quote authorization is currently all or nothing—you either blanket reject quote post requests (the default) or blanket accept them. I intend to support more granular controls and manual approval but that comes later.
- Quote authorization revocation isn't supported.
- Automatic re-verification of quote authorization isn't supported.
- Compatibility with other quote implementations is incomplete.
- There will be bugs
and more bugs
.
-
I’m wondering if there are any common or standard approaches to modeling RSS feeds as ActivityPub objects?I’m wondering if there are any common or standard approaches to modeling RSS feeds as ActivityPub objects?
I’m thinking of an
RSSFeedactor andRSSPostor something for the items but I’d love to follow established patterns.Friendica supports RSS feeds. Maybe that’s a good place to start?
-
Release v3.2.7 of KtistecThe two big features in release v3.2.7 of Ktistec are back end support for creating polls (the front end is coming in the next release) and advanced theming support—specifically, a rich vocabulary of CSS class values and data attributes on which to build a theme. The full set is documented in the README. I'll post more on how I'm using these later this week.
Here is the full set of notable changes:
Added
- Back-end support for creating polls.
- Advanced theming support with new classes, data attributes, and view helpers.
- Task status display on admin page showing running and imminently scheduled task counts.
Fixed
- Poll vote form now correctly submits
QuestionID.
Changed
- Move location of Ktistec version notice. (fixes #133)
- Updated admin page for better accessibility and less clutter.