the kettle’s been on the back burner longer than i care to admit, and honestly it’s time to admit something harder: i’m sunsetting dumpsterChat.
the honest version
for about a year, dumpsterChat was my favorite thing in the homelab. quick recap for anyone who missed the original post: it was a self-hosted discord-like chat built with go/chi behind and vite/react/tailwind up front, websocket real-time messaging, running for a group of about twelve friends on a proxmox lxc named smoothbraincollective. it had threads, forums, calendar channels, docs, moderation, role-based permissions with bitflags, and a livekit voice layer that was sitting on the roadmap. i was proud of it. i’m still proud of it. the name alone still makes me laugh.
but here’s the thing nobody tells you when you decide to build your own chat platform: you don’t just build it. you inherit it.
the real cost
every feature the twelve of us wanted, i had to write. every bug at 11pm was mine. every “hey can the chat do X” was a project, not a setting. discord and rocket chat and matrix ship new capabilities constantly because hundreds of engineers work on them. i had one engineer, and he was also the person who had to remember to back up postgres.
it’s the difference between opening a coffee shop and owning a coffee shop. running the counter is fun. owning the roaster, the plumbing, the lease, the health inspection, that’s a different job and it doesn’t end.
the voice channels were the moment the math stopped working out. livekit worked, but making it feel like discord’s talk-for-hours voice rooms, with push to talk, with sensible device management, with the kind of stability people take for granted, was going to be another huge chunk of my weekends. i looked at the work, i looked at the twelve friends, and i realized the right move wasn’t to build more. it was to stop.
what i switched to
i moved the crew to rocket chat plus jitsi, both self-hosted on my own homelab, running on the rocket lxc. rocket chat gives us the polished chat experience without me maintaining it: rooms, DMs, threads, integrated apps, webhooks, a full moderation suite, and an apps engine. jitsi handles the voice and video calls, so we finally got the talk-for-hours voice experience, arguably better than what i’d have built myself.
the edge routes through caddy on the homelab: lobe.lobotomylabs.dev hits rocket chat, and meet.lobe.lobotomylabs.dev hits jitsi. two domains, one homelab, zero per-seat cost.
the crew’s little ecosystem came with us, which is the part i’m genuinely happy about. the steamfree notifier that pings the channel when steam’s giving away free games, the dicebot for rolling, the ai bot that hangs out in the channel, the giphy picker that plays nice through the work firewall, even the file dropbox. they all made the jump to rocket chat with basically the same behavior. it felt less like abandoning a project and more like moving the whole crew into a place with a working kitchen.
what i’m keeping from dumpsterchat
i’ll be honest, there’s a part of me that’s sad. i built that thing. i spent a lot of weekends in a codebase that was entirely mine. the lessons are permanent though:
- go’s concurrency model, goroutines and channels for every websocket, is the cleanest way i’ve found to move messages around.
- building a chat app teaches you more about real-time systems than reading about them ever will.
- role-based permissions and moderation are deceptively hard, even for a group of twelve.
- and my favorite one: building for a small scale is liberating, but only if you’re the one who has to maintain it forever.
maintenance is the tax on everything you build. dumpsterChat’s tax got high enough that the answer was to stop paying it and move somewhere the tax wasn’t mine.
the state of the stack
for anyone who’s been following the homelab saga, the sunset is clean: the dumpsterchat lxc gets snapshotted and then retired. the only piece of shared infrastructure was the coturn relay, and that’s handled separately. the rest of the app, the database, the object store, the livekit stuff, they all go away with the container.
it’s a good kind of sunset. not a crash. a deliberate, quiet decision.
the point
i’m not telling you not to build your own chat. i’m telling you to build it, learn from it, and then be honest about what owning it costs. if the point is to own your conversations, there are excellent self-hosted options that already solved the hard parts. if the point is to learn how the hard parts work, you’ve got to build it yourself at least once.
i did both. worth every weekend. and now the kettle’s going somewhere a little warmer.
thanks for reading along. what’s the last thing you built that you loved and then wisely walked away from?
-dustin