The current ActivityPub Social API (C2S API) is not widely implemented in servers and almost no clients exist for it. Part of the reason is that the standard C2S feature set very sparse compared to the Mastodon Client API, which is supported by many clients. For example, the AP Social API is missing features like:
- Search
- Streaming events
- Timelines (different from inbox/outbox, at user and server/fediverse levels)
- Authentication / Authorization
- Bookmarks (and custom collection discovery and management, in general)
- Media upload (described in nonnormative wiki)
- Actor/Account notes
Given almost all popular Fediverse clients are using the Mastodon Client API, many servers have decided to implement it to support those clients. The Mastodon team has requested that server implementers not do this, but the lack of any good alternative will result in this practice continuing.
Iām wondering if it would be useful to define these features as a group of NextGen Social API FEPs. If so, one challenge is transitioning ActivityPub clients and servers to this extended Social API.
Iāve done some experimentation with software that will provide a faƧade for the Mastodon Client API and requires no Mastodon software changes. Itās a special kind of proxy that implements the extended Social API features but passes through requests to the Mastodon API where it makes sense. The Mastodon Account and Status URIs donāt change so it doesnāt break the existing social graph. The Mastodon Client API remains usable with this approach, so current clients will continue to work during the migration phase.
The faƧade can be deployed without any support from the Mastodon team and, theoretically, would work with any server implementation that correctly implements the Mastodon Client API.
This is one implementation intended to support Mastodon-related migration. However, other servers could implement the FEPs ānativelyā rather than using a faƧade. After the FEPs stabilize, even the Mastodon team could do this and eliminate the need for the faƧade.
I can think of other features that would go beyond what the Mastodon Client API offers, but in this post Iām focusing on features that would give the Social API approximate feature parity with the Mastodon Client API.
This would be a relatively big project. Iām curious how much interest there would be in doing something along these lines.