The Holos relay server just reached its first real release, 1.0.0. It is a good moment to open things up and share some real numbers from production, because they say a lot about how Holos works.
If you are new to the project: Holos is a Fediverse app where your own phone runs the server. Your posts, your keys and your list of followers stay on your phone, not on someone else’s computer. The relay has one job, to give your phone a stable address, because a phone on a mobile network cannot be reached directly. When someone on Mastodon looks up your account, the relay passes the request to your phone, and if your phone is offline it keeps the message until it comes back online. There is an overview of how it works if you want more detail.
The whole idea is that the relay should hold as little as possible. The numbers below show whether that actually works in practice.
The numbers
Everything below runs on a single server: one program for the relay, one for the tunnel, and one PostgreSQL database.

The relay’s admin dashboard: live server stats and performance graphs.
| Active accounts (email verified) | 803 |
Custom domains (@you@your.domain) | 9 |
| Remote instances federated with | ~3,500 |
| Custom emojis hosted | 100 |
| Moderation reports handled | 7 |
| Cached media on the relay | 18 files, 18 MB |
| Requests served | ~350 per minute, 3 ms on average |
| Error rate | under 0.3% |
| Relay memory | ~160 MB |
| Database (real data) | ~8 GB |
The number I like most is the media: only 18 megabytes for more than 800 accounts. On a normal Fediverse server, media (photos and videos) is usually the biggest cost, and it grows every time someone posts. On the Holos relay it stays tiny, and that is by design. Each user decides where their media lives, right from the app. If they connect their own storage (S3 or WebDAV), their photos and videos go straight there and the relay is never involved. If they do not, small files (under 10 MB) are cached on the relay, but only for the life of the post they belong to. Cached posts do not stay forever. On my relay each one is kept for 117 hours, just under five days, and when a post expires its media is deleted with it. Bigger files never touch the relay at all. They stay on the user’s own phone. Either way the relay never builds up an ever-growing pile of media the way a normal server does.
Memory is the same story. The relay program uses around 160 MB, and a bit over 500 MB in total once you count everything the system sets aside for it. Either way it stays well under a gigabyte for all those accounts, and it answers a few hundred requests a minute in about 3 milliseconds, which is three thousandths of a second. There is nothing heavy kept in memory, and a user costs the relay almost nothing while they are not active.
And this is not a lucky snapshot. Over a full day the relay stays just as calm.

The same relay over 24 hours. Requests, response time, memory and errors all stay low and flat.
The database
The actual size of the database is about 8 GB, and almost all of it is one thing: a shared list of recent public posts that the app uses to build your home timeline, around 4 million entries. That is roughly 10 MB per account, and old entries are removed automatically, so it does not keep growing.
Earlier this year I changed how this works. The relay used to keep a separate copy of every post for every user. Now it keeps one shared copy that everyone reads from. That single change is what makes it possible to serve hundreds of people from such a small database.
What 1.0.0 means
Reaching 1.0.0 does not mean everything is finished. It is more of a marker. The relay has been running in production since the end of 2025, and it has been through a big change under real traffic. Moderation works, custom domains work, and using several devices on one account works. The code is stable enough that I am comfortable putting a version number on it.
The relay is open source (AGPL-3.0) and you can host it yourself. The code is on Codeberg.
None of these numbers are big, and that is exactly the point: a home on the Fediverse for hundreds of people, running on one small server with a few hundred megabytes of memory and a database of a few gigabytes, because the things that matter never leave people’s phones.
Feedback is welcome on Codeberg or on the Fediverse at @HolosSocial@mastodon.social.