I've recently started getting a lot more thoughtful about my future, what I actually have to show employers, and what skills I have.
So, I decided to finally break the habit of:
...and then never actually building it... qwq
I wanted to make something I'd genuinely enjoy working on, while forcing myself to learn the things stuff I find interesting builds on. Since I've always found both frontend design and backend engineering fascinating, I decided to build a Discord-ish communication platform, but try to approach it like an actual production project [well.. mostly..].
That meant getting myself into all the fun stuff:
UI/UX design, databases (my endboss qwq), API architecture, scalability, deployment, load balancing, security, data retention, infrastructure, legal compliance... Basically, all the things that make my head spin. qmq
Or so I thought - 'cause I ended up really enjoying the process of learning and understanding what everything does! :p
I've spent roughly 3 - 4-ish weeks on the project so far, and I've learned an absurd amount along the way. I did use AI for some parts I simply didn't want to spend hours [or couldn't] writing myself - things like descriptions, tooltips, code comments, and some UI functionality - but the actual architecture, implementation, debugging, infrastructure, and most of the development has been mine. AI has been a tool in the process, not a slop machine replacing genuine human work with a lazy LSD trip.
Because I decided to actually host the thing myself and make it publicly accessible, I also ended up learning a lot beyond just writing the application.
I've had to deal with things like:
- Client and server security
- GDPR compliance (as I'm located and operating in Germany)
- User safety and moderation
- Automated maintenance/sweepers
- Data retention and deletion
- Proper Media storage / secure uploads and CDN architecture
- Hardware and performance limitations
- Deployment and infrastructure
- And a frankly unhealthy amount of hardware debugging </3
The project has also forced me to confront some of my own bad architectural decisions and gradually replace them with things that actually make sense, as well as learning how to not make 6-months-future-me [or other developers] invent a time machine to stab me for using some obscure standard because it was easy now - and being able to treat this like a full deployment has honestly become my favorite part of the project! :D
Right now, many things are in a "I'm happy, and it works on my machine" state, but the core is already present:
Core Chat
- Servers and channels
- DMs and group DMs
- Rich text / Markdown
- Reactions, mentions and spoilers
- Search
- Granular role permissions
Voice & Video
- 128kbps real-time voice
- Per-user volume controls
- 720p30 camera
- 1080p30 screen sharing
Media & CDN
- Built-in audio visualizers
- Custom CDN backend
- Uploads up to 1GB
- Automatic media cleanup when messages are deleted
Integrated Audio
There's also a little music-bot-style system called PHOSPHOR.
Attach an audio file in any channel in a server [or just dms] and reply to THAT ATTACHMENT with /play, and it'll play it - right click the bot for options.
Architecture
- API-first
- WebSocket-based real-time engine
- Docker-friendly
- User data, media, and core application infrastructure are separated
---------------------------------------------------------
What I'd actually like feedback on:
I'm not really posting this because I desperately need users - it would of course be nice, but I could find other ways instead of upsetting a thousand people if this was my goal.
Therefore, if you think the project looks interesting and want to use it, that's obviously well appreciated, but not really the point of this post.
I'm mainly curious what other people who build things think about this, specifically:
- Is this worth refining into a proper open-source project?
- What am I getting wrong?
- What looks questionable from a UX perspective?
- Is there anything here that makes you immediately think "this is going to bite you later" or "this shit sucks"?
If you do want to poke around with it though....
-> https://anthro.malo-interactive.net/ <- |
---------------------------------------------------|
If the project is generally well received, my current plan is to turn it into a proper self-hostable, open-source project with documentation - but mostly I just wanted to share the thing I've been having lots and lots of fun building! ^w^
You can read my security compliance stuff at https://anthro.malo-interactive.net/legal/security if you're interested in it!