Discussion summary

Chatto is an open-source, self-hosted group chat app aiming for performance and user enjoyment, with EU hosting options. Discussions highlight its features like free self-hosting and built-in SSO, contrasting with other apps that often require payments for advanced features.

What the discussion says

  • Chatto emphasizes performance and user experience.
  • Many open-source chat apps have limitations or require payments.
  • Some users prefer self-hosted solutions with integrated SSO.
Chatto aims to be the group chat app you actually enjoy using.
dofm
Many open-source chat apps are limited unless you pay.
francislavoie

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Wow! I've tried (and failed) to implement a chat application which parries slack and it sounds like the direction you're going in with Chatto is precisely what I was envisioning.

    I'll give Chatto a shot, but one of the things I'd love to have is interop with Slack and Discord. Is that on the roadmap or no? I saw that there's a Slack -> Chatto migration tool, but the unfortunate reality is that Slack is used by customers, so even if we internally use Chatto, compatibility with Slack is a must.

  • > I've tried (and failed)

    Why did it fail?

  • Very cool. I don't usually get excited for new chat apps, but I like the idea of having one frontend for multiple servers instead of pushing hard on p2p or federation.

    I do also still like irc, but haven't used it much in recent years because most of the people I talk to are using discord now.

  • One front-end for multiple servers is how you end up reimplementing XMPP (bar federation) before you know it: servers are not guaranteed to run identical/compatible versions -> you bake versioning at capability level in the protocol -> you make clients and servers degrade predictably when that happens -> you write a standard to document it formally -> you invite around the table those authors of alternative client and server implementers and boom, you've got the X in XMPP, and the XEP standardisation process and the XSF to support it.
    by ezst
  • 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...

  • The onboarding experience for newly created servers isn't ideal at the moment, that is correct. It's early days and I will work on improving this.
  • 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.
  • Yeah, Chatto should be relatively straight forward to use in "headless mode". I've seen a few users working on integrating it into their own applications as a chat backend.
  • 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?

  • AGPL stops others from running a competing cloud service using the Go backend. It does nothing for the frontend except scare off enterprise users.
  • Backend under AGPL prevents someone hosting it as a service. AGPL specifies that hosting _is_ distribution. Therefore, anyone hosting it must do so with public code. This provides a soft form of exclusivity to run their own Cloud.

    A frontend, permitting customizability, white-labeling, and so on, makes more sense to be more permissive.

    Grafana is a solid example to illustrate why.

    Moved from Apache to AGPLv3 in 2021 specifically so cloud providers couldn't host modified versions without contributing back, while keeping plugins Apache-licensed.

  • 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.

  • What's the point of end-to-end encryption on a group chat where the entire group can decrypt it?

    Discord users want end-to-end encryption to prevent Discord employees and outsiders from reading their chats. This doesn't have that risk, because the in-group runs the server.

  • 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".

  • What would you expect that to do beyond a "here's a link to the instance, sign up there"? You can combine it with Discord-like roles and gate channel visibility and rights on that, so even if someone else would sign up you just wouldn't give them the "in-group" role for example. Are you thinking of an "invitation" type link with a one time token or something?
  • 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)
  • Also, toss in a quick description. I couldn't tell quickly from the post or site what Chatto _is_. I guessed a vibe coded LLM TUI because that's the new hotness. In a world of Yggdrasil and Immich and Czkawka, a very brief intro helps!
  • Note that to send notifications to an iOS app, the app publisher has to send them. This means that they need to run an event forwarding proxy service (this is how Mattermost and Element/Matrix and presumably some/all of the ActivityPub clients do it), or selfhosting your server means you must also selfpublish your client app via the App Store and Apple’s developer program tax.
  • Chatto currently commits to providing a strong PWA experience that also works great on mobile (including full support for voice and video calls, push notifications, the works.)

    I am aware though that a lot of people would prefer an app that they can install, so this will be coming at some point -- just not a huge priority at the current point in the project's timeline.

  • 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! :)

  • Can also mean annoying. As a general recommnedation, before naming a project or company something, always search whether it means something bad in the top 10 most spoken languages.

    For portuguese/spanish, there is always a high chance of being a slang that is NSFW

  • chudo missed opportunity
  • In Spanish chato mean small, like a small nose (una nariz chata). In some contexts it can mean "dude".
  • I absolutely love boring software. It's a very, very rare quality nowadays.
  • Personally I've always found it funny that the widely used work software is called Slack which is very close to slacking (not working hard enough).
  • 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.

  • What does implementing soft-delete have to do with data storage though? If you just set up an S3-compatible backend like the docs offer you then have data persistence out of the box, no?
  • Employers may not be the target audience.
  • Different users (operators of Chatto servers) will have different requirements for this, so it's pretty much "configurable" in the sense that eg. a business that's hosting a Chatto server for their employees can disable shredding account deletion and just deactivate accounts instead, leaving their data intact.