Cromulent
Self hostable discord alternative
Overview
A self hostable discord thing

When discord started the age verification plans, I started thinking about what it would take to host my own alternative. I couldn’t find anything easy to host myself. Matrix seemed like it would work, but it’s much more complex than what I would need, and as a result has a lot more requirements to setup and parts involved.
But since I didn’t need most of the extra features, I started wondering about making my own. Discord is a big elixir user, so it seemed like a good fit.
I played around with WebRTC for the communication, and made a simple client.
What I learned
Mostly that a platform like this is complicated and hard. I never really finished it, but did get something usable. When discord walked back the ID requirements the project lost a lot of steam. I also played around with claude code GSD tools. I have mixed feelings on that. It did seem like it produced a lot of code that worked, but seemed like it was more just built to eat through credits as fast as possible. The generated code worked, but I felt like I didn’t understand it as well as the stuff I built myself. Which kind of defeated the point for a learning project.
There’s a ton of things to consider for a platform like this. User registation, permissions, and once you move into things like file uploads you have to start worrying about things like CSAM scanning.
OS specefic client stuff was also wildly complicated. Turns out wayland on the newest version of PopOS introduces some complexities that I wouldn’t have otherwise had. But you also won’t always have every kind of computer around to test with as a single developer. Unless you want to spend money on test services.
Stack
Elixir, Phoenix, LiveView, WebRTC, Docker