BLML
Self-hosted, invite-only chat for a private group — iOS, Android and web clients, your server, your data.
Overview
A self-hosted chat app for a private group — family, friends, a small team. Native iOS and Android apps plus a web client, all talking to a single Go server backed by PostgreSQL that you run. Messages, photos, and files stay on your own machine: no third-party accounts, no ads, no analytics.
Problem
Group chat for the people closest to you runs on someone else's servers, under someone else's terms. For a family or a small team that wants modern messaging — receipts, replies, voice messages, calls — without handing its private life to a platform, the options are surprisingly thin.
Solution
Invite-only by design: creating an account requires a registration code the server owner controls, so a public address never means a public server. On top of that sits a full modern messenger — one-to-one and group chats, delivery and read receipts, replies and editing, voice messages, attachments up to 100 MB, @mentions, pinned messages, polls, broadcast channels, and WebRTC voice and video calls direct between devices. Even chat wallpapers and link previews are served from your own server, so nothing external is needed.
Lessons learned
Self-hosting only works for a family if it never feels self-hosted. All the effort goes into making the invite flow, the clients, and the day-to-day experience as smooth as a commercial app — the moment it feels like a science project, the group moves back to the defaults.
Future improvements
Production deployment on a VPS with automated backups, and a polished onboarding path so a non-technical person can stand up their own server.