sunsetting unifier
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. ❤️