Developer of ActivityPub-based micro-blogging and content subscription platform Mitra. I help maintain the FEP repository and write my own FEPs too. Currently working on ActivityPub Next.
Public Key
npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw Profile Code
nprofile1qqsx5he4ms5pyakrp3f8uyjqaa4660hj008e9d877qtacl66tsc7tmqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsde92a5
Show more details
Published at
2026-06-03T07:20:23Z Event JSON
{
"id": "dbd790b352b29ff6d42ff64143d463d623e34a647954f8e85a0db71aaf75c4c4" ,
"pubkey": "6a5f35dc281276c30c527e1240ef6bad3ef27bcf92b4fef017dc7f5a5c31e5ec" ,
"created_at": 1780471223 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://mitra.social/users/silverpill",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "{\"name\":\"silverpill\",\"about\":\"Developer of ActivityPub-based micro-blogging and content subscription platform Mitra. I help maintain the FEP repository and write my own FEPs too. Currently working on ActivityPub Next.\",\"picture\":\"https://mitra.social/media/6a785bf7dd05f61c3590e8935aa49156a499ac30fd1e402f79e7e164adb36e2c.png\",\"nip05\":\"[email protected] \",\"fields\":[[\"Code\",\"https://codeberg.org/silverpill/\"],[\"Matrix\",\"@silverpill:unredacted.org\"],[\"XMPP\",\"[email protected] \"],[\"$XMR\",\"48YM8jwJqDkeUvD38vepSXFeMZH1zsjbvGwTTuaNSSq6Q5GyeWaeiheAZUsSmNn72YdyLpw8geb4FL3opZfGbguJLUj8Mi9\"],[\"XMR subscription\",\"https://mitra.social/@silverpill/subscription\"],[\"PGP\",\"0541 49E3 0F91 C6D7 8FFA C49C 955F 5A6E 2123 25F0\"],[\"OMEMO fingerprint\",\"689a2fb0ec87a9481fb45cb7d8870da6aeb4d8247bd69a39017701133b901f04\"],[\"Matrix (backup)\",\"@silverpill:poa.st\"]]}" ,
"sig": "0a83db0abf332de714450c6246592d40ae7ab3236df3f0e6ca1be808336d0c966a4a3e9980fb2d064b90841a4fcf78b1c34bd0b73282f18fee59cdb2a7faf9f6"
}
Last Notes npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qr25 This is one of the reasons I don't build on Nostr. It's full of delusional bitcoin cultists npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…fjtc Did you build that platform? Are there plans to open source it? Or make it available to more projects? @nprofile…g30f @nprofile…vwdh @nprofile…u3tx @nprofile…2mcw @nprofile…rdsf npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…vgdh @nprofile…k4nn What kind of component? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…k4nn This is an indicator of the last read message in the timeline npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Fediverse & P2P Nomadic identity is a nice feature, but FEP-ef61: Portable Objects is not limited to that. The intention was always to allow peer to peer communication without servers. This is why the protocol was designed to be transport-agnostic: you can use fediverse servers to deliver activities, but you can also use emails, torrents or USB sticks. To explore these possibilities, I added a simple P2P synchronization mode to Mitra Mini, which allows clients to exchange activities via a shared directory. This doesn't mean that clients should run on the same machine. Syncthing is a tool for P2P file synchronization that can be used to share a directory between multiple machines, and it should work well for our use case. The P2P mode is available in Mitra Mini v0.4.0. You can use a pre-compiled binary, which is now self-contained and includes the mitra-web frontend. See installation instructions in the readme. To enable P2P mode, add the following block to your configuration file: [federation] p2p_shared_outbox = "/path/to/shared/directory" Registering on a web gateway is not necessary when working in P2P mode, but you need to specify it in the config, because a lot of legacy code still depends on that. If you'd like to connect, DM me your Syncthing device ID (it can be used in a Whonix VM to prevent IP address leaks). #fep_ef61 #p2p #nevent1q…syra npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…0jt2 This site provides comparison tables for various protocol features: https://funfedi.dev/support_tables/ npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…zujd Mitra is a server software. It has a default frontend, Mitra Web, but this frontend is not compatible with other servers. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…53ta How it breaks duck typing? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…fwt5 What are you working on? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill >I'm probably going to set it to also subscribe to a list of mitra instances daily to block - Someone on GoToSocial Oh cool, I didn't know there is a blocklist of mitra instances. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp @nprofile…p3lz I don't use docker in production, so I am happy that others take care of images. Haven't decided on CI yet. My plan was to move to my own self-hosted Forgejo instance once forge federation is implemented, and start building advanced infrastructure there. But the work on federation is progressing very slowly. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tc7m Thanks! Mitra supports subdomain.domain.tld -> domain.tld setups, but not setups with two different subdomains like @[email protected] of yours. I'll fix that in the next release. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…vgdh Please try again npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…vgdh @nprofile…tn0l @nprofile…z3wv Looks like it was rejected by the anti-spam filter on gateway. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…vgdh @nprofile…tn0l Cool! Could you send a message to @nprofile…z3wv? (The platform-specific code that Mitra uses is actually Unix-only, not Linux-only.) npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tn0l Yeah that's true - I added this to the list of limitations in the readme. But I think it can be ported to other OSes. Which one do you use? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs It is displayed as a post (without image): https://mitra.social/post/019d446f-b692-036c-b345-78291b764a19 There is also another "post", full of base64 :) npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2y8k @nprofile…xsag Some interesting data here: https://funfedi.dev/support_tables/object_types/ npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx Is there a blocklist? I've never seen FediBuzz announcing my posts, although I did see it announcing posts from other Mitra instances. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…m7tc Welcome back npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…lqwx At the moment these servers are Forte, Mitra, tootik. I added this information to "Current limitations" list in the readme. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…77cu You mean, the entry point for a developer? I started with consuming npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Announcing Mitra Mini v0.1.0 Mitra Mini is an ActivityPub client that implements nomadic identity. It has become stable enough that I decided to cut the first release. The basic features have been implemented: posts, reposts, likes. For more information, check the project's readme: https://codeberg.org/silverpill/minimitra It all started nearly four years ago with a vague idea that linking cryptographic keys to #ActivityPub actors could unlock decentralized identity in Fediverse. Eventually, the solution was discovered, and implemented by several projects, but these implementations were servers, not clients. Now there is finally a client, and the design has been proven to work well. #NomadicIdentity npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…gmdz No, I don't see it npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…gmdz In theory it could ingest content by following a blog via ActivityPub, but I don't see this mentioned in the docs. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…gmdz Such tools are often RSS-ActivityPub bridges. They parse your feed and re-publish posts to Fediverse, where people can comment on them. Apparently Pinka works like that too https://pinka.dev/setup/configuration/ npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…h0ux I am already facing this problem in @nprofile…cjkf. I think vibe-coded projects will be de-prioritized because most of them are not newsworthy and immediately abandoned by their authors. A project will be featured only if it survives and gets some traction. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ptyr ActivityPub relays can help with that https://joinfediverse.wiki/Relays npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…svam You can say it at https://codeberg.org/silverpill/mitra Some fedi developers took an aggressive stance, but I don't care that much. If a bug report is legitimate, then it shouldn't matter what tool was used by the reporter. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2y8k @nprofile…c7yq @nprofile…s2sp What hasn’t been considered is the ability of multiple people to speak with “one voice” yet. Imageboards? There was one that federated using ActivityPub: https://github.com/FChannel0/FChannel-Server npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ut88 +1 for formalizing the existing practice in a FEP. PropertyValue is covered in FEP-fb2a, but it proposes an alternative representation which implementers must support: https://codeberg.org/fediverse/fep/src/branch/main/fep/fb2a/fep-fb2a.md npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Mitra 4.20.0 will add context property to replies. Among other things, this should help Pleroma re-construct threads when some posts are not available. cc @nprofile…s2sp RE: https://mitra.social/objects/019d06ec-3768-06df-99b6-61bb71a86d45 #nevent1q…2666 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Large-scale online deanonymization with LLMs https://arxiv.org/abs/2602.16800 It's over, anons. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp HTTP signature bypass is serious, but I can't figure out what it going in this PR. Looks like a bunch of unrelated changes npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill https://www.openwall.com/lists/oss-security/2026/03/09/7 Misskey and Sharkey, ActivityPub-based social network services (similar to Mastodon), have released updates to patch vulnerabilities Sharkey maintainers describe as "extremely severe". Details have not been not published yet but "missing permission checks" and "authentication bypass" sound like vulnerabilities that could be prevented by following recommendations from FEP-fe34: Origin-based security model. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…dqzr https://example.viii.fi/posts/69aeb347-03d0-dc44-83c8-9c7c488ff6e0.json It is served by an instance of your bot? The value of inReplyTo in this document is an empty string, which is not a valid URI. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…9fxy There have also been rumblings of implementing Zot/Nomad’s nomadic identities, although that effort seems to have stalled out. Finally, some platforms like Streams/Hubzilla (Nomad & Zot respectively) offer limited user account ownership, bridging internally to ActivityPub. However, if a server went down, the user would retain their Nomad/Zot following while losing their ActivityPub followers/following. It didn't stall. Streams and its successor Forte support ActivityPub-native nomadic identities. There are other implementers too: https://codeberg.org/ap-next/ap-next/src/branch/main/nomadpub.md cc @nprofile…2lch npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill FEP-ef61 update: https://codeberg.org/fediverse/fep/pulls/773 Gateways can now remove integrity proofs from collections when they generate collection views. This enables filtering and pagination and is compatible with client-side signing (FEP-ae97). #fep_ef61 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…yr0l Hi, do you known anyone working on ActivityPub-Farcaster bridge? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tc7m The site was built by @nprofile…k5jq, I also contribute to this project from time to time. Yes, authors are responsible for maintaining implementation lists, but FEP process is meant to be collaborative and others can add missing implementations by opening a PR. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill FEP website now displays the number of implementations for each implementable proposal: https://fediverse.codeberg.page/fep/final/ These numbers are based on the information that authors provide in the "Implementations" section of a proposal. By default, proposals are informational, so authors need to opt in by adding type: implementation to the metadata block. #fep #fedidev npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill minimitra now uses #PGlite instead of postgres: https://pglite.dev It's a portable database, so the installation process will not require any sysadmin skills. You just need to install the rust compiler and npm (the latter is required for pglite, I plan to remove this dependency in the future). I had to reset my database because pg_restore didn't work with pglite, but identity and actor ID have been preserved: @nprofile…z3wv. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…th8u I built this: https://codeberg.org/silverpill/mitra It is lightweight and is packaged with a web client. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…wchz I know two python libraries: https://codeberg.org/bovine/bovine https://github.com/fedi-libs/apkit npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…6wm2 The server needs to know mentioned users by the time the post is published. Someday I will figure out how to make it work. Meanwhile, you can verify your mentions using the preview feature npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…6wm2 Hey, nice to see you online again. What is this bot? Looks interesting npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2gus Publishing process doesn't change much. A generic server should deliver activities to actors specified in to and cc fields. It should keep track of collections, such as followers collection, and "expand" them before delivery. This part is not different from the regular ActivityPub. I think ID assignment should also work the same. In the FEP I proposed Add activity without object as a special activity for creating collections, but now I see that it will not work if IDs are minted by a server (no FEP-ae97). Perhaps it should be a Create, after all, as @nprofile…u8dh described in an adjacent comment. I was hesitant to use Create because this is a problem for FEP-ae97 clients (not a big one though). @nprofile…d8rs @nprofile…u8dh npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2gus Let's assume that my client is a music player. It publishes a Listen activity where object is an Audio. This activity should increase playCount on the Audio object. One way to support this on the server side is to teach it about Listen, Audio and how to update playCount. This is how most existing servers are built. But a server described in my FEP would work differently: - It doesn't know anything about Listen, Audio or playCount. - Upon receiving Listen, it will recognize it as an activity, and embedded Audio as an object. - Since this is not a CRUD operation, it will not check permissions. - If Listen activity has a result property, the server will process that activity as well. - If result is an Update activity, the server will recognize it as a CRUD operation and will check permissions: Update.actor and Audio.attributedTo must be the same. - The server will save both activities, Listen and Update. - Then it will deliver them to intended recipients (to and cc). Effects are client's responsibility now, it must provide an Update activity if it wants to update playCount. There are other requirements too, for example all objects should have an attributedTo property, which is needed for permission checks. But in this setup a single server can work with any kind of client. @nprofile…d8rs @nprofile…u8dh npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp @nprofile…xsag @nprofile…t3h7 @nprofile…y6jc @nprofile…tsag I think you're right about FEPs and cooperation. The optimal strategy is cooperate by default and defect only when the other side defects. With quotes we were almost successful. The initial version of Mastodon's consent-respecting quotes was based on FEP-e232, but later they decided to introduce a new property. Now there's FEP-521a (public keys), which they expressed interest in implementing. Even with Mastodon, it's worth trying. >Groups I think Lemmy's implementation is not bad. There is also Conversation Containers from Hubzillaverse, and a possibility of convergence, see this thread https://lemmy.ml/post/43519233 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2y8k Yes, the signature contains key ID, from which you can obtain actor ID and perform origin / ownership checks. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…davq What happens when you send a "Offer" message to an actor on Mastodon? The behavior of Offer activity is not described in ActivityPub, so Mastodon is not required to support it. Curiously, ActivityPub mentions Offer when it talks about the side effects of Accept: The side effect of receiving this in an inbox is determined by the type of the object received, and it is possible to accept types not described in this document (for example, an Offer). ...This statement is not compatible with the idea of a generic server. Can I create a group actor on Mastodon? I don't know. But it can create Service actors, I guess it can be easily patched to allow creation of Group actors too. Can I use this actor to boost other actor's posts and have it visible on a Lemmy client? I think FEP-1b12 Announce is not compatible with ActivityPub. It has different side effects, doesn't update shares collection. How can a Mastodon client ask the server to get a collection of all images with an specific tag? Maybe something like /api/v1/timelines/tag/{tag}?only_media=true ? @nprofile…d8rs npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2y8k I don't know Alloy, but I tried to analyze how authorization should be done in ActivityPub. The result is this document: https://fediverse.codeberg.page/fep/fep/fe34/ npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs Mastodon supports all standard activities and has a wide variety of clients. I don't find softwares with similar capabilities impressive, although I respect your work (the only ActivityPub server-client project that is not a vaporware). I doubt that language choice makes much difference, and Rust is not a dynamically typed language anyway. The difficulty you might be facing is likely due to JSON-LD. The thanks was for your input with regards to collection management. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill 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 @nprofile…d8rs and @nprofile…u8dh for their input. #C2S npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ut88 It is a good plan! FEP-ef61 is still DRAFT and includes a warning that the URI scheme may change to ap+ef61. Right, all of this is very unstable and may change in the future. In order to be more confident with the spec, I want to build: - A fully featured FEP-ae97 client (WIP: https://codeberg.org/silverpill/minimitra) - A generic FEP-ae97 server (this is only an idea: https://codeberg.org/silverpill/feps/src/branch/main/fc48/fep-fc48.md). Gateway forwarding trust. When forwarding inbox/outbox activities to other gateways, which servers should be trusted and how should that trust be established? FEP-ef61 says unsecured collections may only be accepted from servers in the actor's gateways array, but the details of how a gateway authenticates itself to another gateway are not fully specified. Could you clarify what you mean by authenticating itself to another gateway? When an application (client or server) fetches a portable collection from a server that is listed in actor's gateways array, it may skip proof verification. This applies to collections like inbox or outbox. If a portable collection is fetched from some other server, the proof is required. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill 1. I don't care much about the "official" version of AP. It is outdated and increasingly irrelevant, most of the real development happens elsewhere. 2. Interledger is a part of Ripple/XRP cryptocurrency project, which is a scammy crypto company. Please don't spread FUD. Especially when it's so obviously counterproductive. Seems like maybe you need to touch grass a bit more often Oh my. Counterproductive to what? All you do here is talking about things you know nothing about and trying to insult me. You're pathetic. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ut88 It's a good idea. However, I'd like to note that w3id.org/fep/ permalinks are not canonical, they were proposed in FEP-888d but have never become "official". npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…20nh How much it is tied to Mastodon? Is it possible to use Fediway with other servers? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill I enabled compatible IDs in minimitra, so @nprofile…z3wv actor should now be reachable from most fedi servers. Follow/unfollow may also work, but only if your activity IDs are resolvable. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…z7ps If you're talking about digital technology, today we have more freedom than 10-20 years ago. But an average internet user has no freedom at all, for them internet is like TV. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx Opened an issue: https://github.com/astro/buzzrelay/issues/136 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…77cu Information about implementations is also present in FEPs, but it is similarly incomplete. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs Thanks. I think this could be mentioned in the FEP. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs What convention do you use to iterate through an ordered collection? Suppose I need to get items starting with <object-id>. I don't see an operator for this in FEP-6606: ActivityPub client to server collections addressing conventions npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill And here is a post on the same subject from @nprofile…l5yp https://w.on-t.work/activitypub/c2s npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill It might be not possible to create a generic #ActivityPub server, but nevertheless this is an interesting thought experiment that helps simplify the protocol and figure out the best way to extend it. I've been thinking about generic servers for quite some time (because this complements my work on nomadic clients), here are my notes: https://codeberg.org/silverpill/feps/src/branch/main/fc48/fep-fc48.md @nprofile…ks9l RE: https://mastodon.social/users/eyeinthesky/statuses/116095929503245071 #nevent1q…3k4a npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…834j @nprofile…8qd7 @nprofile…ks9l @nprofile…d8rs @nprofile…c7yq Yes, they are building blocks, together with Create, Update and Delete. Everything else can be constructed from them. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ks9l I think Add / Remove should be used for extended collections. Like, Announce etc look like legacy / tech debt to me. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill suggested language re: "correctness" This is much better, thanks. I also changed "incorrect / false" to "intentionally skewed" (as @nprofile…s2sp suggested in another thread). suggested expanded reasoning re: software.name and software.version Added that too, and mentioned a valid reason for checking software version: security vulnerabilities. PR: https://codeberg.org/fediverse/fep/pulls/761 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill what defines "correct" here? Inflated or randomized stats, for example. I don't like "incorrect" here, but haven't found a better word yet. also, is a SHOULD NOT here sufficient? No, I think data aggregators like fediverse.observer are useful services, and there is no good reason to disrupt their operation by poisoning data. these requirements read as redundant, and also the 2nd requirement is more restrictive than the 1st which is weird I think these should be separate requirements. The first one is about any NodeInfo parameters, including metadata. There is a FEP about advertising capabilities using metadata (FEP-9fde), I want to discourage this practice, but this method is already used in the wild, hence a SHOULD. On the other hand, I can't think of any good reason to rely on software. This is a discriminatory practice, because as a developer you can easily add a feature flag to your NodeInfo metadata, but you can't change software to e.g. mastodon. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…e5wd @nprofile…s2sp Boost bots are for Mastodon. In our parts of Fediverse, we have FEP-1b12 and conversation containers, which are more powerful, and can be easily extended to support Join/Leave and roles (good topics for FEPs, by the way). I don't think anybody who matters actually cared about W3C approval. By 2023, we had FEP process going and ecosystem leaders (Mastodon, Lemmy) were contributing. The rebooting of SWICG was absolutely unnecessary. The intentions behind this effort were quite clear from the start, but it would have lost momentum quickly if you hadn't participated, but you did and continue to do, and now these Github repos are becoming a problem. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill If you don't understand the message, maybe it is not for you. These organizations are the participants of the AP working group. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…z7ps What happened? I see fedi.libresolutions.network now redirects to fedi.gabe.rocks npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qum9 Thanks. Do you think we can use it in fedi somehow? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill First post on public network created using minimitra: https://mitra.social/.well-known/apgateway/did:key:z6MkumzpDj1cYZD2GrBbVT86xL6CfPuyqWZAEXMfSqN9j3hf/objects/019c4419-e9d4-7262-bfaf-520a43ba549b All identifiers are ap URIs, so only FEP-ef61 implementers can load this post and interact with it. #minimitra npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx I didn't. I can open an issue with a detailed report if that would help. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx I announced a tagged post to a hashtag actor, the response was 202. Not sure how to verify, though. Does FediBuzz distribute posts back to the originating instance? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx Apparently I am still affected by https://github.com/astro/buzzrelay/issues/132, can't follow a hashtag. I will try to send the Announce activity manually (without a follow relationship), though this will require a bit of work. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx Thank you for adding support for Create/Update! Do you ingest these activities through hashtag actor inboxes? This might explain amplification, as hashtags can be followed by regular users too. This is how I use FediBuzz -- I just follow hashtags from this account, and relayed posts appear as reposts (boosts) in my feed. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx Some servers already have all the necessary capabilities. The missing piece is https://github.com/astro/buzzrelay/issues/79 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill It didn't write back. I sent Create activity to https://bots.grilledcheese.social/ap/@echobot/inbox at 2026-01-26T21:31:22Z npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…racq I would expect P2P solutions to be less efficient, but does TLS really make any difference? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…rv2y @nprofile…gc2n All W3C work is invite-only and permissioned by design. That's why we have #FEP npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…3z6c Does this issue only affect your NodeInfo client, or all clients? I am not familiar with the challenges of developing a client, my software only publishes NodeInfo. If it affects all clients, then we certainly need to add a warning to the FEP. If it only affects your client, then it would be better to work around that. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…xulq >fep-ae97-web-client Didn't expect anybody using it. Updated readme: https://codeberg.org/silverpill/fep-ae97-web-client/commit/83e2828664418603731db05d52f67d70f686d8d8 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…jat9 Mitra almost works, I found only a couple of blockers: https://codeberg.org/silverpill/mitra-web/issues/150 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…jat9 Servo. This is the future npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp Jack Dorsey starts talking about AI and everybody on Nostr turns into a vibe coder basically overnight. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp @nprofile…h0ux Maybe it can show quotes created on other platforms, but it doesn't allow creating quotes. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…h0ux Mastodon requires some kind of complicated "approval stamp" before showing a preview of a post. Most fedi developers ignore that npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…x7t9 Tor: here is a list https://fedilist.com/instance?q=&ip=&software=®istrations=&onion=only I2P: http://mastodon.i2p is currently online Yggdrasil: there was a few, but I can't find them now npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…k5jq @nprofile…7uhg For hashtags we need a way to say "give me all Notes where tag contains an object with type equal to Hashtag and name equal to tagname" There is a FEP by @nprofile…d8rs that describes collection filters: https://codeberg.org/fediverse/fep/src/branch/main/fep/6606/fep-6606.md. I guess we can re-use those conventions for lists Another FEP is https://codeberg.org/fediverse/fep/src/branch/main/fep/5bf0/fep-5bf0.md, but I think it doesn't have implementations npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…7uhg Another example from the sender side: I am a music group and I would like to invite people to: "Follow #concert_announcement for @mycrazycoolband" If filters are static, they could be implemented as groups / circles. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…7uhg The filtering could be done on the client side. But if I were to implement this in server-to-server context, I would probably add a new property to Follow activity, e.g. filter. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…svam Technically, the admin of wizard.casa is a wizard king npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill I created a simple FEP-ae97 web client: https://codeberg.org/silverpill/fep-ae97-web-client It is written in #Rust using Leptos and APx. Everything is compiled to WebAssembly and the application can be served as a static website. This technology stack is very promising, but I think it is not yet ready for anything serious. The development process is slower compared to JavaScript/TypeScript, and the resulting binary is huge - it's 4.5 MB already (without optimizations). So I am going to keep an eye on it, but focus on building another FEP-ae97 client using a different approach. #fep_ae97 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill I don't know, does it create problems for NodeInfo clients? The additional relation type in this JRD was introduced in FEP-2677: Identifying the Application Actor. As far as I can tell, adding links is not against NodeInfo protocol specification, but if additional links cause issues, we can discourage that practice in FEP-0151. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill is that the reason mastodon & friends used it at first? Ed25519 is a newer crypto, EdDSA was first mentioned in draft-cavage-http-signatures-11, 2019. As far as I know, ActivityPub servers were already using RSA at that time. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Mastodon got a working implementation of a thread collection (context). I'm adding it to the list of implementations in FEP-f228: https://codeberg.org/fediverse/fep/pulls/745 #fep_f228 RE: https://mastodon.social/users/MastodonEngineering/statuses/115854312836282687 #nevent1q…00fk npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…70sf Yes, I can see it too