Date: Wednesday March 04th, 2026
Time: 11:25:43 AM MST
From: @vga256
Groups: tomo.dev
Subject: tomo is dead
Time: 11:25:43 AM MST
From: @vga256
Groups: tomo.dev
Subject: tomo is dead
* declaring tomo-rslight dead a month ago was incredibly helpful because it allowed me to put the endless mental arguments about how to proceed with the project to rest.
> boiling it down: the NNTP protocol locked tomo down into a specific hierarchical relationship between groups (e.g. animals.dog.chihuahua). worse, NNTP made modern necessities like editing and deleting posts almost impossible.
> i don't know about you, but my posts are so rife with errors that it generally takes me 3-5 edits after the fact. worse, sometimes I write something so dumb and hit send before thinking about it. I have to delete the post 8 seconds later before the unwashed masses can read it. imagine *not* being able to do that in 2026.
* if you've been reading this development .plan for a long time, you might remember a concept that I floated around a long time ago: that each tomo shard is like an izakaya you'd find in a Tokyo alley.
> You part the noren below the dusty sign announcing the name of the shard. Stepping inside, a group of old friends is huddled together at a table in the corner, arguing about sports and politics. A larger group of English-speaking ex-pats nod politely as you step inside, trying to decide if you're one of the regulars. At the bar, the owner tends to four visitors who enthusiastically tell stories to one another about their recent travels; they turn around and welcome you to have a seat beside them. To your left are private booths: a business meeting with a group of three takes place in one; a hushed romantic dinner between two people in another.
* there are a bunch of design decisions implicitly made in the izakaya that may not be evident at first glance:
- the izakaya is a private space for public discussions: when you're outside, you see and hear nothing; just stepping inside lets you listen-in and even participate.
- the social space of the izakaya is sub-divided into private, semi-private, and public discussions. the bar, with its friendly, transient visitors, welcomes *anyone* to join in and participate. the table of ex-pats is one degree more private, welcoming any new ex-pats but not welcome to non-expats. the table of old friends is public - you can hear everything they're saying, but participating in their discussion is strictly invite-only. the booths along the walls are totally private: you can't listen-in, you can't talk, unless invited by the owners.
* what I wanted to maintain from the beginning with tomo was the ability to have this huge mix of private and public discussions. this meant giving shard and room owners a bunch of toggle switches to set their preferred degrees of public and privacy.
> none of the above is meaningfully possible with traditional NNTP, which was always meant to be fully public.
! sure, there is plenty of forum software out there that can already do some of this.
> but what I don't see is forum software that can manage private/public conversations and federate each shard with one another over the network, and allow for important functions like editing and deleting posts.
> what I propose is something like this:
> each tomo shard carries its own registered users
> each shard shares with other shards on the network its list of public rooms (discussion groups), and list of public topics in each room, but does not share the content of the messages/posts in each topic.
> click on a post, and the local shard (tomodori.net) asks the remote shard (jackson.tomo.city) if vga@tomodori.net is allowed to read that post. The remote shard (jackson.tomo.city) replies "Sure, it's public, anyone can read posts in that room" and sends the post to the user's browser.
> want to reply to a post? The local shard (tomodori.net) asks the remote shard (jackson.tomo.city) if the user is allowed to reply to posts. The remote shard says "Okay, well: that user's account doesn't exist here, but after checking the room's permissions, I see that vga@tomodori.net is allowed to post in that room. Sure, send me their post and I'll add it to the discussion."
> what I don't want is the push-based Federation system that Mastodon (and most ActivityPub-based servers) rely upon. it's wasteful, and it creates huge, complex, and high-overhead management software.
? is a pull-based architecture still possible using ActivityPub? Is using ActivityPub as the base protocol for server-server and server-client communication even necessary?
> Django supports pull-based Federation, so we at least know that it's possible.
! what's the upshot of all of this? tomo is getting a reboot as a modern, pull-based, federated network of discussions. no more NNTP, no more RSLight, with an even simpler design. all written in PHP.
.............................
> boiling it down: the NNTP protocol locked tomo down into a specific hierarchical relationship between groups (e.g. animals.dog.chihuahua). worse, NNTP made modern necessities like editing and deleting posts almost impossible.
> i don't know about you, but my posts are so rife with errors that it generally takes me 3-5 edits after the fact. worse, sometimes I write something so dumb and hit send before thinking about it. I have to delete the post 8 seconds later before the unwashed masses can read it. imagine *not* being able to do that in 2026.
* if you've been reading this development .plan for a long time, you might remember a concept that I floated around a long time ago: that each tomo shard is like an izakaya you'd find in a Tokyo alley.
> You part the noren below the dusty sign announcing the name of the shard. Stepping inside, a group of old friends is huddled together at a table in the corner, arguing about sports and politics. A larger group of English-speaking ex-pats nod politely as you step inside, trying to decide if you're one of the regulars. At the bar, the owner tends to four visitors who enthusiastically tell stories to one another about their recent travels; they turn around and welcome you to have a seat beside them. To your left are private booths: a business meeting with a group of three takes place in one; a hushed romantic dinner between two people in another.
* there are a bunch of design decisions implicitly made in the izakaya that may not be evident at first glance:
- the izakaya is a private space for public discussions: when you're outside, you see and hear nothing; just stepping inside lets you listen-in and even participate.
- the social space of the izakaya is sub-divided into private, semi-private, and public discussions. the bar, with its friendly, transient visitors, welcomes *anyone* to join in and participate. the table of ex-pats is one degree more private, welcoming any new ex-pats but not welcome to non-expats. the table of old friends is public - you can hear everything they're saying, but participating in their discussion is strictly invite-only. the booths along the walls are totally private: you can't listen-in, you can't talk, unless invited by the owners.
* what I wanted to maintain from the beginning with tomo was the ability to have this huge mix of private and public discussions. this meant giving shard and room owners a bunch of toggle switches to set their preferred degrees of public and privacy.
> none of the above is meaningfully possible with traditional NNTP, which was always meant to be fully public.
! sure, there is plenty of forum software out there that can already do some of this.
> but what I don't see is forum software that can manage private/public conversations and federate each shard with one another over the network, and allow for important functions like editing and deleting posts.
> what I propose is something like this:
> each tomo shard carries its own registered users
> each shard shares with other shards on the network its list of public rooms (discussion groups), and list of public topics in each room, but does not share the content of the messages/posts in each topic.
> click on a post, and the local shard (tomodori.net) asks the remote shard (jackson.tomo.city) if vga@tomodori.net is allowed to read that post. The remote shard (jackson.tomo.city) replies "Sure, it's public, anyone can read posts in that room" and sends the post to the user's browser.
> want to reply to a post? The local shard (tomodori.net) asks the remote shard (jackson.tomo.city) if the user is allowed to reply to posts. The remote shard says "Okay, well: that user's account doesn't exist here, but after checking the room's permissions, I see that vga@tomodori.net is allowed to post in that room. Sure, send me their post and I'll add it to the discussion."
> what I don't want is the push-based Federation system that Mastodon (and most ActivityPub-based servers) rely upon. it's wasteful, and it creates huge, complex, and high-overhead management software.
? is a pull-based architecture still possible using ActivityPub? Is using ActivityPub as the base protocol for server-server and server-client communication even necessary?
> Django supports pull-based Federation, so we at least know that it's possible.
! what's the upshot of all of this? tomo is getting a reboot as a modern, pull-based, federated network of discussions. no more NNTP, no more RSLight, with an even simpler design. all written in PHP.