GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Conversation

Notices

  1. Embed this notice
    Steve Bate (steve@social.technoetic.com)'s status on Wednesday, 25-Feb-2026 01:37:44 JST Steve Bate Steve Bate

    What if... you had one Fedi account on a generic headless #ActivityPub server that simply hosts and federates your data... and had C2S UIs for microblogging, long form writing, media editing and sharing, link aggregation, games, fitness tracking, and so on, that all used that same Fedi account. Technically, it's a similar concept as ATProto (but no relay and app view) and Solid Pods (but no RDF).

    It seems possible... if we can improve the AP C2S API/protocol sufficiently.

    In conversation about 4 months ago from social.technoetic.com permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Wednesday, 25-Feb-2026 01:38:56 JST Evan Prodromou Evan Prodromou
      in reply to

      @steve I believe in this mission.

      In conversation about 4 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Wednesday, 25-Feb-2026 04:05:20 JST silverpill silverpill
      in reply to

      @steve If by "sufficiently improve" you mean throwing it away and replacing with a better protocol, then yes it's possible.

      In conversation about 4 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 00:17:08 JST Evan Prodromou Evan Prodromou
      in reply to
      • Lutin Discret

      @lutindiscret @steve this is built into ActivityPub and has been since the start.

      In conversation about 3 months ago permalink
    • Embed this notice
      Lutin Discret (lutindiscret@mastodon.libre-entreprise.com)'s status on Thursday, 26-Feb-2026 00:17:10 JST Lutin Discret Lutin Discret
      in reply to

      @steve this is a reason why blue sky made a new protocol. Tu support that first day. Fedi will take 20 years to do that

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 00:42:49 JST Evan Prodromou Evan Prodromou
      in reply to
      • silverpill

      @silverpill @steve

      I can't wait to see what you build! Good luck.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 02:07:50 JST Evan Prodromou Evan Prodromou
      in reply to
      • Raphael Lullis
      • silverpill

      @raphael @silverpill @steve

      Silverpill does not agree with us. I am wishing Silverpill well in their plan to rebuild with a completely different API. Silverpill is skilled and smart and very familiar with ActivityPub in great detail, so I'm sure they will come up with some interesting API architecture.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 02:07:52 JST Evan Prodromou Evan Prodromou
      in reply to
      • Raphael Lullis
      • silverpill

      @raphael @silverpill @steve I also think that Steve's vision is realisable with ActivityPub API, although I think adding optional features like search, server push and so on makes it easier.

      In conversation about 3 months ago permalink
    • Embed this notice
      Raphael Lullis (raphael@mastodon.communick.com)'s status on Thursday, 26-Feb-2026 02:07:53 JST Raphael Lullis Raphael Lullis
      in reply to
      • Evan Prodromou
      • silverpill

      @evan @silverpill @steve

      Maybe I am way over my head, but this seems like *exactly* what I am building right now and I'm not really building anything outside of ActivityPub C2S?

      I mean... Yes, my current client assumes some specific profile for OAuth and the client will need a proxy to get some data remote servers (to bypass authorized fetch, or to resolve documents from transient activities), but doesn't seem to me that anything I am doing is outside of AP's scope?

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 02:09:34 JST Evan Prodromou Evan Prodromou
      in reply to
      • Raphael Lullis
      • silverpill

      @raphael @silverpill @steve I don't intend to stop working on the ActivityPub API.

      There are a lot of us collaborating through the SocialCG ActivityPub API Task Force, and I expect that collaboration to continue:

      https://github.com/swicg/activitypub-api

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 02:24:09 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius

      @mariusor @steve Does your server work with https://checkin.swf.pub/ ? Or https://github.com/evanp/ap ?

      In conversation about 3 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
        GitHub - evanp/ap: command-line ActivityPub API client
        command-line ActivityPub API client. Contribute to evanp/ap development by creating an account on GitHub.
      2. No result found on File_thumbnail lookup.
        Checkin
    • Embed this notice
      marius (mariusor@metalhead.club)'s status on Thursday, 26-Feb-2026 02:24:10 JST marius marius
      in reply to

      @steve I've built the server part already, that was 5 years ago. Still waiting for people with the skills to build the UIs though...

      In conversation about 3 months ago permalink
    • Embed this notice
      Matthias Pfefferle (pfefferle@mastodon.social)'s status on Thursday, 26-Feb-2026 03:29:52 JST Matthias Pfefferle Matthias Pfefferle
      in reply to
      • marius
      • Evan Prodromou

      @evan @mariusor @steve oh neat!

      https://matthiaspfefferle.blog/2026/02/25/checked-in-at-ettlingen/

      https://github.com/Automattic/wordpress-activitypub/pull/2977

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 05:41:41 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Matthias Pfefferle

      @pfefferle @mariusor @steve WHAT

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 05:43:22 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Matthias Pfefferle

      @pfefferle @mariusor @steve that's awesome!

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Thursday, 26-Feb-2026 05:45:25 JST silverpill silverpill
      in reply to
      • Raphael Lullis
      • Evan Prodromou

      @evan @raphael @steve I think a generic ActivityPub server can't be built without major changes to ActivityPub. For example, it might be necessary to make all side-effects of activities explicit.

      And there is a bigger problem. A generic server without FEP-ef61 is like ATProto PDS or Nostr relay but all data is tied to a single server. This means that it is obsolete before the work has even begun.

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Thursday, 26-Feb-2026 18:42:49 JST silverpill silverpill
      in reply to
      • Raphael Lullis
      • Evan Prodromou

      @steve @evan @raphael A server can't properly process an arbitrary activity without knowing its side effects. A server that only supports a small number of activities mentioned in the ActivityPub spec is obviously not generic.

      I can point to other challenges because I've been working on this problem for years, but...

      Several generic AP server implementations have been built
      There are also simpler ways to design servers so that content isn't tied to a specific server

      Wow, for real? I suppose it's time for me to retire then.

      In conversation about 3 months ago permalink
      Blurry Moon likes this.
    • Embed this notice
      Steve Bate (steve@social.technoetic.com)'s status on Thursday, 26-Feb-2026 18:42:50 JST Steve Bate Steve Bate
      in reply to
      • Raphael Lullis
      • Evan Prodromou
      • silverpill

      @silverpill @evan @raphael Several generic AP server implementations have been built, so I don't know what you mean by the side-effect comment. Note that my mental model of a generic server doesn't implement any domain-specific behaviors in the server, but only side-effects specified by AP (and extended generic C2S support). There are also simpler ways to design servers so that content isn't tied to a specific server (with different tradeoffs than FEP-ef61). That's a long discussion...

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Thursday, 26-Feb-2026 19:25:08 JST silverpill silverpill
      in reply to
      • marius
      • Raphael Lullis
      • Evan Prodromou

      @mariusor @steve @evan @raphael

      I don't see any reason to call this a generic server if it doesn't support extensions. Just a headless server that implements AP C2S

      In conversation about 3 months ago permalink
    • Embed this notice
      marius (mariusor@metalhead.club)'s status on Thursday, 26-Feb-2026 19:25:09 JST marius marius
      in reply to
      • Raphael Lullis
      • Evan Prodromou
      • silverpill

      @silverpill I think you're getting confused about ActivityPub side-effects and application logic side-effects.

      I call my project FedBOX a "Generic ActivityPub server" because outside of storing ActivityPub objects and activities to a local storage and dispatching said activities to their recipients it doesn't do anything else.

      However there's nothing preventing someone from forking the project and adding some other type of logic to it for specific combinations of Activities/Objects. That's the thing I'm trying to do with my GoActivityPub library: take care of the ActivityPub stuff, so you can then do your own stuff alongside it.

      @steve @evan @raphael

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Thursday, 26-Feb-2026 20:26:04 JST silverpill silverpill
      in reply to

      @mariusor @steve @evan @raphael An extension is a protocol extension. Specifically, I talked about activity types that are not mentioned in ActivityPub.

      Here is a side effect of a Like activity:

      The side effect of receiving this in an outbox is that the server SHOULD add the object to the actor's liked Collection.

      Now imagine that you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect.

      A generic server should be able to do that.

      In conversation about 3 months ago permalink
    • Embed this notice
      marius (mariusor@metalhead.club)'s status on Thursday, 26-Feb-2026 20:26:06 JST marius marius
      in reply to
      • Raphael Lullis
      • Evan Prodromou
      • silverpill

      @silverpill what are extensions exactly? Are you talking about FEPs that proscribe behaviour alongside structure, or ActivityPub extensions as allowed by JSON-LD.

      The FEPs that proscribe behaviour can't ever be done in a "generic" way, and I'm betting you already know that and you're just being facetious.

      However the JSON-LD dynamic structure can be reasoned about generically from an ActivityPub point of view using the points I made above: storage to disk, dispatch to recipients.

      If you plug smart clients on top of that that have the specific logic you want, you're all the way there to what Steve was talking about.

      @steve @evan @raphael

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 22:11:48 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Raphael Lullis
      • silverpill

      @silverpill @mariusor @steve @raphael

      I think it's a fair critique and one that we should deal with.

      However, I think it's possible to provide value where the server implements side effects of AP core, and not for any other Activity Vocabulary activities or extensions.

      With the core AP activities, we can probably give clients most of what they need to implement "side effects" for extensions.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 22:16:22 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Raphael Lullis
      • silverpill

      @silverpill @mariusor @steve @raphael

      For example, let's say we decide that an `Arrive` activity should update the `location` property of the actor.

      `Arrive` isn't a core activity in AP. So, instead of expecting the server to change the `location`, the client can send an additional `Update` activity to change the actor's `location` itself.

      With CRUD activities and collection activities in core we can get a lot of this done from the client side.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 22:23:07 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Raphael Lullis
      • silverpill

      @silverpill @mariusor @steve @raphael

      I think there's value in having a negotiation between the client and the server so the server can declare its support for side effects for extensions. A way for the server to say, "I'll handle side effects for geosocial applications". Then the client can skip implementing those side effects itself.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 22:26:06 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Raphael Lullis
      • silverpill

      @silverpill @mariusor @steve @raphael

      All that said, I think we can get pretty far with the core AP activities with defined side effects, and extension activities with "side effects" implemented by the client.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Thursday, 26-Feb-2026 22:26:07 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius
      • Raphael Lullis
      • silverpill

      @silverpill @mariusor @steve @raphael

      More powerful would be a way for clients or actors to define side effect rules for servers dynamically. "If you get an Arrive activity, set the actor's location."

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Friday, 27-Feb-2026 00:54:23 JST silverpill silverpill
      in reply to
      • marius
      • Raphael Lullis
      • Evan Prodromou

      @steve By side effect I mean anything that is not directly expressed in the activity, and EmojiReact usually doesn't specify that emojiReactions collection should be updated.

      Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.

      Yes, this is what I said in the beginning of this sub-thread. All side-effects should be made explicit (at least for non-standard activities).

      @mariusor @evan @raphael

      In conversation about 3 months ago permalink
    • Embed this notice
      Steve Bate (steve@social.technoetic.com)'s status on Friday, 27-Feb-2026 00:54:26 JST Steve Bate Steve Bate
      in reply to
      • marius
      • Raphael Lullis
      • Evan Prodromou
      • silverpill

      @silverpill @mariusor @evan @raphael "you have an EmojiReact activity which server should add to object's emojiReactions collection as a side-effect."

      It's a direct rather than side effect, but how is that different from Add(object=EmojiReact, target=object_emojiReactions)? A generic server could support that.

      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Friday, 27-Feb-2026 03:19:25 JST Evan Prodromou Evan Prodromou
      in reply to
      • Raphael Lullis
      • silverpill

      @silverpill @raphael @steve I think that comes down to what you mean by "support".

      I think a server that delivers extension activities, or activities with extension properties or extension types as `object` etc , locally or remotely, is "supporting" those types.

      Implementing server-side side effects of some extensions may be a bonus, but we can build a lot of great stuff without it.

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Friday, 27-Feb-2026 03:19:27 JST silverpill silverpill
      in reply to
      • Raphael Lullis
      • Evan Prodromou

      @raphael @steve @evan It relates to ActivityPub API because ActivityPub is described as an extensible protocol. If a server doesn't support "extensions", it is not a generic server.

      In conversation about 3 months ago permalink
    • Embed this notice
      Raphael Lullis (raphael@mastodon.communick.com)'s status on Friday, 27-Feb-2026 03:19:28 JST Raphael Lullis Raphael Lullis
      in reply to
      • Evan Prodromou
      • silverpill

      @silverpill @steve @evan

      I don't follow: how does that relate to the "ActivityPub API" if the activity is "arbitrary" and not defined by ActivityPub, not using AS2 vocabulary?

      Isn't that like saying that we can't use HTTP as a protocol because an HTTP server doesn't know what to do with verbs defined on, e.g, WebDAV?

      In conversation about 3 months ago permalink
    • Embed this notice
      silverpill (silverpill@mitra.social)'s status on Friday, 27-Feb-2026 06:57:10 JST silverpill silverpill
      in reply to
      • marius
      • Raphael Lullis
      • Evan Prodromou

      @raphael @mariusor @steve @evan Your example is incorrect because activity types are not like HTTP verbs. Like and EmojiReact are part of the same protocol, both are widely used in Fediverse. Not sure what is the point of twisting the meaning of words to make limitations of certain software appear as non-limitations.

      In conversation about 3 months ago permalink
    • Embed this notice
      Raphael Lullis (raphael@mastodon.communick.com)'s status on Friday, 27-Feb-2026 06:57:11 JST Raphael Lullis Raphael Lullis
      in reply to
      • marius
      • Evan Prodromou
      • silverpill

      @silverpill

      I'm really not following this logic: you are saying "a generic HTTP server should be able to serve WebDAV requests".

      Yes, HTTP servers should be able to serve WebDAV requests, *provided* they implement the extension.

      It doesn't mean that they *have* to implement the extension. And an HTTP server that does not support the extension does not make non-HTTP compliant.

      @mariusor @steve @evan

      In conversation about 3 months ago permalink

      Attachments

      1. No result found on File_thumbnail lookup.
        EXTENSION.IT
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Friday, 27-Feb-2026 21:44:08 JST Evan Prodromou Evan Prodromou
      in reply to
      • flo

      @fasnix @steve I don't know. You tell me!

      In conversation about 3 months ago permalink
    • Embed this notice
      flo (fasnix@fe.disroot.org)'s status on Friday, 27-Feb-2026 21:44:09 JST flo flo
      in reply to
      • Evan Prodromou
      @evan @steve

      Isn't that what Holos.social offers (at least very similar)?
      In conversation about 3 months ago permalink
    • Embed this notice
      Evan Prodromou (evan@cosocial.ca)'s status on Friday, 27-Feb-2026 22:29:02 JST Evan Prodromou Evan Prodromou
      in reply to
      • marius

      @mariusor I'll check it!

      In conversation about 3 months ago permalink
    • Embed this notice
      marius (mariusor@metalhead.club)'s status on Friday, 27-Feb-2026 22:29:04 JST marius marius
      in reply to
      • Evan Prodromou

      Hey @evan ... I've looked into why I get issues with checkin.swf.pub, and it could be that I'm doing something wrong, but it hits my servers using client_id=https://checkin.swf.pub/client.jsonld

      Which, when gets dereferenced serves an ActivityPub Actor(ish) like document instead of the Client ID Metadata I'm expecting.

      I remember I was arguing with Emelia about how to server both formats from the same URL, but in the end I decided it's not worth my time trying to do both, and I'm just expecting the data model described in the RFC7591 Sect2: https://datatracker.ietf.org/doc/html/rfc7591#section-2

      In conversation about 3 months ago permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: static.ietf.org
        RFC 7591: OAuth 2.0 Dynamic Client Registration Protocol
        from Phil Hunt
        This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.