Home โ€บ Our Work โ€บ M8Chat

Case Study: Secure Communications Platform

M8Chat.
Chat, video, and mobile,
without giving it all to US big tech.

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.

E2E
Encrypted
AU
Data Sovereign
VPS
Private Infrastructure
Open
Source Stack

Overview

What it actually is

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."

M8Chat secure communications platform
Matrix Protocol Jitsi Video Conferencing Flutter (custom client) Docker Australian VPS E2E Encryption

Infrastructure

What runs where

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.

Matrix homeserver
chat.m8chat.au

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.

Video conferencing
conf.m8chat.au

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.

Landing page + app
m8chat.au ยท app.m8chat.au

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.

app2.m8chat.au
app2.m8chat.au

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 Flutter 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.

๐Ÿ“ฑ

Three deployment targets

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.

๐Ÿ”—

Jitsi integration

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.

๐Ÿ”„

Full control of the codebase

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

The protocol choice

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.

๐ŸŒ

Federation with the Matrix network

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.

๐Ÿ”‘

E2E encryption

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.

Honest note: operational complexity

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

Full stack

Chat infrastructure (chat.m8chat.au)

Matrix homeserver Containerised stack Nginx reverse proxy Let's Encrypt SSL Media relay

Video conferencing (conf.m8chat.au)

Jitsi conferencing stack Media bridge Session recording Containerised stack

Mobile app

Flutter 3.x (custom client) Dart Service Worker PWA Android APK Google Play

Web + landing

WordPress (m8chat.au) Flutter PWA (app.m8chat.au) DirectAdmin, brisbane01

Who Is It For

When self hosted messaging makes sense

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.

๐Ÿฅ

Health practitioners

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.

โš–๏ธ

Legal and financial services

Firms with client confidentiality obligations who need to show where communications are stored and under whose jurisdiction. Australian hosted messaging with documented retention policies.

๐Ÿ›๏ธ

Community organisations

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.

๐Ÿข

Small businesses leaving Slack

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 and academic

Research groups handling sensitive data, unpublished material, or material subject to research ethics approvals who need a documented chain of custody for communications.

๐Ÿ‘ฅ

M8Chat direct community use

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.

Want your own self-hosted Matrix instance?

I can deploy, configure and maintain a Matrix homeserver for your organisation on Australian infrastructure. I handle the operational complexity. You get the sovereignty.

โ† Back to all work