Home | Notifications | New Note | Local | Federated | Search | Logout

silverpill@silverpill@mitra.social

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.

Code: https://codeberg.org/silverpill/
Matrix: @silverpill:unredacted.org
XMPP: silverpill@were.chat
$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 Joined: 2026-07-22 22:52:48 29 notes, 0 following, 0 followers

Reply to @lnkr@staging3.plamenu.com silverpill@silverpill@mitra.social (2026-08-15 06:05:35) @lnkr @sun Yes, I think we can just ignore joinRealtimeChannel. It is marked as "experimental" in the docs, anyway

Reply to @silverpill@mitra.social silverpill@silverpill@mitra.social (2026-08-15 05:28:03) @sun So, I think the biggest problem with this proposal is that it requires a publicly accessible HTTP server. Is there a good reason for that?

WebXDC, for example, is designed for offline first apps. I am reading WebXDC docs right now and it seems to be compatible with ActivityPub. Maybe we should work on this instead?

Reply to @silverpill@mitra.social silverpill@silverpill@mitra.social (2026-08-13 03:19:59) @phnt @theorytoe @sendpaws @caohuak

>I nominate everybody in this thread.

I am completely serious - only Dark Fedi people can be trusted with maintenance of the most important communication protocol of the 21th century.

Reply to @phnt@fluffytail.org silverpill@silverpill@mitra.social (2026-08-13 03:15:50) @phnt @theorytoe @sendpaws @caohuak I nominate everybody in this thread.

I agree that gatekeeping is necessary, but it should be done with care. In my opinion "the culture" is not worth preserving, the network should consist of hundreds of bubbles separated by language, geography and political preferences.

Reply to @theorytoe@ak.kyaruc.moe silverpill@silverpill@mitra.social (2026-08-13 02:59:42) @theorytoe @sendpaws @caohuak Yes, and you can just ignore all of this. The part on the network that is free of blocklists is big enough to be interesting. What this part of the network doesn't have, apparently, is people who will be interested in growing it.

Reply to @caohuak@moon.lonewolf.zone silverpill@silverpill@mitra.social (2026-08-13 02:46:49) @caohuak @sendpaws I think there is a big difference between being defederated and being deplatformed. In fediverse you don't need to start from scratch, you can move between servers and you can start your own.

Some people may not like you and be very loud about it, but ultimately they only have as much power as others give them. The best strategy is to ignore the haters and keep doing your own thing.

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 22:22:32) @sun Mitra doesn't support scopes, but I can start adding them if needed.

I saw your FEP draft, by the way. Is it ready for review?

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 22:05:08) @sun @pernia @haruspex Awesome, thank you!

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 21:18:17) @sun @pernia @haruspex It still returns 401 for any activity

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 20:43:20) @sun @pernia @haruspex It doesn't require authorized fetch

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 20:19:14) @sun @pernia @haruspex No, I think it is a useful feature - you can see when a new market is created.

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-08-12 20:06:12) @sun I can't follow @haruspex, the server returns 401

@pernia

Reply to @sendpaws@mitra.pawslut.party silverpill@silverpill@mitra.social (2026-08-12 03:59:26) @sendpaws Correct - the censorship infrastructure has not been dismantled and another major wave is likely coming. The author even recognizes that LLMs will make it much worse than the previous one.

But everyone is still using centralized platforms like there is no tomorrow.

Reply to @admin@fediverse.org silverpill@silverpill@mitra.social (2026-08-12 00:57:08) @admin

>It runs on software such as Pleroma, Misskey, and Mitra — each different, all connected.

At long last, an organization that doesn't try to cancel me. How do I join?

Reply to @silverpill@mitra.social silverpill@silverpill@mitra.social (2026-08-03 17:53:54) @sun @deutrino

5. https://mitra.social/objects/019fc6cd-666a-7772-ba2f-2e711a8e8f69

silverpill@silverpill@mitra.social (2026-08-01 05:17:28) 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

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-07-31 17:23:11) @sun @deutrino My self-hosted Forgejo instance is doing fine, but maybe scrapers simply haven't discovered it yet.

If that becomes a problem, I'll probably make it an onion service. I think it's better than switching to a different software

Reply to @silverpill@mitra.social silverpill@silverpill@mitra.social (2026-07-31 17:16:26) @sun @deutrino

>can you tell me more about where I can read about your work with p2p and your idea for adapting forgefed? I'm interested.

1. My experiment with ActivityPub over Syncthing: https://mitra.social/post/019de9a2-7769-7713-85c9-ad8e8599268d
2. ActivityPub & iroh: https://mitra.social/post/019f8116-59de-71f2-8c56-2e87e32c2859
3. I'm currently working on federated groups in Mitra and so far they seem to be compatible with FEP-ef61 and therefore with P2P ActivityPub
4. ForgeFed has many similarities with federated groups: https://codeberg.org/ForgeFed/ForgeFed/issues/324

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-07-31 17:07:57) @sun @deutrino

Radicle had some ties to Ethereum ecosystem since the beginning, that's how I discovered them. Initially there was no token or anything like that, they just wanted to use Ethereum as a payment layer.

But at some point this happened: https://web.archive.org/web/20211218051828/https://radicle.xyz/blog/introducing-rad.html

The token sale was followed by the usual enshittification you're probably familiar with. At some point I stopped paying attention to this project, only to discover it again around 2025. The price of RAD token went to nearly zero and now they are pretending that they have nothing to do with it.

This may seem like a small thing, but I believe that this kind of behavior did a lot of harm to the crypto community and should not be tolerated.

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-07-30 17:58:02) @sun I don't want to use it because it's a shitcoin project. Let's build a peer to peer forge on ActivityPub. I figured out how to do p2p, I think ForgeFed can be adapted to that.

Reply to @sun@shitposter.world silverpill@silverpill@mitra.social (2026-07-30 17:49:29) @sun Oh no, I hate this UI.

Logged in and looked around, everything seems to be working as expected.

>rad://z2gAKC6ESt5ZBV419uVPf2vFtEHCT

How to resolve that URL?

Reply to @harblinger@wizard.casa silverpill@silverpill@mitra.social (2026-07-28 07:12:34) @harblinger Let's do it on 'berg, I think it's going to be alright. My instance currently works only as a mirror.

Reply to @harblinger@wizard.casa silverpill@silverpill@mitra.social (2026-07-28 05:31:19) @harblinger


True, I'm going to re-skin AP 'repost' as 'bump' eventually. Good AP primitive to fix the no-signal bump posts common on image boards (picrel).


That's an interesting idea.

Maybe reposts should be tied to conversations, but let's keep this focused on comment-bumps for now.


Just implemented mitra subs recently too :)


🔥


Filtering private comments is to prevent users not in the convo being confused by what appears to be no activity bumped threads.


You can pass the current user to the query... But no need to make it more complicated than necessary.


I hope it's not annoying slop, let me know if you want me to run any further tests


Stored conversation.last_activity_id with a btree index



Premature optimization. It's never too late to add extra column.


Endpoint prefix. /api/v1/conversations is fine. The only wrinkle is that the bare path is Mastodon's DM conversation list, which Mitra already serves, so the public one likely wants to be a sibling path — /api/v1/conversations/public or similar.


Yes, we should use /api/v1/conversations/public


slop slop slop


Do you intend to send a patch?

silverpill@silverpill@mitra.social (2026-07-27 02:23:14) Setting up a Forgejo instance: https://code.mitra.social/silverpill/mitra

It will be mirroring repositories related to the #Mitra project. I don't plan to migrate from Codeberg right now, but it wouldn't hurt to have a self-hosted instance in case they decide to enforce the new anti-crypto policy.

This will also allow me to test the implementation of federation in Forgejo.

Reply to @harblinger@wizard.casa silverpill@silverpill@mitra.social (2026-07-26 19:55:36) @harblinger

It's not bad! Creating a sibling to get_direct_conversations is a good idea.

>2. What Mitra already has
>The missing piece is only that nothing orders conversations by activity, and nothing exposes them at public visibility.

This is correct. However, I think the results of get_direct_conversations can be ordered by activity (post.created_at). I made a quick test, the estimated cost of the query is exactly the same.

>3.1 A bump column on conversation

...So this shouldn't be necessary.

>Three details worth deciding deliberately:
>Reposts have no conversation_id

I've never seen an imageboard with reposts. I think only comments should bump threads.

>Only public activity should bump a public thread.

If the cost is not too high, we can bump threads on private comments too. get_direct_conversations already does that.

>3.2 The endpoint

I think /api/v1/conversations is a better prefix for the endpoint.

>root_status — the OP; this is the catalog card. The query already joins post AS root, it just doesn't return it today.
>last_status — newest activity, already produced by the lateral. Its id doubles as the max_id for the next page.

Returning whole Status is expensive. Unless you need to know everything about both root_status and last_status, I recommend returning a partial entity (e.g. only a title of the root).

>3.3 Optional: the same for group timelines
>Strictly a follow-up.

👍

This should be delayed until private groups are implemented.

Reply to @caohuak@moon.lonewolf.zone silverpill@silverpill@mitra.social (2026-07-22 22:49:35) @caohuak What's worse, Monero is not just a cryptocurrency. It's cryptocurrency for criminals!

silverpill@silverpill@mitra.social (2026-07-22 21:21:08) 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.

Reply to @harblinger@wizard.casa silverpill@silverpill@mitra.social (2026-07-15 04:28:16) @harblinger So you need an API endpoint for getting latest replies for a bunch of threads at once?
Let's add it.

I am not against real time API but that would require much more work.

Reply to @harblinger@wizard.casa silverpill@silverpill@mitra.social (2026-07-15 04:00:23) @harblinger @sun What do you need it for? Mastodon has Streaming API https://docs.joinmastodon.org/methods/streaming/

I haven't implemented it because I prefer old fashioned HTTP polling