Vjerci.com

A personal blog by software engineer

February, 4-th, 2025

Product: Distributed Reddit


What are we designing

We are designing a reddit which is distributed. What that means is that each subreddit is it’s own, potentially, self hosted, community with its own moderation rules and it’s own content. Each community functions by it’s own rules, can potentially display it’s own adds, and is govern only by it’s own moderation policies. Kinda the way internet communities used to function in the good old days, you know before the whole centralization started to happen. However, we would still like to keep most of reddit’s main functionalities. We would also like to keep the basic incentives for each layer to properly function.

Here is the schema: architecture-overview

As you can see, we have 3 layers. Authentication, aggregation, as well as communities. So lets dive into each one, figure out what is their task and what are incentives for people to host them.

The main idea behind our app is that everything is open source and free to use and modify.

1. Authentication layer

About

Authentication layer is a way for user to register/login to community and aggregators. It is designed in a way that multiple authentication layers can run in parallel while user would authenticate/register/login to a community with a single click and single auth layer. User would also be able to deauth from community using single click. User could have an unique id similar to username/authenticationlayer.com. Allowing a certain degree of privacy. It is technically feasible to do that using SSO protocols.

Tasks:

  • -> 1. Register/login user using email, google, facebook ect.
  • -> 2. Provide N+ communities with a way to identify users
  • -> 3. Pass down notifications from communities
  • -> 4. Provide user profile pages

Incentives:

I would say authentication layer has the weakest incentive to exits. It’s only way of displaying content to user is sending notifications and displaying ads on their profile. Let’s keep in mind that It is very hard to display adds in notifications and most of the time nobody wants that. And user profiles are rarely visted. So authentication layer will probably be provided by the goodness of a hearth (incentive for our software to grow) by bigger communities as well as by software creators.

2. Community layer

About

Community layer is something similar to subreddit. It is a link and post aggregator. With it’s own moderation rules. It is self hosted, on either your own domain or software creators subdomain. The goal here is for it to be distributed and diverse, preventing eventual centralization and it’s rules.

Tasks:

  • -> 1. Submit links,post, comments ect..
  • -> 2. UpVote and downVote content
  • -> 3. Pass notifications to authentication layer

Incentives

Biggest incentive to run this software is that you own the community. You set the moderation policies, and you can display adds. Whether it is spam like a popUnder, user-respecting ad in a sidebar, or perhaps a bit more annoying native add in feed, or even better, no ads at all… Same goes for content, if you want to allow spam, you can. If you want to allow nsfw you can, if you want to allow piracy, you can. Basically you decide what you want to do with your community. The way it used to be and the way it should be. A community with its own rules.

3. Aggregation layer

About

Aggregation layer is something similar to to reddit’s home page or a facebook news feed. You authenticate with it, it goes trough all your community layers and shows you aggregated, sorted, community content. It also performs some sort of unique magic to rank content. Machine learning based on previous preferences or twitter’s old show everything by date would be examples of different approaches.

Tasks:

  • -> 1. Aggregate community content
  • -> 2. Build a personalized feed
  • -> 3. Pass user down to community to interact

Incentives

Aggregation layer is a page that fights for user attention. In that fight there is a room to show ads. That means, similar to community layer, there is a high incentive for people to host it. It can also act as a mini community by refusing to show a certain content (nsfw or similar). It can block and allow only the content from certain communities. Basically there is a lot of incentives and ways to grow aggregation layers. There is also incentive for multiple aggregation layers bringing in the competition and letting the best on the market win.

Why would anyone develop such thing?

Well besides eternal fame for building software… there is money incentive for engineer building such thing. There might be a 4-th service that might make sense, it is an adverts service which allows both aggregators as well as communities to easily display ads while offering some fair way of revenue sharing. As builder of our distributed reddit layers, it should be trivial to integrate ads and offer communities revenue share model. It also makes sense for communities and aggregators to simply donate money to developers. At the end of the day each community and aggregator has an incentive for this open source software to evolve, for it to support new features, new protocols, and generally keep up the pace.

Tactics for bringing in communities

Once we build the software to do everything we will need to somehow onboard our communities. As it is often problem with such softwares, if there is no community nobody posts, and if there is no members nobody wants to join. As a creator of software we will probably need to build some communities ourselves just to kick things off.

1. Cross-posting

One thing we might want to build out is a bot. Our bot would basically go to existing reddit community and cross post it to our community as a user. That would allow us to replicate a community from subreddit to our layer, brining in the incentive for other users to join. If we run authentication layer we might post as real users to our communities and allow users to claim their nicknames by posting a a hash we provide on a special subreddit.

2. Money incentives

There is a money incentive, at the moment at subreddit mods have so little of wiggle room for earning money. All they can do is pin a post or possibly do some sort of link exchange. However in our distributed reddit they have the option to show ads themselves taking a chunk of money pile for their effort to run communities. At the end of the day, running a community is a takes time and effort. In a perfect word it would be rewarded instead of exploited. So there is an money incentive for certain subreddit’s to make a switch.

3. Freedom of expression

Reddit is one of the few online communities that allows “borderline” content… think of completely legal porn and certain degree of piracy related software. However there is a problem there. Since reddit is a centralized platform, various governments can apply pressure to it to moderate the content. When things get decentralized, applying pressure gets harder. By being off the reddit and on such distributed platform, such “borderline”, or even a bit more “extreme” content can be hosted. Allowing bigger freedom of expression. However there shouldn’t be any concern, as I am quite sure, “sfw only” aggregators will surely pop up. And users should be free to choose what degree of “freedom of expression” they want to use. There is an incentive here for certain subreddit’s to make a switch as they are aware that they live in “danger zone”