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
nprofile1qqsx5he4ms5pyakrp3f8uyjqaa4660hj008e9d877qtacl66tsc7tmqpz4mhxue69uhhyetvv9ujuerfw36x7tnsw43qz9thwden5te0wfjkccte9ekk7um5wgh8qatzvsqt04
Show more details
Published at
2026-07-30T07:01:42Z Event JSON
{
"id": "676427e24cf50539d87e89cd9d0c2857085684403997d6c68ae3b47d81784185" ,
"pubkey": "6a5f35dc281276c30c527e1240ef6bad3ef27bcf92b4fef017dc7f5a5c31e5ec" ,
"created_at": 1785394902 ,
"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": "76869164a176ed2a56bc996ebb957d66f244bbec968aadd92ce34ec89e2f54c517e9e4246cea91e284ba3cacddb28c1dfa1c1441f3ce916f04e6350941057a92"
}
Last Notes npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Private groups Lately, I've been seeing various people claiming that fediverse doesn't have private groups. They often point to some task force at w3c that is supposedly working to fill the gap. However, fediverse has had private groups for a very long time: - Hubzilla channels. This project probably had private groups before ActivityPub. The implementation was later adapted for ActivityPub and refined in subsequent forks, Streams and Forte. It is now partially documented in FEP-171b: Conversation Containers. - Smithereen groups. This implementation is documented in FEP-400e: Publicly-appendable ActivityPub collections (published in 2021) and FEP-db0e: Authentication mechanism for non-public groups. - Lemmy communities. Private groups were proposed in Lemmy RFC 0005 and have been implemented in the development version. There is a test instance running this version (Lemmy v1.0b) at https://voyager.lemmy.ml/ There are probably other implementations that I am not aware of. #Hubzilla #Smithereen #Lemmy npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…5u9f fwiw the gate is pretty easy to open, but does require signing a CLA. It's not that simple. But it might appear easy if you don't inconvenience them too much, and jump through all the hoops https://github.com/swicg/charters/blob/main/stage-process.md how else do you suggest we develop an E2EE protocol for the fediverse? In the same way as everything up until this moment has been developed. Somebody just needs to do it. If the result is good, others will copy it. >you mention in your FEP that you are giving up on it for a proper E2EE impl. genuinely asking b/c I'm interested in getting E2EE, hopefully interoperable with widest number of clients possible. Not giving up - I want to explore a more advanced encryption scheme. I think the basics are not going to change too much. also, what do you mean by corporate takeover? A lot of things. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…04yf @nprofile…ad74 A dedicated button for question is also an option. I just don't want to do this thing with drop down, it's horrible UX. I remember wasting a lot of time trying to find a button for quote posting in Soapbox. Somehow Mastodon made the same mistake (or maybe they both copied it from Twitter? Idk) npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…ad74 This is not going to happen, the button will stay in the menu. But I may consider allowing quote posting from the home timeline. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…e40t @nprofile…nr0z I don't feel that mitra is unwelcome there, my interactions with Codeberg team have been mostly pleasant. But I also don't want to count on favorable interpretations. I didn't ask, but somebody else mentioned mitra in a discussion 7 months ago, and was ignored: https://codeberg.org/Codeberg/Community/issues/2184#issuecomment-8629041 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…nr0z No, I think only members of Codeberg organization can vote. I didn't even know this is being considered npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Codeberg is banning "cryptocurrency projects": https://codeberg.org/Codeberg/org/pulls/1254#issuecomment-19820413 I don't know if Mitra qualifies as such, but I guess it is time to move to a self-hosted forge. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…zn8j That's because real ActivityPub differs from what is written in the W3C specification. Traditionally, development of an ActivityPub application required a lot of reverse-engineering because there were no developer documentation (aside from several blog posts), and no good libraries. This is changing, and today there are several well maintained libraries and a guide for ActivityPub developers: https://codeberg.org/ap-next/ap-next/src/branch/main/guide.md (this is what I am working on) npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill I've got a report about Mastodon v4.7.0-alpha.1 not federating with Mitra. Can anybody confirm this? They recently merged FEP-8b32 signature verification, that might be relevant. All Mitra activities are signed npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill FEP-8b32 update: https://codeberg.org/fediverse/fep/pulls/874 - Recommendation for expired proofs: try other authentication methods. - Added a link to Quantum-Resistant Cryptosuites v1.0 - Added Mastodon to the implementation list (verification only for now) #fep_8b32 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…9mrz @nprofile…tyzc It worked npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…9mrz @nprofile…tyzc I don't see a follow request, but there is a bigger federation problem - your server responds to all my requests with 418 I'm a teapot. So you will probably not see this message :] npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…834j No, it is not announced. The problem is probably in Accept.object - in my case it is a URL of the Follow activity but some servers expect an embedded activity. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tyzc Are you trying to follow me or the group @[email protected] ? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…834j "data did not match any variant of untagged enum AnnouncableActivities" npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Lemmy can see my groups, and it can discover posts with "Search": https://voyager.lemmy.ml/post/17669 But it can't follow a group because it doesn't like my Accept activity: https://github.com/LemmyNet/lemmy/issues/6595 RE: https://mitra.social/objects/019f053a-9069-7fd1-89f9-60b7318a368f #nevent1q…22zk npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…5c4e That's what I am thinking too, but why it sends these Update activities in the first place? I get one every 10 minutes. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…dwj0 Do you know why your account constantly sends Update activities? The actor ID is https://hubzilla.monster/channel/scott Signed by https://authorship.studio/channel/scott npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…rgcq Oh hello there, I have a question about Aktor. Could you provide a short description of the project? In one sentence - it's for @nprofile…cjkf newsletter. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs What kind of side-effect hint would you prefer? 1. Specialized activity name { "type": "AcceptFeatureRequest" "object": "https://social.example/request" } 2. Additional property { "type": "Accept", "object": "https://social.example/request", "objectType": "FeatureRequest" } 3. Embedded object (possibly partial): { "type": "Accept", "object": { "id": "https://social.example/request", "type": "FeatureRequest" } } npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…davq @nprofile…s2sp In a way, yes. My personal preferences: 1) self-describing objects (better DX) 2) more efficient processing npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs Activity type is not the only meaningful information about the side-effect, but in many cases a custom type could help with the identification. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…davq @nprofile…s2sp I don't think there is a difference. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs Wrong about what, using different names for different things? Only a few activities from Activity vocabulary work well with any type of object. For example Create and Update. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s2sp With AcceptFeatured you don't need to determine anything. Because the object type is right here in the activity name npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill I've been reviewing the new FEP from the Mastodon team today, and one thing that caught my attention is the use of Accept and Reject activities for managing approvals. Another day, someone proposed to use Follow activity for "watching a thread". So now, when you receive a standard activity, you need to use increasingly complicated heuristics to figure out what the activity does, because it is not possible to infer that from its type anymore. This has to stop. I think we need to start giving our activities better names. #ActivityPub npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…smhc It asked to me to click on motorcycles. The future is not evenly distributed :( npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…smhc On what site did you find it? I have never seen anything like that npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…y0lv @nprofile…qr25 ActivityPub. We now getting capabilities previously available only on SSB & Nostr. Key-based identity, local-first clients. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…8vmk Did that change fix the Sharkey problem? @nprofile…vgdh npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…s0sp >why instances like ryona.agency, tsundere.love, annihilation.social aren't loading images Might be caused by bad connectivity. But if this behavior is consistent, I could look into it. >why @relaystalker is STILL getting stuck on follow requesting with relay accounts https://github.com/yukimochi/Activity-Relay/issues/102 Maybe a clanker could fix it? >how to get tor/tor federation up with this docker setup >how to federate over I2P https://codeberg.org/silverpill/mitra/src/branch/main/docs/onion.md https://codeberg.org/silverpill/mitra/src/branch/main/docs/i2p.md But I don't know how to make it work with docker >duplicate key bug I am interested in debugging this. Database integrity should be maintained. >how to pull past posts from profiles quickly so I am not looking at a profile timeline with gaping holes Make yourself an admin and click on "Load latest posts" in profile menu. 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…racq I am developing Mitra Mini nomadic client. It is still in early stages, but it's usable, and there was even a successful experiment in pure peer-to-peer communication recently. As far as I know, this is the only existing implementation of a client. My thoughts on Nostr: https://mitra.social/objects/0186982f-b618-d6b8-29f8-f8926a8ff07a tl;dr: the network architecture favors centralization and everything is controlled by Jack Dorsey and his clients. These predictions have held up pretty well. The protocol is not bad... But Fediverse is better, bigger and its culture is far more interesting and diverse. 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 @nprofile…d8rs Still returns 401. The timestamp is 2026-05-08T11:20:47Z @nprofile…v7dx @nprofile…v7dx npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…krnx It likely means your HTTP server is rejecting the request (not Mitra). For nginx, you need to adjust this setting: https://codeberg.org/silverpill/mitra/src/branch/main/contrib/mitra.nginx#L35 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…krnx @nprofile…gunk npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…mq95 @nprofile…krnx There is no formal procedure. The list consists of clients with friendly and responsive maintainers and clients that I can debug myself. I am not familiar with Emacs but if it works well let's add it to the list. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…krnx Yes, there is a list of supported clients in the readme: https://codeberg.org/silverpill/mitra#supported-clients Other clients should also work, but that's not guaranteed. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs @nprofile…v7dx @nprofile…v7dx Sent another one to https://marius.federated.id/inbox 2026-05-06T18:33:57Z npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…v7dx >inbound verification Is it enabled on this instance? I tried to send a POST request signed according to RFC-9421 to your inbox, the response was 401. Timestamp: 2026-05-06T12:50:30Z cc @nprofile…d8rs npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…krnx It is similar to followers-only posts, but instead of simply following, subscribers need to pay a certain amount. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill UPDATE: ActivityPub over Syncthing actually works. I am exchanging activities with another Mitra Mini user. 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…53ta How it breaks duck typing? 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…9q3v Interesting perspective, I haven't thought of that npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…yla0 ActivityPub data can be portable too, even distributed across multiple instances: https://codeberg.org/ap-next/ap-next/src/branch/main/nomadpub.md But popular Fediverse platforms don't support this feature. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2gus I wouldn't count on that. In the announcement Mastodon team credits SWF for work on E2EE, not the people doing actual research. That's part of the deal. 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 flohmarkt now implements FEP-0837: Federated Marketplace! They add Proposal as an attachment to Note. Here's an example: https://kleinanzeigen.bonn.digital/~bonndigital/48a0e2b7-f0d0-421b-9190-cc15306be6a3 I think Proposal properties could be added directly to Note to make the structure simpler. But an attachment is fine too. #fep_0837 #flohmarkt 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 I making some changes based on feedback: https://codeberg.org/fediverse/fep/pulls/811 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…6wm2 LLMs go brr npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tc7m This seems to be in conflict with property-based collection creation. It is not clear how a server should process an inlined collection (create an empty collection? create a collection with specified items? remove the property?). If I remember correctly, this is not supported in GoActivityPub cc @nprofile…d8rs npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…svam @nprofile…4f8f https://codeberg.org/silverpill/mitra-web/issues/60 closed but could be re-opened npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill FEP-9f9f: Collections has been published: https://codeberg.org/fediverse/fep/src/branch/main/fep/9f9f/fep-9f9f.md It seems to cover the basics, let me know if I missed anything. #fep RE: https://socialhub.activitypub.rocks/ap/object/4f422d20555601ca6e73b35b830cf74d #nevent1q…v5sx npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…tn0l Thanks. The patch disables ownership check, this is not good but I can apply it to mitra just to unblock compilation. However, it is too early for mini, things are going to change a lot there. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…wugs @nprofile…7j4l @nprofile…qcew The similarities are superficial. Holos is a regular ActivityPub application, where user's identity is bound to a domain name. Having a Holos account is equivalent to running a single user instance and doing continuous database backups. The difference is in the software architecture, not in the protocol: the database is located on user's phone instead of the machine where the server is running. The how-it-works page also talks about cryptographic keys "never leaving your device". This is just misleading marketing. The location of the keys is irrelevant, because keys in ActivityPub are identified by URIs, and what an URI resolves to is controlled by a person who controls the server frontend and the domain name. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qcew Would be interesting to add Hubzilla's Zot6 and (streams)' Nomad (which would be Zot12 if it wasn't incompatible with Zot6) to the list. I'll think about it. As far as I know, Zot identities are keys, all data is portable and private content is possible. I guess the main difference between Zot and FEP-ef61 would be in ActivityPub interop? By the way: Forte doesn't require a gateway to communicate with non-nomadic ActivityPub. No, from FEP-ef61 point of view, there's still a gateway, because Forte doesn't use canonical IDs. We can say that Forte is a client and a gateway combined in a single piece of software. 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…lqwx @nprofile…s2sp mitra.social (4.5 years old instance): # du -sh /var/lib/postgresql/ 1.2G /var/lib/postgresql/ npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill How Nomadic ActivityPub (FEP-ef61) compares to other protocols? I made a table: https://codeberg.org/ap-next/ap-next/src/branch/main/nomadpub.md#protocol-comparison npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…d8rs Now with images: https://mitra.social/post/019d1165-d22b-7d64-ac44-2ba40757d004 npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill - I think this can be generalized to all kinds of fediverse applications using the mechanism described in FEP-0499. Is there a reason for using a domain-specific solution (FEP-1b12 Announce)? - Why object is a collection? An array of activities would be more concise. - The second example is named "New and improved fep-4248-style POST". Did you mean fep-1a11? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill What status code you use get? It might be a temporary issue. The best practice, I think, is to stop delivering after some time (1 month, for example). npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…2y8k @nprofile…xsag It is an invaluable tool, and has so much potential, but the development is kind of slow. Perhaps you can apply as a contributor? npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…m7tc Remember we talked about an offline-first fedi client? I made a lot of progress while you were absent: https://codeberg.org/silverpill/minimitra This is basically a Mitra instance that runs on your computer and doesn't need to be online all the time. It is not offline-first yet (outgoing messages are not queued), but I will be working on that soon. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…qhdx At one point I was in one of those lists, but I don't know the reason (they never tried to contact me). Probably because I am federating with wrong instances, or use cryptocurrency. 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…vgdh @nprofile…qhdx The site says it uses gardenfence, but I am not in gardenfence list... 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…ut88 It is not really about making leaving expensive. Moat is an advantage that competitors can't easily replicate npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…cwmd This is just a weird Mastodon thing, other servers usually don't have quote controls. 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 can look up @nprofile…z3wv, it is an actor hosted on my server and managed using the Mitra Mini client. Its ID is a normal HTTP URI (compatible form). The first step is to convert this ID into canonical form ('ap' URI), so if this actor moves to another server, your software will be able to tell that it is dealing with the same actor. This trick also works with posts, activities, everything. At the next difficulty level you can create portable actors. This shouldn't require major changes if you keep signing keys on the server. Not ideal, but okay for single-user instances. Finally, there is client-side signing. This is really hard, and it is probably easier to develop a client from scratch than trying to adapt an existing codebase. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Thank you @nprofile…k95l ! npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…77cu You mean, the entry point for a developer? I started with consuming npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…gmdz Because JS module runs on a different site, I guess? You add it to a non-AP site, and it fetches replies from AP-enabled clone. I don't know, better ask the developer about it. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…lqwx There is a caveat, of course. It can communicate with Mastodon and other Fediverse servers, but only a few of them are capable of distinguishing decentralized accounts from regular ones. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…kzpn Thanks! npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill @nprofile…lqwx It is useful if you want a micro-blog account that is not tied to a single server / domain name. 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…e38v Not much have been done on the intersection of ActivityPub and gaming. One project that comes to mind is https://github.com/maybeanerd/selfhosted-api-trader-game by @nprofile…yv49 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 @nprofile…cjkf I would simply ignore an obviously vibe coded project with no history. Fedibook doesn't has a license, so it is not qualified for inclusion either way. 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…c7yq Fediverse is not like email because ActivityPub has many different message types. What kind of client API developers use is irrelevant. npub1df0nthpgzfmvxrzj0cfypmmt45l0y770j260auqhm3l45hp3uhkqx27gmw silverpill Mitra 5.0 Like previous major releases, this one contains several changes that may require operator's attention. It also introduces a stability guarantee for REST API. From now on, breaking changes in API will only happen in major releases. RE: https://mitra.social/objects/019d1c79-6704-c2e2-0787-cc2cb36a816c #nevent1q…fgny