u/ashwinm

I forked Campfire and made it an alternative to Discord
▲ 71 r/rubyonrails+1 crossposts

I forked Campfire and made it an alternative to Discord

Campfire is a simple open source chat app made by 37Signals. It uses minimalist rails stack with SQLite. It is made for small teams as an alternative to Slack.

I was using it as a public chat server for a community similar to Discord. However, it lacked many features like member management, moderation tools or threads.

Meanwhile they also released activerecord-tenanted gem with less fanfare. It was supposed to be used for their fizzy product but was abandoned in the end as they switched their choice of database back to MySQL.

The idea of having a database per tenant had stuck with me ever since I read this article few years back. When I explored the activerecord tenanted gem, it was ready for action. Almost all the concerns such as migration and tenant resolver were already handled out of the box by the gem. This prompted me to attempt to make Campfire much more like Discord, with a multi-community switcher and all the other features you would expect from a Slack/Discord-like chat platform. That resulted in Sabha.

Sabha.co operates in SaaS mode, where each community has its own database. You can create a community, start inviting members, and when you think it's time to switch, you can download it to self-host on your own server as a single-tenant installation whenever you want.

It is licensed under the MIT license, so you can use it with your brand, domain, and have full control of the data.

It is absurd that everyone defaults to Discord as a place for chat community, even in case open-source projects. Every alternative is a VC-funded enterprise tool attempting to replace Slack, resulting in a complex tech stack that makes self-hosting on a small server impractical.

Video demo: https://x.com/ashwinm/status/2063333911917445366

Github repo: https://github.com/sabha-co/sabha

u/ashwinm — 5 days ago