Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Recently, there was a discussion about generic #ActivityPub servers.

Moved Technical Discussion
16 6 5

Gli ultimi otto messaggi ricevuti dalla Federazione
  • @silverpill @steve so maybe instead of "generic activitypub server" the FEP should be called something like "explicitly specifying side effects with the result property". it seems to me like the references to 2277 and fe34 are not strictly necessary to the core idea and a separate FEP could bundle them together into a profile, like "a profile for using outbox activities to manage objects and collections". not sure what the best name is because naming things is the hardest

    read more

  • @silverpill @steve it sounds like you're describing an "AP server" whose primary functionality is not "publish activities" but rather "manage CRUD for objects and Add/Remove for collections", by taking the AP "side effects" for Create/Update/Delete/Add/Remove and and saying the outbox should also check as:result.

    which is cool but should probably be disambiguated.

    read more

  • @silverpill @steve typically i've taken a view similar to IFTTT -- the activities describe things that happen, probably already happened. one or more listeners can do whatever they want with that information. CRUD is boring to me and i would rather do that with HTTP (POST/GET/PUT/DELETE); the more interesting activities are things like Listen (scrobbles) or Arrive (checkins) or Question (stackoverflow) or so on.

    read more

  • @silverpill @steve this actually raises an interesting question about "side effects" and where they live. in the AP spec it's rather muddled and i've talked before about the issue of "activities as content/notifications vs activities as procedure calls". i personally err toward having no side effects, which i think were kind of a mistake for the reason you bring up (generic servers can never be aware of extended side effects).

    read more

  • @silverpill @mariusor @trwnh
    > This FEP introduces new requirements to ActivityPub, and I will probably add more in the future. Does that make it non conformant?

    Not at all. I was referring to the `Add` without an `object` to create a collection (instead of Create/Collection, I assume).

    read more

  • @steve @mariusor @trwnh

    This FEP introduces new requirements to ActivityPub, and I will probably add more in the future. Does that make it non conformant?

    In any case, I think calling it an ActivityPub server is appropriate.

    Side-effects are activities, I will clarify that in the FEP. The value of result property can be an embedded activity, or an array of activities.

    Clients either specify them, or they don't get any side effects.

    read more

  • @silverpill @mariusor @trwnh In principle, I like the general idea, but I think it's misleading to call this an "ActivityPub" server FEP since it doesn't conform to the ActivityPub specifications. You also recommend (require?) using the `result` property to describe server side-effects, but you don't describe *how*. I don't know how you expect to "force clients to specify them".

    read more

  • Yes, I think I like the idea of clients being able to store data on the server however they like. It reminds me of this description of ATProto that I found recently: https://overreacted.io/a-social-filesystem/

    I guess my question is: once I store my custom stuff in custom places on my server, how do I publish this so other people can find?

    And, object IDs are usually defined by the server. So how would it work to say "create a collection named XYZ and add this object to it"?

    @silverpill @mariusor @trwnh

    read more
Post suggeriti
  • 0 Votes
    1 Posts
    15 Views
    I had the opportunity to attend FOSDEM 2026 virtually, and I spent almost all of my time in the [Social Web](https://fosdem.org/2026/schedule/track/social-web/) track. A few themes kept coming up across talks. Some were explicit, some were between the lines. Either way, they prompted a bunch of thoughts I wanted to capture. DISCLAIMER: AI was used to help me organize and improve the flow of this post. Ideas and thoughts expressed are my own. ## Hosting is hard In [*Building a sustainable Italian Fediverse: overcoming technical, adoption and moderation challenges*](https://fosdem.org/2026/schedule/event/VKHGXT-building_a_sustainable_italian_fediverse_overcoming_technical_adoption_and_moder/), there was a moment (not the main focus of the talk) where hosting came up in a way that really stuck with me. I’m paraphrasing, so apologies if I misrepresent anything, but the gist was: - Hosting Mastodon is hard, so we simplify with hosting services like Masto.Host - Hosting PixelFed and PeerTube is easier thanks to appliances like YunoHost Based on my own experience, that rings true, with some nuance. Getting Mastodon running isn’t actually the hardest part. The self-hosting docs are good enough in my opinion, and that’s how I originally stood up my instance at [toot.lqdev.tech](https://toot.lqdev.tech/@lqdev). I even maintain guides for [cleanup](https://lqdev.me/resources/wiki/mastodon-server-cleanup/) and [upgrades](/resources/wiki/mastodon-server-upgrades/) that largely mirror the official Mastodon documentation and release notes. The harder part is everything after provisioning. Mastodon (especially with federation enabled) can be resource-intensive, and that cost shows up fast even on a single-user instance. If I’m not staying on top of maintenance, disk fills up. Every few weeks, my instance will go down because I’ve run out of storage. Add database migrations, which can be error-prone, and you end up with a setup that’s straightforward to launch but expensive to operate. You pay in money for a big enough server, and you pay in time for ongoing maintenace. I still want to participate in the Fediverse, but I don’t want to keep paying the maintenance tax for Mastodon. That’s one of the reasons [I implemented ActivityPub on my static site](/notes/website-now-natively-posts-to-the-fediverse-2026-01-22/) instead. On the PixelFed side, I did try to self-host it once, and I couldn’t get it working cleanly from scratch. Some of that is on me (I’m not familiar with PHP), but either way, YunoHost was a lifesaver. With YunoHost, I had PixelFed up and running quickly, and what that ecosystem provides is genuinely impressive. That said, I also learned the “operations” lesson there too. During an upgrade, something went wrong with the database, it got corrupted, and I couldn’t restore from backup. I ultimately took the instance down. I’m willing to attribute that to user error, but it still reinforces the bigger point. The promise of federation and decentralization is that you can stand up your own node for yourself, your family, a school, a company, a city, even a government. In practice, that’s still too hard for most people unless they use appliances like YunoHost or managed hosting like Masto.Host. And yes, those options mean giving up some control. But even with that tradeoff, I’d argue it’s still better than centralized platforms. As someone fairly technical and a little extreme about owning the whole stack (I implemented my own static site generator, Webmentions service, and now ActivityPub), I still find this hard. I can’t imagine how unapproachable it feels if you’re not technical. I just wish it were simpler and more cost-effective to run these services without needing either deep system administration knowledge or active ongoing maintenance. ## One identity, many post types In the talk, [*How to level up the Fediverse*](https://fosdem.org/2026/schedule/event/HVJRNV-how_to_level_up_the_fediverse/), Christine and Jessica talked about ActivityPub implementations and touched on something that really resonated with me. The idea (again, paraphrasing) was that splitting content types by app (video goes to PeerTube, images go to PixelFed, microblogging goes to Mastodon) might not be the right long-term model. Instead, they suggested something closer to one place to publish and follow people, with rich post types handled in one identity and one experience. That immediately made me think about Tumblr. When I first heard [Tumblr was planning to implement ActivityPub](https://techcrunch.com/2022/11/21/tumblr-to-add-support-for-activitypub-the-social-protocol-powering-mastodon-and-other-apps/), I was excited because Tumblr is already “that kind of app.” You can publish videos, photos, polls, longer posts, and everything in between, all in one place. There was also talk about [moving Tumblr to WordPress](https://techcrunch.com/2024/08/28/tumblr-to-move-its-half-a-billion-blogs-to-wordpress/), which (in theory) could make ActivityPub integration even more powerful. But as of now, [Tumblr’s ActivityPub work seems to be paused](https://techcrunch.com/2025/07/01/automattic-puts-tumblr-migration-to-wordpress-on-hold/). The more I think about it, the more this model makes sense, especially because the most important part isn’t the “single app.” It’s the single identity. You should have one account where your content originates. Then people can consume it from different experiences. Maybe that is a video-focused client, maybe it is an image-first view, maybe it is a Mastodon-like timeline. The key is that you do not need separate accounts everywhere. That’s essentially how I think about my website. My site is my digital home and my identity. I post different content types which align with [IndieWeb post types](https://indieweb.org/posts#Types_of_Posts): - Articles - Notes - Responses (reposts, replies, likes) - Bookmarks - Media (photos and videos) - RSVPs People can follow via RSS. And more recently, I implemented my own ActivityPub support so my posts generate native ActivityPub activities. That means Mastodon and other clients can follow and interact with my site directly. What I like about this is that it decouples publishing from consumption. I choose where I publish (my site). Others choose how they consume (their client). The protocols handle the translation. ## The web is already social and decentralized In Social Web conversations, sometimes the tone implies the "social web" is separate from "the web". I don't really buy that. The web is social because people are on it. People use it to learn, create, find community, do commerce, argue, collaborate, share memes, and everything else. The web is also decentralized by default. That's the baseline architecture. Dave Winer recently wrote about software being ["of the web"](http://scripting.com/2025/11/24/141418.html). Software that's built to share data, accept input, produce output, and let users move their data. Not locked into silos. This is why I'm so bullish on a different architectural approach: **start as a website, add social capabilities as components.** People are already using WordPress, Ghost, and Micro.blog to build sites. With an ActivityPub plugin, your existing web presence becomes followable and interactive in the Fediverse. The site remains a site. It just gets socially interoperable. Bridgy Fed reinforces this. It takes what already exists on the web and helps it participate in social protocols, without forcing you to rebuild as a native social app first. That's also my own setup. My website worked as a publishing platform and people could follow via RSS. When I implemented ActivityPub, it became progressively enhanced. Same posts, new social vocabulary. I didn't have to abandon my site. I just made it speak the social language. ## Modular and extensible feels like the right direction This is the architectural vision I took away from Bonfire: [Building Modular, Consentful, and Federated Social Networks](https://fosdem.org/2026/schedule/event/3QHALR-bonfire_building_modular_consentful_and_federated_social_networks/). The "opt-in pieces" approach is about choosing which parts you want, evolving your experience based on what you enable. It echoes [small pieces loosely joined](http://scripting.com/2026/01/30/140150.html). It's a practical model for a federated future: - Start with the basic web - Add social capabilities as components - Get progressively more powerful as you opt in Your site still works normally. When you speak the lingua franca of protocols like ActivityPub, you can express social intent in a way other systems understand. So it's not "the web vs the social web." It's the web, with richer native social vocabulary. ## Conclusion This probably reads like I’m nitpicking, but I’m genuinely bullish on federated and decentralized networks. That’s why I’m still participating. What stood out to me at FOSDEM this year is momentum. Last year, the Social Web track was a half day. This year, it expanded to a full day. That signals to me that there are a lot of smart, passionate people working across protocol design, UX, moderation, policy, community, activism, and implementation, trying to build real alternatives to entrenched silos. And the plurality of implementations is a strength. It encourages exploration, competition, and innovation. My hope is that the “end state” isn’t a separate social web you have to join. It’s a web that continues to work as expected, but gets progressively enhanced when you opt into interoperable social protocols. Ultimately, there isn’t “the web” and “the social web.” There's just the web, and social vocabularies that participants can adopt without thinking about it.
  • 0 Votes
    7 Posts
    16 Views
    @jansenspott @mthie ich will mich nicht aus der Affäre ziehen, aber alles was wir mit dem Plugin machen ist: wir schicken eine Überschrift, eine summary, den content mit inline images und die Images nochmal als attachment. Dadurch kann jedes empfangende Netzwerk entscheiden was es am besten anzeigen. Ich schau mir das aber gerne im neuen Jahr nochmal an. Vielleicht finden wir ja mit den gotosocial devs eine schöne Lösung!
  • 0 Votes
    2 Posts
    14 Views
    josh@2tonwaffle.social :eyes:
  • 0 Votes
    1 Posts
    15 Views
    📦 New release for mastodon/mastodon!Version: v4.4.8Name: v4.4.8<h1><picture> <source media="(prefers-color-scheme: dark)" srcset="./lib/assets/wordmark.dark.png?raw=true"> <source media="(prefers-color-scheme: light)" srcset="./lib/assets/wordmark.light.png?raw=true"> <img alt="Mastodon" src="./lib/assets/wordmark.light.png?raw=true" height="34"></pictur...Check it out and contribute! 🚀https://github.com/mastodon/mastodon/releases/tag/v4.4.8 #activitypub#opensource #mastodon#fediverse