dogehouse
Taking voice conversations to the moon 🚀
DogeHouse was an open-source voice conversation platform, like Clubhouse, where users could join audio rooms and talk, built as a monorepo with an Elixir backend, Next.js web frontend, and React Native mobile app.
DogeHouse was an open-source voice conversation platform where users could join audio rooms and talk with others, similar in concept to Clubhouse or Twitter Spaces. It was built and open-sourced by developer Ben Awad and attracted community contributions during its active period.
The repository is organized as a monorepo with several distinct components. The backend API, called kousa, is written in Elixir. A separate service called shawarma handles the voice audio infrastructure. The web frontend, kibbeh, is built with Next.js. A React Native mobile app called pilaf handles mobile clients. An Electron desktop wrapper called baklava packages the web app for Windows, macOS, and Linux. A shared API client library called kebab connects the pieces.
The desktop application was distributed through multiple channels: direct downloads from GitHub Releases, a Homebrew tap for macOS, an AUR package for Arch Linux, an official Debian APT repository, and a Snap package for systemd-based Linux distributions. After installing the snap, users needed to separately grant microphone access via a snap connect command.
Development contributions were directed to a branch called staging, with a separate production branch tracking what was live at dogehouse.tv. The README encourages contributors to open an issue or comment before starting work to avoid parallel efforts on the same change.
The README is brief and does not describe the platform's feature set in detail beyond its core audio room concept. It links to a separate documentation repository, a Discord community, and a short explainer video by the creator describing why the project was built.
Where it fits
- Study the Elixir backend architecture of a real-time audio room application to learn how to build WebSocket-heavy services
- Use the monorepo structure as a reference for sharing an API client library between a web app and a React Native mobile client
- Fork the Next.js frontend as a starting point for building a live-audio or social platform web interface
- Learn how to package an existing Next.js web app as a desktop application using the Electron wrapper and distribute it via Homebrew, AUR, and Snap