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

Cross-server Interactions in ActivityPub

General Discussion
9 7 0
  • Cross-server Interactions in ActivityPub

    So, Richard McManus asked me about how ActivityPub supports cross-server usage. As an example use case, let’s say a user with the account eric@social.example wants to comment on a photo by dionne@photos.example. In this scenario, Eric would go to the page https://photos.example/users/dionne/photos/1 and enter a comment. How would that work? I can talk about how it would work using the ActivityPub API. But I’m going to have to explain a lot about the API first!

    ActivityPub’s API is how client applications interact with the data on a user’s main account server. It lets the user read data on the same or other servers, and it lets them create activities and other kinds of objects on that server that get shared (under the user’s control) with the rest of the world.

    We can all kind of imagine this working for the general-purpose social apps we use — things like an Android social app. But what if we think about more special-purpose apps — applications that provide particular functionality not found in most general-purpose social clients? Let’s consider an ActivityPub enabled photo-editing tool that lets you change lighting, add cartoon characters, change your appearance, or other modifications that are often seen in “filters” on Instagram or Snap:

    Two neat things to note: first, yes, there are control mechanisms so that remote apps can’t do just anything they want behind your back; you get control. The other thing that’s neat is that because ActivityPub is very extensible, you can have all kinds of cool apps interacting with your ActivityPub account. Games, dating, ecommerce, all kinds of stuff.

    Now, what does all this have to do with cross-server interactions? Here’s the idea: when a user from social.example is browsing the web site for photos.example and wants to interact with the people or the photos, they log in and treat that remote server as if it was an ActivityPub client. Then, the ActivityPub server reports the activities back to the remote server using the ActivityPub federation protocol.

    This is actually a good model that works fairly well. It makes your own ActivityPub server your real home on the social web, where all your activities go through. It’s still in development and unfolding in the ActivityPub world — not everyone supports the ActivityPub API fully, so it’s hard to see these benefits today.

    This is a topic I cover in my book ActivityPub: Programming for the Social Web, so if you’re interested in more detail, please check out the book.

  • Cross-server Interactions in ActivityPub

    So, Richard McManus asked me about how ActivityPub supports cross-server usage. As an example use case, let’s say a user with the account eric@social.example wants to comment on a photo by dionne@photos.example. In this scenario, Eric would go to the page https://photos.example/users/dionne/photos/1 and enter a comment. How would that work? I can talk about how it would work using the ActivityPub API. But I’m going to have to explain a lot about the API first!

    ActivityPub’s API is how client applications interact with the data on a user’s main account server. It lets the user read data on the same or other servers, and it lets them create activities and other kinds of objects on that server that get shared (under the user’s control) with the rest of the world.

    We can all kind of imagine this working for the general-purpose social apps we use — things like an Android social app. But what if we think about more special-purpose apps — applications that provide particular functionality not found in most general-purpose social clients? Let’s consider an ActivityPub enabled photo-editing tool that lets you change lighting, add cartoon characters, change your appearance, or other modifications that are often seen in “filters” on Instagram or Snap:

    Two neat things to note: first, yes, there are control mechanisms so that remote apps can’t do just anything they want behind your back; you get control. The other thing that’s neat is that because ActivityPub is very extensible, you can have all kinds of cool apps interacting with your ActivityPub account. Games, dating, ecommerce, all kinds of stuff.

    Now, what does all this have to do with cross-server interactions? Here’s the idea: when a user from social.example is browsing the web site for photos.example and wants to interact with the people or the photos, they log in and treat that remote server as if it was an ActivityPub client. Then, the ActivityPub server reports the activities back to the remote server using the ActivityPub federation protocol.

    This is actually a good model that works fairly well. It makes your own ActivityPub server your real home on the social web, where all your activities go through. It’s still in development and unfolding in the ActivityPub world — not everyone supports the ActivityPub API fully, so it’s hard to see these benefits today.

    This is a topic I cover in my book ActivityPub: Programming for the Social Web, so if you’re interested in more detail, please check out the book.

  • Cross-server Interactions in ActivityPub

    So, Richard McManus asked me about how ActivityPub supports cross-server usage. As an example use case, let’s say a user with the account eric@social.example wants to comment on a photo by dionne@photos.example. In this scenario, Eric would go to the page https://photos.example/users/dionne/photos/1 and enter a comment. How would that work? I can talk about how it would work using the ActivityPub API. But I’m going to have to explain a lot about the API first!

    ActivityPub’s API is how client applications interact with the data on a user’s main account server. It lets the user read data on the same or other servers, and it lets them create activities and other kinds of objects on that server that get shared (under the user’s control) with the rest of the world.

    We can all kind of imagine this working for the general-purpose social apps we use — things like an Android social app. But what if we think about more special-purpose apps — applications that provide particular functionality not found in most general-purpose social clients? Let’s consider an ActivityPub enabled photo-editing tool that lets you change lighting, add cartoon characters, change your appearance, or other modifications that are often seen in “filters” on Instagram or Snap:

    Two neat things to note: first, yes, there are control mechanisms so that remote apps can’t do just anything they want behind your back; you get control. The other thing that’s neat is that because ActivityPub is very extensible, you can have all kinds of cool apps interacting with your ActivityPub account. Games, dating, ecommerce, all kinds of stuff.

    Now, what does all this have to do with cross-server interactions? Here’s the idea: when a user from social.example is browsing the web site for photos.example and wants to interact with the people or the photos, they log in and treat that remote server as if it was an ActivityPub client. Then, the ActivityPub server reports the activities back to the remote server using the ActivityPub federation protocol.

    This is actually a good model that works fairly well. It makes your own ActivityPub server your real home on the social web, where all your activities go through. It’s still in development and unfolding in the ActivityPub world — not everyone supports the ActivityPub API fully, so it’s hard to see these benefits today.

    This is a topic I cover in my book ActivityPub: Programming for the Social Web, so if you’re interested in more detail, please check out the book.

    @dave @adam this is a great post from @evan on how people can make comments across the fediverse.

  • @evan @evanprodromou Thanks Evan, it sounds compelling and I look forward to reading more! Re “It makes your own ActivityPub server your real home on the Web” -> is the idea that you would host your own AP server (e.g. for me it could be at ricmac.org), or do you think managed services will emerge that offer this as a service? Or is it something you can do with your Mastodon account potentially?

  • @evan @evanprodromou Thanks Evan, it sounds compelling and I look forward to reading more! Re “It makes your own ActivityPub server your real home on the Web” -> is the idea that you would host your own AP server (e.g. for me it could be at ricmac.org), or do you think managed services will emerge that offer this as a service? Or is it something you can do with your Mastodon account potentially?

    @ricmac
    ActivityPub servers capable of hosting your identity at a domain of your choice, rather than the servers' own domain, are going to be a thing. Mastodon today doesn't do that. One of the few that does is @takahe - but it'll become more common for a general purpose "social" server.

    And then there are going to be the special purpose apps, which will also speak ActivityPub - in their domains, or yours, depending on their ops model.
    @evan @evanprodromou

  • @ricmac
    ActivityPub servers capable of hosting your identity at a domain of your choice, rather than the servers' own domain, are going to be a thing. Mastodon today doesn't do that. One of the few that does is @takahe - but it'll become more common for a general purpose "social" server.

    And then there are going to be the special purpose apps, which will also speak ActivityPub - in their domains, or yours, depending on their ops model.
    @evan @evanprodromou

    @osma @ricmac @takahe @evan @evanprodromou i'd add that @gotosocial is a really good option for own-domain activitypub server, too.

  • @ricmac
    ActivityPub servers capable of hosting your identity at a domain of your choice, rather than the servers' own domain, are going to be a thing. Mastodon today doesn't do that. One of the few that does is @takahe - but it'll become more common for a general purpose "social" server.

    And then there are going to be the special purpose apps, which will also speak ActivityPub - in their domains, or yours, depending on their ops model.
    @evan @evanprodromou

    @osma @takahe @evan @evanprodromou

    Osma, just to note that @evanprodromou replied to you and I on his blog: https://evanp.me/2024/04/22/cross-server-interactions-in-activitypub/#comment-942 (and the fact those comments didn't flow through to Mastodon shows some of the practical issues we're dealing with!)

  • @osma @ricmac @takahe @evan @evanprodromou @gotosocial huh, interesting idea...my assumption was that takahe maintained a separate "federated timeline" for each domain it was configured with.

  • Cross-server Interactions in ActivityPub

    So, Richard McManus asked me about how ActivityPub supports cross-server usage. As an example use case, let’s say a user with the account eric@social.example wants to comment on a photo by dionne@photos.example. In this scenario, Eric would go to the page https://photos.example/users/dionne/photos/1 and enter a comment. How would that work? I can talk about how it would work using the ActivityPub API. But I’m going to have to explain a lot about the API first!

    ActivityPub’s API is how client applications interact with the data on a user’s main account server. It lets the user read data on the same or other servers, and it lets them create activities and other kinds of objects on that server that get shared (under the user’s control) with the rest of the world.

    We can all kind of imagine this working for the general-purpose social apps we use — things like an Android social app. But what if we think about more special-purpose apps — applications that provide particular functionality not found in most general-purpose social clients? Let’s consider an ActivityPub enabled photo-editing tool that lets you change lighting, add cartoon characters, change your appearance, or other modifications that are often seen in “filters” on Instagram or Snap:

    Two neat things to note: first, yes, there are control mechanisms so that remote apps can’t do just anything they want behind your back; you get control. The other thing that’s neat is that because ActivityPub is very extensible, you can have all kinds of cool apps interacting with your ActivityPub account. Games, dating, ecommerce, all kinds of stuff.

    Now, what does all this have to do with cross-server interactions? Here’s the idea: when a user from social.example is browsing the web site for photos.example and wants to interact with the people or the photos, they log in and treat that remote server as if it was an ActivityPub client. Then, the ActivityPub server reports the activities back to the remote server using the ActivityPub federation protocol.

    This is actually a good model that works fairly well. It makes your own ActivityPub server your real home on the social web, where all your activities go through. It’s still in development and unfolding in the ActivityPub world — not everyone supports the ActivityPub API fully, so it’s hard to see these benefits today.

    This is a topic I cover in my book ActivityPub: Programming for the Social Web, so if you’re interested in more detail, please check out the book.

    @evanprodromou I wish we'd also had a url handle to deal with everything. like web+ap:// but supported by everyone and used for everything, not just links.

    https://fedilinks.org/spec/en/6-The-web-ap-URI


Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti
  • 0 Votes
    7 Posts
    58 Views
    @julian @mayel @dansup that's why most people use american tech. If nobody is aware of your work, your work can't speak for itself
  • 0 Votes
    1 Posts
    11 Views
    I could use some #FediHelp with some website traffic weirdness I have encountered.I use a #WordPress blog with the #ActivityPub plugin. This means that I get #Fediverse -based requests that look like this in the #Apache logs:"POST /wp-json/activitypub/1.0/actors/1/inbox HTTP/1.1"So far, so unspectacular. In the latest logs - spanning from 20/Nov/2025:01:49:32 to 21/Nov/2025:05:49:47 - I've had 2046 such requests. Most of these are one-time affairs.However, 1099 of these requests are from mastodon.sdf.org , which is very suspicious. They are very evenly spread, too - a new request comes every minute or two.This instance is on #Mastodon 4.1.25. Does this version have a known bug where it sends the same request over and over again?@SDF
  • 0 Votes
    1 Posts
    10 Views
    #datocurioso ¿Creías que el #fediverso se limitaba solo al microblogging de #Mastodon? ¡Piénsatelo de nuevo!El fediverso es un cosmos interconectado regido por el protocolo #ActivityPub, y alberga un sinfín de mundos más allá de las publicaciones cortas. Puedes encontrar alternativas descentralizadas para casi cualquier servicio centralizado que conozcas: ¿Buscas compartir imágenes al estilo Instagram? Existe #Pixelfed.¿Anhelas un espacio para vídeos como YouTube? Tienes a tu disposición #PeerTube, que usa tecnología P2P para aligerar la carga.¿ quieres compartir videos cortos al estilo tik Tok? Prueba #loops!¿Prefieres los agregadores de enlaces al estilo Reddit? #Lemmy es tu destino. ¿ buscas compartir tu #podcast? #funkwhale es a donde debes ir.¿ te gusta escribir o quieres hacer un blog? Intenta con #WriteAs¡Y eso solo es la punta del iceberg!El fediverso no es un solo lugar, sino una constelación de plataformas que interactúan entre sí, una red de redes libres, abiertas y federadas, permitiendo a un usuario de Mastodon o de algún otro servicio federado seguir e interactuar con alguien en PeerTube o Pixelfed, etc. ¡La verdadera magia radica en la interoperabilidad y la libertad de elección! #SoftwareLibre #Tecnologia #Privacidad ✨‍♂️🎙️
  • 0 Votes
    1 Posts
    5 Views
    🌀 Misskey 帳戶遷移實際會遷移哪些資料? / What data is actually migrated during Misskey account migration? / Misskey のアカウント移行ではどのデータが移行されますか?⸻🇹🇼 中文 / Chinese (Traditional)最近在研究 Misskey 的「帳戶遷移」功能,想更清楚了解它實際會遷移哪些資料。目前看起來它會轉移「追隨與被追隨」的關係,但我不確定是否也包含: • 使用者頭像、橫幅與簡介 • 貼文、圖片與附件 • 使用者設定與偏好另外,如果兩台伺服器之間的聯邦協議(ActivityPub)通訊正常,是否代表遷移時能自動同步所有可用資料?我想確認 Misskey 的帳戶遷移到底是偏向「社交關係導向」(像 ActivityPub 的 Move 活動),還是能完整搬移內容與媒體的「資料轉移」。如果有開發者或懂協議的朋友能說明一下,會很感謝 🙏⸻🇬🇧 EnglishI’m trying to understand how Misskey account migration actually works.From what I’ve seen, it seems to transfer followers and following, but I’m not sure if it also includes: • Profile info (avatar, header, bio) • Posts, images, attachments • User settings or preferencesIf both instances communicate properly over ActivityPub, does migration automatically sync all available data?I’d like to know if Misskey’s migration is more like a “social relationship redirection” (similar to ActivityPub’s Move), or a full “data transfer” including posts and media.Any insights from developers or experienced admins would be appreciated 🙌⸻🇯🇵 日本語 / Japanese最近、Misskey の アカウント移行 機能について調べています。実際にどのデータが移行されるのか、もう少し詳しく知りたいです。現時点では、フォロー/フォロワー関係は引き継がれるようですが、次の項目も含まれるのでしょうか? • プロフィール情報(アイコン、ヘッダー、自己紹介) • 投稿・画像・添付ファイル • ユーザー設定や環境設定また、サーバー間の ActivityPub 通信が正常な場合、自動でデータ同期が行われるのでしょうか?Misskey のアカウント移行は ActivityPub の Move のような「ソーシャル関係の移動」なのか、それともユーザーコンテンツを含む「完全なデータ転送」に近いのか、開発者や詳しい方の意見をお聞きしたいです 🙏⸻#Misskey #帳戶遷移 #アカウント移行#ActivityPub #聯邦宇宙 #フェディバース#Fediverse #DecentralizedSocial #分散型SNS#AccountMigration #資料同步 #データ移行#MisskeyDev #技術討論 #技術交流 #技術的議論#SelfHost #OpenProtocol #オープンプロトコル#FediverseTech #MisskeyCommunity #Misskey開発⸻