Case Study: Secure Communications Platform
A self hosted Matrix messaging server, Jitsi video conferencing and a Flutter mobile app, all running on private Australian VPS infrastructure. No Zoom account, no Slack subscription, no message history sitting in someone else's US data centre.
Overview
Zoom is fine until it isn't. At some point you start wondering where the recordings go, whether Zoom keeps the chat logs for their own purposes, and whether "HIPAA compliant" on a US platform means the same thing it would mean on Australian infrastructure. I hear those questions more from health workers, legal services and community organisations than most vendors admit.
M8Chat is the answer I built for myself and for community use. It runs on the Matrix protocol (open, federated, end to end encrypted) on my own Matrix Homeserver infrastructure in Australia. Video conferencing runs on a separate dedicated VPS. The mobile and web app is my own Flutter Matrix client, deployed as a PWA at app.m8chat.au and available as an APK for Android.
The entire stack is open source. If M8Chat shut down tomorrow, every user could take their conversation history and move to any other Matrix server. The data belongs to the users, not to the platform. That matters to me more than any feature list.
"Matrix is a properly decentralised protocol. Your chat history isn't locked to M8Chat the way it's locked to WhatsApp or Slack. That's the design, not a marketing claim."
Infrastructure
Three separate servers. Each one doing one thing. Chat and video on dedicated VPS instances keeps them from competing for resources, and it means a Jitsi call dropping doesn't take the chat server with it.
My Matrix homeserver handles all protocol operations: room management, message storage, federation with the broader Matrix network, and push notifications. Containerised, with a solid database backend. This is the core of the platform.
A full video conferencing stack on a dedicated VPS, with media bridging, conference management, and session recording. Separate from the chat server, so a heavy video call doesn't affect message delivery.
The WordPress landing page and the Flutter PWA run on the Brisbane shared server alongside the rest of the HELP4BIS portfolio. The app connects to the Matrix homeserver via the standard Matrix client API.
A staging and alternate deployment of the Flutter app. I use it for testing new builds before they go to the main app subdomain, and it doubles as a fallback endpoint during major app updates.
Mobile App
The M8Chat app is my own Flutter Matrix client. I build it specifically for this platform, and it has grown with every release since. I control the full codebase: branding, features, release schedule, and what data the app collects (which is nothing beyond what the Matrix protocol requires).
The app is available three ways: as a Flutter PWA at app.m8chat.au (works in any modern browser, and you can add it to the home screen on Android and iOS), as a direct APK download for Android (sideload, no Google Play required), and via the Google Play store.
Core features: text messaging, file sharing, voice messages, end to end encrypted rooms, communities, and video calls that launch with one tap. Video calls open in my conferencing infrastructure without leaving the app.
PWA at app.m8chat.au, APK sideload, and Google Play. Users pick the delivery method that suits their situation. Enterprise users who can't install from the Play Store can use the APK or the browser app.
One tap from a Matrix room starts a video call at conf.m8chat.au. The conference runs on private infrastructure. There's no Zoom account required and no third party call relay involved.
I own the app code. New features get added when they make sense for the users, not on someone else's roadmap. Security patches go on quickly because there's no external upstream to wait on.
Why Matrix
Matrix is an open communication protocol, not a product. The spec is publicly documented, multiple open server implementations exist, and any Matrix client can connect to any Matrix server. There's no vendor lock in at the protocol level.
Federation means M8Chat users can communicate with users on any other Matrix server in the world (matrix.org, a company's self hosted instance, a government Matrix deployment) without those users needing an M8Chat account. It works the same way email does: you don't need a Gmail account to email someone at Gmail.
End to end encryption is available for private rooms and direct messages. Keys are stored on the user's devices. The server operator, and that includes me, can't read encrypted messages. That's the whole point.
M8Chat users can join rooms on other Matrix servers, communicate with users on matrix.org, and take part in the broader decentralised network. This isn't a walled garden.
Private rooms and direct messages support end to end encryption using the Olm and Megolm cryptographic protocols. Messages are encrypted on the sender's device and decrypted on the receiver's. The server stores ciphertext, not plaintext.
Running a Matrix Homeserver is not trivial. The server is resource hungry, federation can create unexpected load from large public rooms, and the database grows faster than most people expect because Matrix stores the full event graph of every room. I monitor the server load, prune old data on a schedule, and I've had to tune the configuration several times since the initial deployment. It's more like running a mail server than running a WordPress site. Anyone considering self hosted Matrix should factor in that operational overhead, not just the initial setup cost.
Technical Details
Who Is It For
This isn't for everyone. Most small businesses don't need to self host their communications. But for some situations the data sovereignty argument is real.
GPs, psychologists and allied health workers who send patient information via messaging and want that data to stay in Australia on infrastructure they control, rather than on US servers under US law.
Firms with client confidentiality obligations who need to show where communications are stored and under whose jurisdiction. Australian hosted messaging with documented retention policies.
Councils, volunteer emergency services, community groups who want member communications on infrastructure they control rather than dependent on Facebook Groups or WhatsApp staying free and functional.
Teams who have outgrown free Slack tiers and want a permanent self hosted alternative. The Slack pricing cliff at the free tier limit makes Matrix a cost effective option for teams of five to thirty people.
Research groups handling sensitive data, unpublished material, or material subject to research ethics approvals who need a documented chain of custody for communications.
M8Chat runs as a community service for individuals and small groups who simply want a free, private, Australian alternative to WhatsApp or Telegram. No surveillance capitalism, no ads, no algorithm deciding what you see.
I can deploy, configure and maintain a Matrix homeserver for your organisation on Australian infrastructure. I handle the operational complexity. You get the sovereignty.