🎉 JEU CONCOURS 🎉

Envie de repartir avec un beau panier de légumes frais
d’une valeur de 30€ ? 🥦🍅
On a peut-être ce qu’il vous faut !!

👉 Pour participer, c’est simple :
✔️ Like ce post
✔️ Commente en identifiant 2 amis
✔️ Abonne-toi à notre page

📅 Tirage au sort le 03/04
📍 Résultat annoncé ici et au marché de la Chaponnière

Bonne chance à tous !🍀
#fyp #jeuxconcours #legumes #panierlegumes #bio #BioLocal #produitslocaux #produitslocaux #frais #marchelocal #c2sservice #C2S #jeux #jeu

@steve @hongminhee

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

Which ActivityPub applications support Client-to-Server (C2S)?

In preparation of updating and reorganising of this list I would like to collect current FOSS projects that offer an implementation of ActivityPub C2S. In this [current fedi discussion](https://ausglam.space/@hugh/1144176911799110820) a bunch of projects were already named: - [ActivityPods](http...

Codeberg.org
bovine

Library for building Fediverse applications

Codeberg.org
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

#c2s #activitypub #ios #fediverse #wordpress

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.

#fedidev #fediverse

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.

Special thanks to @mariusor and @trwnh for their input.

#C2S

fep/fep/fc48/fep-fc48.md at main

fep - Fediverse Enhancement Proposals

Codeberg.org

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;

https://socialhub.activitypub.rocks/t/could-hypermedia-driven-application-architecture-be-useful-for-ap-c2s/8521

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) 🤷‍♂️

#FediDevs #ActivityPub #C2S

Could Hypermedia-Driven Application architecture be useful for AP C2S?

Check out this intro to HDA (Hypermedia-Driven Applications); This seems relevant to the ongoing discussions about C2S APIs for the fediverse, especially the proliferation of the monolithic server+web-app antipattern. If Daz (@[email protected]) is correct, properly RESTful APIs that use an HDA architecture might be a way to realise Christine Webber’s original vision. Fediverse web apps with specific purposes, like browsing and posting video, as ways to login to generic AP servers hosting gener...

SocialHub

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.

#ActivityPub #c2s #DevEx

Have I already mentioned that the “Show thread” request is slowly driving me crazy?

#c2s #activityPub #fep7888