Chatto Goes Open Source: A Fast, Private, Self-Hosted Group Chat
Chatto is now Open Source

I am thrilled to announce that Chatto, the compact and snappy group chat application I have been building, is now officially Open Source and ready for self-hosting. Designed with privacy first, it features end-to-end encrypted voice and video calls, requires minimal resources, and keeps all data fully encrypted at rest. Whether you choose to host it yourself or wait for the upcoming Chatto Cloud beta, you get a powerful communication tool without ads, tracking, or lock-in.
For free, too! (A weird thing to write, but the OSS chat app space has become very weird in many ways!)
- wxw
> It’s designed to be extremely easy to self-host on your own infrastructure.
Kudos for this. Per the docs: https://docs.chatto.run/,
> Chatto ships in a compact, self-contained binary
> it uses NATS, a compact message broker that also ships with a built-in stream persistence engine [...] NATS is just as easy to provision as Chatto, and most of our examples will show you how.
> you can also configure an external S3-compatible object storage for Chatto to store your files in, and we strongly recommend doing so...
> The actual calls are powered by LiveKit (Apache-2.0), which you need to deploy alongside Chatto. As with NATS, the deployment examples show the required wiring.
> ...
And kudos for backing it up with real guidance. Great project.
- mertbio
I’ve known Hendrik for years, and he is one of the most talented developers I’ve ever met. I’m confident this project will become successful very quickly. Beyond the project itself, what fascinates me most is how he single-handedly developed it by leveraging agentic coding.
- duttish
A thought if you want to sell to companies, "with per-user keys that get shredded when a user decides to delete their account."
You'll need soft delete, work messages belong to the employer and not the user.
- dormento
Couldn't help but smile because "chato" in portuguese means "boring", and this seems very easy to set up and use.
Here's to more boring software! :)
- frenchie4111
This is awesome! Some feedback - I can't tell anywhere from the website if there is mobile support (which is a must-have if I want to consider moving my company or friends over to this)
- beart
What would be really awesome is some sort of feature where, once self hosted, I can generate a package or link that will download + install + pre-configure the login. Basically a bespoke installer/setup script. that can be linked to a particular person. The goal being to make onboarding as frictionless as possible. This could have some security implications maybe (the link is shared by mistake), but for a small self-hosted instance, that seems like something that could be mitigated fairly easily. Maybe only works with local accounts or something.
That would really make it easy to send a friend a link, "hey come chat with me", without having to worry about a response such as, "I'm already on discord, I don't want to set up all that stuff".
- jdthedisciple
So the UI is a Discord clone, I think that's worth mentioning. It's not a bad thing, quite the opposite: Discord nailed it in that regard.
Now are the chats end-to-end-encrypted? It only says calls are, so that remains ambiguous. I believe that would be a major sell for current Discord users.
Overall looks like a great app to try out.
- simonw
What's the rationale for the dual licensing? It looks like the Go backend is AGPL but the TypeScript frontend is Apache 2.0.
Why not keep it all AGPL?
- miki123211
Your getting started docs are extremely confusing.
Sure, the docs tell you exactly what to do to start a server, but not how to sign in to it. Or how to sign up (email is disabled).
There's an `operator` command which is supposed to let you create users, but it can't find the operator API.
You were that close to a perfect onboarding experience...
- robertlagrant
Very good. I was wondering about this a while ago - lots of companies want something to aggregate notifications and perform simple bot actions, but don't necessarily want to lock into a chat provider. Having this as the frontend to a load of integrations (or even just internal chat) would be really interesting.