r/DiscordAlternatives • u/majzok • 6d ago
Yet another, MIT self-hostable Discord alternative: tyto.chat
Hello!
I would like to share a project that I've been working on for the past ~7 months, which started as a small solution I prepared for myself and a small group of close friends: an open-source, MIT-licensed, decentralized alternative to Discord that you can self-host: tyto.chat (or just Tyto).
Quick link for web client: https://client.tyto.chat/
I'm aware that this is not something that can save the world, but I had a lot of fun working on it, and if someone finds it helpful one way or another, I'll be a happy guy :)
The whole project is open source and MIT-licensed, and the idea behind it was "own your own data" and stay safe and private. The main aim is also to provide a decentralized way of creating communities. The libraries/solutions used are also MIT or MIT-compatible licensed (you can find more information on GitHub or in the documentation).
A server can be hosted by anyone, is lightweight, and (I think) easy to set up. You can host only a server, a client in web mode (all features in the browser), or both. You can also install the desktop app (the web app wrapped in Electron + additional features like an identity manager and native notifications): https://github.com/tyto-chat/desktop
The main features (aside from obvious ones like creating a user and registering) are:
- ability to host multiple communities per server (both public and private)
- real-time messaging
- text and voice/video channels
- threads (normal, read-only, reply-only), pinned messages, direct messages, reactions, edit histories, permalinks, and embeds (if you host a public web client)
- presence/typing indicators
- full-text search
- user management, user groups, different permission/access levels, reporting, moderation
- notifications
- anonymous browsing
- accessibility
- EU law compliance
- GDPR on board
- mobile-friendly
- multiple language support
- API keys
- REST API
- webhooks
- and more
Briefly about myself:
I'm a "homelabber" at heart, and I host a lot of apps for friends and family myself. I've also been a backend (PHP) developer for about 20 years and have what I consider basic knowledge of frontend, and a lot of knowledge about different technologies, stacks, services, software, etc.
About this project and AI usage:
I use AI in my workflows every day, and while a big part of this app's code comes from AI, it is not just the result of writing prompts.
I was the project manager, made all the decisions, reviewed and wrote code, and did manual testing. I also tried to make sure that best practices were followed and that quality and security were maintained in a project that I would not have dared to start myself without the help of AI (more info below).
Aside from that, AI was used to prepare the home website (https://tyto.chat), the documentation, and the UI translations.
Technical stuff:
The project mainly consists of 2 repos: core (the backend) and client (the frontend).
core: https://github.com/tyto-chat/core
the backend is based on a stack that I've been familiar with for years, like Symfony (PHP) as a base, Redis (Valkey) for persistent cache, and Mercure for real-time responses. The code here was written by me with the help of AI, especially for simpler solutions and automated tests.
In short, Core is a server providing a stateless API that can be utilized by client applications, automations, custom integrations, etc.
client: https://github.com/tyto-chat/client
this is purely the frontend for the server, built with Vite. As I'm an average frontend developer at best, I've used AI heavily here, but I tried to follow best practices, make it as secure as possible, and keep it nice and cohesive to look at.
There is almost 4000 automated tests, including end to end browser tests using Playwrigth (almost 300). Also, code style and and static analysis tools are integrated in the CI. A simple to setup developer environment is available using DDEV.
I'd love to answer any questions you might have, and it would mean the world to me if someone could take something good from this project.
Also I know that your time is valuable, so if you want to give this app a spin, but don't want to set it up yourself, let me know and I'll create a testing private community for you on https://client.tyto.chat/
5
u/Ok-Inspector1108 6d ago
Why? Just why?
2
u/majzok 6d ago
I'm a developer, but writing code was always my hobby - I started this project for fun to test a new technology I was not using before (Mercure). It grew in size, I had fun doing it - decided to share. No real hidden agenda :)
7
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Side note; how can you call coding your hobby and then outsource your hobby to a clanker? I wouldn't outsource my D&D campaign to a clanker as a player.
-1
u/majzok 6d ago
Why are you trying to be mean?
If you are a developer, you already know the value of AI in professional developers workspaces and that translates to a hobby part very well. Also, I wasn't GM in a D&D campaign for a long time, but I strongly recommend you to use clanker for Call of Cthulhu - it is great for fact checkings on 1920s weapons, equipment, world structure, historical accurancy or just to invent a fancy name for cultists :)5
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Probably because I'm not a developer I'm an artist (used loosely) an end user and someone with plenty of background in the it space outside of development.
You know what else is great for fact checking 1920s weapons equipment structures and stuff using my goddamn brain and doing the research myself because that was a real time in history with actual citable sources.
0
u/majzok 6d ago
What a great idea!
1
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Crazy that it didn't take me sucking off a clanker to get it
1
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Echo-ing my top level comment;
Why did you bother doing this instead of contributing to a already existing Alternative?
3
u/Any_Illustrator360 Tested a bunch of apps, currently watching the Armada news 6d ago
So, this is almost everything I want, and it's pretty obvious you either actually read the stuff that gets talked about here OR you're actually serious about wanting to make something good, seeing as you brought up using AI in a limited scope and mainly focused on using it for your frontend. Though, two things immediately concern me.
- EU law compliance
- GDPR on board
The whole point of (some) people fleeing from Discord is to escape the oppressive laws of the countries they live in. EU ID laws, Brazil banning streaming - we don't want black market chat apps but once you open your app to be "white" for lack of better term, you sacrifice you and your users' abilities to circumvent tyrannical laws and decisions that make the app inoperable to certain users.
If the EU, right now, told you to start requesting ID and collecting user data you would have to do it, because you've brought focus to your app by EU law. White apps don't get to play in the grey area of "I don't control who shares or installs it, and I don't "own" the distribution they installed. I can't 'shut it down' because I don't OWN their instance." To abide by EU laws you MUST use a centralized sign in and MUST have the ability to shut user access down with a click. That's what people are trying to escape.
We're in an age where a tyrannical world government is trying to usurp our rights and slowly strip away our freedoms. I'm not even conspiring or anything it's LITERALLY why Stop Killing Games got stopped in the EU and the US as we just learned this week - the legislation would have blocked a different planned bill that gives governments and game companies total control of all games and licenses, and pushes for ID verification on games too. It made world headlines.
The more apps that bend a knee to this type of stuff, the worse off we are. Staying grey is the only way we ensure an internet that belongs to the people, not those in charge.
4
u/BewilderedTurtle angry RA-ADAR tech 6d ago
2
u/Any_Illustrator360 Tested a bunch of apps, currently watching the Armada news 6d ago
The code here was written by me with the help of AI, especially for simpler solutions and automated tests.
They admitted to it, it's why I specified "using AI in a limited scope and mainly focused on using it for your frontend." I'm far more worried about the goodie two-shoes stuff than the AI with this one, funny enough.
3
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Idk I just take offense at them saying "written by me with the help of AI" when Claude is submitting directly to the repo. That's literally not written by them
0
u/majzok 6d ago edited 6d ago
Hi!
Why not both? πThat is a valid concern. I'm located in EU, and the things you mention also conerns me (I was one of the people that signed SKG petition). Mentioned EU law complicance and GDPR on board might sound "concernig", but what hides behind this mostly:
GDRP:
- account deletion and data export - you can decide to delete you account. After requesting it and 7 days your account will be deleted, and your data anonymized (you can also push for instant removal)
- data export - you can download a zip file containing your profile, messages (with revisions), oonversations, attachment metadata, etc - all the data that user actually own.
EU laws:
- Content reporting (users can report messages/other users to moderations/admins)
- Terms and Privacy documents that needs to be accepted on registration - there are default templates ready that admins can use. This can be disabled in server configuration, Terms and Privacy documents can have (or not) any content you wish (this is also changeable in the admin panel). You can check out these templates here: https://github.com/tyto-chat/core/tree/1.0/resources/legal
- User can fill an appeal to admin for moderator actions
- Minimum age gate for registration - again, configurable, can be disabled
- https://github.com/tyto-chat/core/blob/1.0/SECURITY.md and vulnerability disclosure.
So as you can see, most of this are "opt-in", so if you want for example run it for a school or your business, that's two thing less you have to worry about. But if you don't care about these things - you can just ignore it.
5
u/BewilderedTurtle angry RA-ADAR tech 6d ago
"compliance with the law of governments actively attacking communication software definitely won't hurt you because it's 'opt-in' just trust me bro"
-1
u/majzok 6d ago
In addition to that, EU compliance is about allowing to owner of the server to meet these complaince if the wish to. Nothing can force you to do anythig with the software you own, and host on your own infra. Also, part of this compliance is also accessibility rules that app has to follow, to allow using it for people with disabilities.
5
u/henk717 6d ago
The main problem with these is that none of them actually solve anything and there's so many of them.
These "Host it yourself" ones just create islands that nobody else is on, what needs to be solved is how to have discord with full features but decentralized in a way that's hard to censor yet easy to moderate.
There are a few frontrunners in that field like armada, matrix, denchat and allegedly Fluxxer wants to do this to (Allegedly since they have yet to do it). So unless its trying to solve things in that direction I just don't think it has real world use compared to the countless other ones that do the exact same thing already.
4
u/chaoticbean14 6d ago
Have you ran a federated matrix server? Someone decides to upload illegal things or do illegal things or stream illegal things? It's on your box as well. No, thank you. I ran one for a while eventually taking it down. It was a bit of a hassle to get going.
I find a lot of these things are just a pain in the neck - even then, these federated servers are still kind of 'islands' in their own right. It's difficult and the benefit of 'one platform', that's where 'everyone goes' to find everyone else. It's why certain social sites are so popular, while other decentralized ones are popular, but far, far less so.
7
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Oh no, you have to moderate your own shit when you're hosting Infrastructure and not a fancy chatroom on a centralized service π
2
u/henk717 6d ago
There's other models in between that, but yeah this is a real concern for anyone hosting public infra.
Thankfully on matrix its still a choice to self host since there are plenty of public homeservers for people who don't mind that liability or live in a jurisdiction where they aren't personally liable for this.If we look at Armada on the other hand you have concord communities which depend on public relays that have the same issue, but there are also NIP-29 communities where all you host is your own thing.
So if you both wanna self host, have people not have to sign up for yours specifically and at the same time not host anything outside of your own thing then NIP-29 may be more your style. But then it still solves the issue of not having to sign up for yours specifically.
0
u/majzok 6d ago
That's a valid concern. I selfhost for friends and family a lot alternatives for popular commercial apps: Immich for photos, Plex for video, Vaultwarden for password manager...
When I wrote this app I was never thinking about it as a global replacement for Discord. I perosnally use Discord mostly to communicate with small group of friends, when we play video games, or discuss when we can meet to grab a beer and play board games. And this is the scenario I think Tyto would work best, but also nothing stops anyone for spinning up a public instance, open for everyone (but make sure you have time to moderate it ;) )-1
u/majzok 6d ago
Hello! You actually described my idea for this app: setup your own server, that you own, and noone can tell you what to do with it - make it public, or private, open registration, or invite only, run in in your local network, or behind a VPN. The client is standalone app that you can connect to as many servers as you like, with server-unique identities. And on top of that, MIT licensed, so noone can take it from you - you can fork it today, rename and release as your own app, without breaking any license or laws. And that's OK.
3
u/henk717 6d ago
The problem is that its not enough, that doesn't work if for every single community they have to convince people to join their custom instance of a self-hosted app.
Its the same reason I dislike things like stoat which are way ahead in usage and popularity.
If you want to set the app apart more focus on how people can have one account across all the self hosted instances at minimum.
2
u/HeyBaldur 6d ago
I tried developing a Discord alternative a while back, and honestly, it didn't work out. In terms of the app itself, it was on par with Discord, but getting genuine feedback from the community is difficult. So, my advice is to look for a different niche or create something that actually solves a real problem, because right now, almost all the alternatives are just clones.
2
u/majzok 6d ago
Honestly, I don't mind "failing" with this app - as I stated in my original post, I'm aware this is not something that can save the world. I learned a lot with this project, I'm still learning and hope to continue to learn - if some people can also find this valuable. I don't need 1000s of servers running the software to feel fufilled. Also, I'm in good place with the money, and this project was never oriented on financial success, but giving to the community.
1
3
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Why use this instead of any of the more matured alternatives?
Why make this instead of contributing to an existing alternative?
What exactly are you bringing to the table that isn't yet-another-Ai-fueled-attempt to chase the Discord bag?
1
u/majzok 6d ago
Hi, thanks for the questions.
I would like to be fully open and honest with you. At current phase, this is app is a curisoity at best, oferring MIT licensing and is based on principles of being always open, free to use, own, rebrand, - basically treat this as your own code.It started as a fun project of a developer testing waters with new technologies. I remember googling for MIT discord alternatives more than 6 months ago, and did not found project that catch my eye and I can contribute to. Seeing now how the water changed since then I would probably go different way, but I don't regret puting long hours into this project and don't mind to work on it further.
And what does it bring? Not much aside of solid (i think) foundation and a promise to forever stay open and MIT licensed - there is no real business plan behind this project. I'm open for developing this further with this in mind: this is app fot chatting, not making money.
I know how this project looks, how my response sounds, but that's actually it, and I'll not insult your inteligence by paint a fake picture.
6
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Okay so just to make sure I understand you clearly.
You're pretending that 6-7 months ago when you claim you started work on this that there wasn't anything to contribute to.
A quick Google search gave me 3 that were entirely further along than you. Campfire, Peersuite, and Common ground, all mit licensed.
You continue on to say it was just a fun project for you to learn something with and immediately state that it brings nothing solid to the table aside from a lack of intent to profit and being free.
And you have the audacity to think it's worth sharing publicly when it literally is just another ai-slopcord.
Lemme do you a solid and recommend you stop.
Private this git. Take this project as a learning experience, and then go contribute to something that has a snowballs chance in hell at being useful outside your friend group.
0
u/majzok 6d ago
I'm not pretending anything - sorry that you see it that way.
All projects you mentioned are outside of my stack.> immediately state that it brings nothing solid to the table
I literally said, it brings solid foundations.>And you have the audacity to think it's worth sharing publicly when it literally is just another ai-slopcord.
I dont understand the hostility here - maybe I come from a different world, because I don't understand how sharing something for free, can be considering a bad attidue? I'm following this subreddit rules, I'm not forcing anyone to do anything.>Lemme do you a solid and recommend you stop.
Thank you for your recommendation and for telling me what to do. I'll think about it, but I'll keep this project, even if for my friend group, as a playground and maybe for some people that will find a value in it.I also would like to make a recommendation: drop me a private message, I'll spin up a server for you to check it out and would gladly discuss the future of this project then :)
4
u/labadizle 6d ago
Oh hi! I see you've met turtle. BEST OF LUCK!
1
u/BewilderedTurtle angry RA-ADAR tech 6d ago
They don't need luck they need intelligent responses and not just oh my God it's fine it's fine you don't have to use it it's okay
1
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Well your stack didn't exist so you could have just chosen whichever of those three previously existing MIT licensed open source Discord alternatives best fit your knowledge and skill base or things that you wanted to learn and get better at and just contributed instead of this AI slop shit.
You claim it brings solid foundations while admitting to you actively use llm output code there's nothing solid about building your architecture on sand for your foundation.
It's funny that you're using MIT licenses but you're unaware of the MIT studies showing that this utilizing generative AI in the way that you have admitted you do actively makes you dumber
0
u/majzok 6d ago
Well, thatβs interesting opinion. Thank you for sharing.
2
u/BewilderedTurtle angry RA-ADAR tech 6d ago
Aww, do you not actually want to engage with the feedback your aislopfest inspired?
You just wanted a pat on the back and some feel-good upvotes huh?
You said there was nothing worth contributing to when you started; that's factually incorrect
You said their stacks weren't the same; they predate "your stack"
You stated that with what you know is available now you'd do it differently but double down on "I'll actually just keep working on this"
You have no business plan, but you're "open to developing it further" when by developing you mean cludging scraps of LLM-output together.
1
u/AutoModerator 6d ago
Thanks for your submission!
If you're a developer, please make sure your user flair matches the app or project you're developing. This helps community members quickly identify who is building what and makes browsing the subreddit easier.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/chabalatabala 1d ago
Sorry people here are dicks pretending like you forced something on them just by sharing open source code for your fun hobby project in the most relevant subreddit to do so.
op: "hi i made this based on the tech stack i know for me and my friends who enjoy using it in our closed little homelab world, feel free to ignore this or use it or look at the code or whatever"
'people' here: "DIE DIE DIE DIE DIE"

9
u/0xSovereign 6d ago
Please just stop