Ibiyemi Abiodun« main page
Ditto (v2)Totally customizable social media as a service
April 2023 to August 2023
Ditto (v2) was my second try at entrepreneurship after I graduated from university. With the help of a cofounder, I built a product that lets people easily manage a custom social media site on the internet. I’m talking about custom themes, custom community rules, custom recommendation algorithms, custom domains. All of the services running on Ditto shared data with each other and with other ActivityPub-compatible sites like Mastodon.
That wasn’t what Ditto referred to when we started. Back then, it was a search engine that harnessed the power of large language models and web scraping to provide a more complete picture of what’s going on on the web. Read all about it here.
For Ditto v2, I built two services:
Each Ditto Space corresponded to one instance of
fed, which was responsible
for providing an API for the mobile app and website and managing users, posts,
fed was designed so that it could run in as a server or as an AWS Lambda
function in anticipation of the load we would experience upon scaling to
thousands of sites (only a fraction of which would be super active at any given
In addition to serving as the backend for Ditto,
fed was also the source of
truth for federation. Federation refers to servers exchanging data with each
other to create a distributed network of information. In this case, the posts of
Ditto users were being federated between Ditto Spaces and to remote servers.
There was only one instance of
bigfed. This was an ActivityPub relay that
collected activity from relays and
annotating each post with key words and vector embeddings before dumping them
into an Elasticsearch index so that they could be discovered by a recommender
The mobile app
Ditto was mobile-first, and so it needed an app. I wrote this app in React
Native. It communicated directly with
fed instances, and users could easily
fed instance they were on (much like switching between subreddits
in the Reddit app).
Ultimately, Ditto didn’t end up working out. Let’s call it bad luck. But hey, at least I saved the landing page on the Internet Archive before my former business partner took the site down.