Case study · Release candidate
Tayfa
Voice rooms for friend groups, on a server you run yourself.
macOSWindowsiPhoneElectronReactTypeScriptSwiftUILiveKit


The problem
Most group chat apps put everyone on one company’s servers, under one account system. For a small group of friends that is more than they need, and the room is never quite theirs.
The idea
A hangout for one small community: voice, screen share, chat and a few shared activities, in one desktop app. The group’s admin runs the backend on their own server and sends invite links. Accounts belong to that server, and the code has no built-in server or shared account.
What I built
A desktop app for macOS and Windows in Electron, React and TypeScript, and a native iPhone companion in SwiftUI. Accounts and chat run on an unmodified Stoat backend, and voice and video on LiveKit. Tayfa’s own services connect the two and run the shared activities, among them a Kıraathane room with board-game tables.
A one-command installer sets up the server on a Linux VPS. The interface is in English and Turkish.
My role
All of it, on my own: product, design, code and releases. I work spec-first with AI coding agents and keep separate notes for product, QA, design and security. About one commit in four landed between midnight and six in the morning.
Facts
- Status
- Release candidate
- Latest version
- 0.1.18-rc.32
- Commits
- 907
- Releases
- 23 release candidates since 14 Oct
- Licence
- MIT, open source
Stack
- Electron, React, TypeScript: the desktop app
- SwiftUI, LiveKit Swift: the iPhone companion (iOS 17+)
- Stoat: accounts and chat, unmodified
- LiveKit: real-time voice, video and screen share
- pnpm, Vite, Vitest, Playwright: the monorepo, builds and tests