Update: I didn't expect the whole world to start giving me signs to revive Unifier the moment I say
I'm done working on it. Thank Discord and their (now delayed) age verification rollout, I guess...
I've decided Unifier will stay discontinued, because like I've discussed here, it's a pain in the
ass to work on. So I'm building Shinobu, the
official successor to Unifier except the codebase isn't terrible this time. Come check it out!
Unifier was my first ever open-source project.
It was my first project I was actually serious on, and my first time I actually applied programming to
solve a real-world problem.
But now, after a little over two years of working on it, I've decided to sunset it for now.
Where it started
It all started back in December 2023, where I was spending time in a few Discord communities themed
around a certain game we all used to play. I noticed that the majority of those communities' members
shared the same sentiment that the official Discord server for that game was being too strict on
moderation, and thus people found it very difficult to properly communicate with others and meet new
people.
And of course, I felt the same way.
But we couldn't build a new giant community from scratch, one that could replace the official server. It
was going to be near impossible to build such a community at that scale. We were either going to have to
be stuck in a small community of a few hundred people of which only tens would be active at a time, or
be subject to unnecessary censorship.
But then I realized, we already had lots of those small communities. We all shared the same interest for
a common game as well as the theme of that game. So what if we could just connect those communities
without having to go through the pain of creating one from scratch?
And hence, Unifier was born as a cross-server bridge bot.
How I worked on Unifier
At first, Unifier was just a basic hobby project. Just another bridge bot built for fun and not for
scale. But as users started to use it and give feedback, I used it to improve Unifier to what it became
today.
The first focus was to make Unifier performant. Many were complaining about the few seconds it took to
bridge messages, and while this may seem like just a minor thing at first, that few seconds of delay
actually makes a difference in how conversations flow. If there was lots of delay, the messages would
desync in peak times, and users might get confused about the context. So I decided to focus on this and
improve performance by reducing disk and network usage as much as possible by moving as much data as
possible to memory, and implementing asynchronous (and later concurrent) programming to ensure all
servers received the message at the same time.
Another focus was to make it cross-platform. This was just an experiment when I first worked on it,
designed to see what direction Unifier could take. I didn't expect it to be widely used at first, and it
was just a way for me to learn more about Python and how I can implement cross-platform functionality.
But to my surprise, this ended up being one of Unifier's main selling points, and it drew attention from
many large communities such as Debian's community Discord, which heavily contributed to Unifier's growth
and development.
Focusing on these two things helped Unifier be known as a bridge bot that's both performant and
cross-platform. It helped me set Unifier apart from other bridge bots. Many users appreciated that and
it helped Unifier grow to become possibly one of the premier bridge bots for Discord and beyond.
Why did I sunset it?
Frankly put,
I'm burnt out.
I've tried so many things to address my burnout. I've worked on other projects like Natsumi Browser.
I've tried giving Unifier a whole new rewrite to remove the jank code I couldn't work with and start
from a clean state. But in the end, I still couldn't really motivate myself to work on Unifier any
further. It just felt like a chore that I never end up doing, and Unifier just felt like something that
was already abandoned and picking up dust.
Many among the UnifierHQ community expressed uncertainty about the state and future of Stoat (previously
Revolt), a platform Unifier officially supported aside from Discord. Ever since its sudden rebrand, many
users felt like the team didn't have a clear direction for the platform and have switched back to
Discord or moved on to alternatives like Matrix. Besides that, the official Python library Unifier used
(which I forked from to fix some bugs it had) was discontinued, so I didn't really have any other
library I could use to maintain Stoat support.
And last but not least, while I was still being burnt out from working on Unifier, Natsumi Browser
graduated from just a part-time side project I had to a full-time project I worked on. Natsumi didn't
feel like a chore to work on, because it actually felt like something I use and not just something I
realize "oh right, that's there". It wasn't just something else I had under my belt, it was pretty much
the new definition of who I am as a developer. And I wanted to go all-in on it.
Will I continue the project?
Maybe. Maybe not. Who knows, anything can change.
But for now, I want to dedicate my time to the projects that I enjoy working on. Projects that I
actually use on a daily basis and want to tweak it further to make it better for me and others that use
it.
Or maybe, in the future, someone can carry the torch and fork the project to continue where I left off
under their own direction and vision. Unifier is and always will be open-source, so if anyone wants to
continue it themselves, they can do so freely.
What I've learnt
Unifier taught me so many things about programming, open-source development, project management and a
lot more. It essentially shaped me into the developer I am today, and it's the first project that I
could put on a CV and call it a true achievement.
One important thing I've learnt is that open source isn't just about the programming. In fact,
programming itself, especially when making projects with it, isn't just about the programming. It's also
about managing the community that's formed around the project and keeping everyone in it safe, as well
as listening to feedback to better address your userbase's needs. You can't just program something
blindly solely based on your vision and make everyone else adapt to it, that's not how it works.
I've also learned a lot about encryption, especially about using secure encryption algorithms and
implementing encryption in a way that is secure and resistant to attacks. I already had some knowledge
on encryption thanks to the folks at
Ente, but Unifier was the first time
where I actually
applied encryption instead of just having theoretical knowledge about
it. But implementing it securely is a whole different challenge, such as picking the right algorithm and
mode for the job (I initially uses AES-256 in CBC mode, but later switched to GCM mode for better
security) and properly isolating sensitive data with fine-grained access controls to make it harder for
attackers to access it. Because even if you can use strong encryption, what difference does it make if
the implementation is susceptible to attacks?
What's happening to Unifier
On April 10, 2026, the following happened:
-
UnifierHQ, the organization behind the Unifier project, is now considered defunct
-
The UnifierHQ server has be closed for the foreseeable future, though moderation and developer
channels will remain open for existing members to access
-
Unifier's source code repositories are now on an archived state but will remain public
-
All Unifier instances hosted by UnifierHQ have been shut down
Thank you to everyone that supported Unifier. It's been an amazing two years. ❤️