#c2s — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #c2s, aggregated by home.social.
-
Drafting a proposal to add API support in #Fedify for the ActivityPub Media Upload extension, the SocialCG-incubated #C2S companion that lets clients upload media via a dedicated
endpoints.uploadMediaendpoint, separate from the outbox.The sketched API mirrors the outbox listeners shipped in Fedify 2.2:
setMediaUploader(path, callback)paired with.authorize(). Return avocab.Objectfor201 Created, or aURLfor202 Accepted.This is still an early design draft. Feedback on the shape, semantics, and edge cases is very welcome:
-
8.1.0 — By the Numbers
ActivityPub for WordPress 8.1.0 is here. A new Fediverse statistics feature leads the release: a dashboard widget, monthly and annual email reports, and a shareable stats block with sharepic. Alongside it, an experimental ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports in the Pixelfed and Mastodon formats, and richer EXIF metadata for photographers via the Vernissage namespace. -
8.1.0 — By the Numbers
ActivityPub for WordPress 8.1.0 is here. A new Fediverse statistics feature leads the release: a dashboard widget, monthly and annual email reports, and a shareable stats block with sharepic. Alongside it, an experimental ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports in the Pixelfed and Mastodon formats, and richer EXIF metadata for photographers via the Vernissage namespace. -
8.1.0 — By the Numbers
ActivityPub for WordPress 8.1.0 is here. A new Fediverse statistics feature leads the release: a dashboard widget, monthly and annual email reports, and a shareable stats block with sharepic. Alongside it, an experimental ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports in the Pixelfed and Mastodon formats, and richer EXIF metadata for photographers via the Vernissage namespace. -
8.1.0 — By the Numbers
ActivityPub for WordPress 8.1.0 is here. A new Fediverse statistics feature leads the release: a dashboard widget, monthly and annual email reports, and a shareable stats block with sharepic. Alongside it, an experimental ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports in the Pixelfed and Mastodon formats, and richer EXIF metadata for photographers via the Vernissage namespace. -
8.1.0 — By the Numbers
ActivityPub for WordPress 8.1.0 is here. A new Fediverse statistics feature leads the release: a dashboard widget, monthly and annual email reports, and a shareable stats block with sharepic. Alongside it, an experimental ActivityPub API that lets third-party Fediverse apps post to your blog, Starter Pack imports in the Pixelfed and Mastodon formats, and richer EXIF metadata for photographers via the Vernissage namespace. -
there is now also an english version https://changinggraph.org/en/index.html
-
I mentioned this thread in the #ActivityPub #C2S tracking issue. I think there's a fundamental risk that C2S is going sideways because of misconceptions between devs on where things are / should be headed.
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130#issuecomment-11737818
-
Maybe #bovine is, what you're looking for.
-
Is there a #python module for #activitypub #c2s I can use for a silly idea? My search engine foo seems to suggest rather No, but maybe you know one 😉 -
(digital) doodling a little
-
Today @kopper shared a post on the fediverse titled how to not regret c2s, and I found it genuinely interesting to read, even if I'm not sure its proposed architecture actually solves what it sets out to solve.
The author's frustration with naïve #C2S implementations is well-founded. Slapping an #ActivityPub facade onto an existing Mastodon-like server and calling it C2S doesn't buy you much—you end up with the rigidity of a bespoke API without any of the interoperability C2S is supposed to offer. The “JSON-LD flavored Mastodon API” framing is apt.
The proposed solution is to split responsibility more aggressively: the C2S server should be nearly stateless and dumb, storing ActivityPub objects without interpreting them, while a separate “client” layer handles indexing, timelines, moderation, and exposes its own API to the frontend running on the user's device. It's a clean separation of concerns on paper.
But here's what bothers me. When you map this architecture onto familiar terms, it looks roughly like this:
- C2S server ≈ a database (PostgreSQL, say)
- “Client” ≈ an application server (Mastodon, Misskey)
- “Frontend” ≈ the actual client app on your phone
That's not a new architecture. That's just the current architecture with the labels shifted. The interesting question is which interface gets standardized, and the author's answer is the one between the C2S server and the “client” layer—the bottom boundary.
The problem is that what people actually want from C2S is to connect any frontend to any server. The portability they're after lives at the top boundary, between the frontend and whatever is behind it. But the author explicitly argues against standardizing that layer: “we don't really need a standardized api,” they write, leaving each client free to expose whatever API it likes.
Which means frontends remain locked to specific clients, just as Mastodon apps are locked to the Mastodon API today. The interoperability promise of C2S—log in to any server with any app—isn't actually delivered. It's been pushed one layer down, out of reach of the end user.
There's real value in the post's thinking about data hosting vs. interpretation, and about the security implications of servers that understand too much. But as an answer to the question C2S is supposed to answer, I'm not convinced.
-
Recently, there was a discussion about generic #ActivityPub servers. Several people claimed that they were working on one, but it turned out that their "generic" servers only support activities defined in the ActivityPub specification. Such a server shouldn't be called generic. It is not difficult to build, neither it is an interesting concept because competing protocols (e.g. Nostr) already offer much more.
I've been writing a #FEP that describes how to build a real generic server. It is not finished yet, but I feel like now is a good time to publish it:
FEP-fc48: Generic ActivityPub server
This kind of server:
- Can process any object type, and can process non-standard activities like
EmojiReact.
- Compatible with FEP-ae97 clients.
- Does not require JSON-LD.I attempted to implement it when I was researching security properties of FEP-ae97 API: https://codeberg.org/silverpill/fep-ae97-server. Back then I didn't know what to do with side effects, but now I think that we can simply force clients to specify them.
-
The intro to HDA (Hypermedia-Driven Applications) I've been raving about today seems relevant to the ongoing discussions about C2S APIs for the fediverse, especially the proliferation of the monolithic server+web-app antipattern. I've started a SH topic on it;
But SH seems like a ghost town ATM. Tried to post on ActivityPub.space but their interface hates my mobile browser (Fennec from F-Droid) 🤷♂️
-
ActivityPub client developer experience is something like this.
Building a coherent feed with stateful objects requires comparing an Activity from the inbox, with what’s in your outbox.
-
Have I already mentioned that the “Show thread” request is slowly driving me crazy?
-
I opened a issue in the swicg ActivityPub API repo about a gap i keep running into: how does a C2S client access server-local metadata about foreign objects?
Thread collections, read status, notifications — your server knows things about remote objects that the client needs, but AP has no vocabulary for it.
-
Hey, this is great. It is so nice to see the uptick of interest in the #C2S part of #ActivityPub. Very uplifting and gives me hope for the future of #fediverse.
I really liked your #FOSDEM presentation, and thank you for mentioning my humble list. They are just notes atm, but I will try to keep them up-to-date. I just made a bunch of updates..
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130
Would love to hear more on what are the particular plans and goals for your project in the near future?
-
This is marvelous. I wasn't aware of your project, but now I am and added it to the #ActivityPub #C2S tracking list.
I've also lined up #Outpost for inclusion on the delightful #fediverse curated lists at https://delightful.coding.social
-
Bring it on!
#ActivityPub Social API is getting a lot of attention and traction on the implementation side! 🎉
Join the fun, in this area where there's a fine future for the #fediverse social networking.
Some new updates to the list of client-to-server #C2S parts of the AP open standard:
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130
Added the projects of @kopper and a new C2S article by @django
-
This is wonderful! I updated my #ActivityPub #C2S notes with link to the PR..
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130
-
thanks to the awesome support of @steve and @mariusor the #WordPress #ActivityPub #C2S API support is quite solid now.
It is possible to publish a new post, comment to posts and other comments and to follow others.
https://github.com/Automattic/wordpress-activitypub/pull/2851
-
PS. I track a list of #ActivityPub #C2S implementations and didn't add #Holos till now. If I should add it, pleas let me know, or comment directly to the issue.
https://codeberg.org/fediverse/delightful-fediverse-apps/issues/130
-
Roadmap 2026 — Charting the stars of the open social web
The 2026 roadmap focuses on making WordPress easier to discover and interact with across the Fediverse. Key areas include better search and recommendations through FASP support, Starter Packs to help users find communities, a more interactive Reader with reactions and replies, direct messages, and client-to-server APIs. Alongside these, we’ll continue improving interoperability, long-form publishing, and overall federation features.https://activitypub.blog/2026/02/11/roadmap-2026-charting-the-stars-of-the-open-social-web/
-
I started adding #C2S #proxy_url support for #GoActivityPub services and it looks like it's easier than I imagined it initially.
On the server side, implementing the proxyURL handler doesn't need any new additions as it shares 90% code with other handlers that return #ActivityPub objects.
On the client side, I'm creating a new http.RoundTripper that can use the proxyURL transparently for the caller.
As a developer in your client code you only do a regular request for a remote URL, and the round-tripper handles the proxying part transparently if it has all the available bits: a server that supports proxyURL and a valid OAuth2 session towards that server.
-
My fosdem talk is up!
I make a case for more platforms to support the ActivityPub client API, and how we should look beyond microblogging for future growth of the ‘verse
https://fosdem.org/2026/schedule/event/QK7XSV-activitypub-c2s/
-
how can I best test an #activitypub #c2s implementation?
is there a client reference implementation?
can I already use your webclient @mediaformat ?
https://github.com/Automattic/wordpress-activitypub/pull/2851
-
-
@mapache Nice, I'm adding this to my growing list of features possible for servers supporting the Client to Server API 😉
-
-
What does an ActivityPub client look like when the server does NOT support the `proxyUrl` endpoint?
Imagine having to visually parse a URL to guess who a post is from...
-
Fabulous! I took note in the #ActivityPub #C2S tracking issue I keep on the delightful #fediverse experience curated list.
https://codeberg.org/fediverse/delightful-fediverse-experience/issues/130#issuecomment-9083289
-
I’ll be discussing #ActivityPub #c2s api at #fosdem
https://fosdem.org/2026/schedule/event/QK7XSV-activitypub-c2s/
-
/
@crossgolf_rebel @fasnix @wuffel
Was ist mit Euch?Es kann ganz allgemein im w3 "Big Blue Button" starten [Nutzende, Entwickelnde, Fördernde egal] und bei Interesse könnten wir dann taskforces bilden.
#fediverse #activitypub #interop #c2s
Würde dann 1 Aufruf starten …
policy wie immer, be excellent, no nazis und so :) -
Multiple attachments in #AndStatus implemented in v.52.00, currently in Beta https://github.com/andstatus/andstatus/issues/456
Showing multiple attachments in incoming notes should work for all Social networks.
But sending, for now, was implemented only for #Mastodon (tested to work)
and for #ActivitiPub #C2S (needs fixes for image posting yet... see https://git.pleroma.social/pleroma/pleroma/issues/1171 )
@lanodan @kaniini