How the Kins & Co chat server actually works

A plain-English tour of everything running behind the scenes — no technical background needed.

kins & co matrix stack · josiekins.xyz · updated 2026-07-04

What is this thing?

Kins & Co is a private community chat — rooms, direct messages, voice and video calls — that runs on a system called Matrix. Think of it like a Discord or WhatsApp that the community owns outright: the software, the message history, the member list, and the rules all live on servers we control, not inside some company's product.

Matrix is an open standard, the way email is. Nobody owns email — Gmail, Outlook, and thousands of other providers all speak the same language and can message each other. Matrix works the same way for chat: our server speaks the standard language, so our members can even chat with people on completely different Matrix servers elsewhere in the world.

Everything described on this page runs as about nine small programs on a cloud hosting platform called Railway — picture renting a few well-managed rooms in a big data-center building instead of keeping a computer humming in someone's closet.

One address on the outside, a small team of specialist programs on the inside.

Members only ever see friendly addresses — chat.josiekins.xyz to open the chat app, josiekins.xyz as everyone's username domain. The machinery below is invisible to them, which is exactly the point.

The journey of a single message

When a member types "hello" and hits send, here's the whole trip, end to end. It usually takes well under a second.

STEP 1
Your device
The chat app (usually Cinny, our web app) wraps your message up and sends it to the server's public address.
STEP 2
The front door
A routing layer answers the public address and forwards chat traffic to the right internal service — like a receptionist directing visitors.
STEP 3
Synapse, the sorting office
The homeserver checks who you are and which room you're in, then files the message permanently in the room's history.
STEP 4
The filing cabinet
A database stores the message so it survives restarts and can be re-read forever.
STEP 5
Everyone else
Every other member's app is quietly holding a line open asking "anything new?" — Synapse hands them the message the moment it lands.
Why two addresses? Usernames look like @name:josiekins.xyz — short and permanent, like an email address. But the actual chat machinery answers at matrix.josiekins.xyz. A tiny public "directions file" (the discovery file) tells every chat app: "for josiekins.xyz usernames, talk to matrix.josiekins.xyz." That separation means the machinery can move without anyone's username ever changing.

The cast of services

The server isn't one big program — it's a small team of specialists, each doing one job well. If one has a bad day, the others keep working.

The Brain
Synapse
The homeserver — the heart of everything. It knows every room, every member, and every message ever sent. All the other services exist to support it or talk to it.
The Front Desk
Matrix Auth Service
Handles signing up and logging in. Checks passwords, issues the digital "wristband" your app shows on every request, and manages your account settings. Keeping identity separate from chat is safer.
The App You See
Cinny
The polished web chat app at chat.josiekins.xyz. It's the only part most members ever look at — everything else on this page is behind the curtain. Phone apps like Element work too.
The Call Line
LiveKit
Carries the actual audio and video during voice and video calls — the specialist plumbing that moves sound and pictures between everyone in a call, fast.
The Box Office
MatrixRTC Focus
Before you join a call, this service checks you're really a member of the room and hands you a short-lived ticket that LiveKit will accept. No ticket, no entry.
The Caretaker
DoseBot
The community's robot helper — greeter, doorkeeper, and night watchman rolled into one. Important enough to get its own section below.
The Decorator
Emoji pack sync
A small occasional job (not always-on) that keeps the community's custom emoji collections tidy and available in every room.
The Filing Cabinets
Two databases
One stores all chat history for Synapse, the other stores account records for the front desk. Boring on purpose — boring is what you want from the thing holding your data.
One thing lives elsewhere: the public "front door" routing — the friendly web addresses, the directions file, and the visitor-facing josiekins.xyz/matrix-info welcome page — is managed alongside the main josiekins.xyz website rather than with the server itself. The door and the building are maintained separately, and they just have to agree on where the door leads.

How you get in: the invite-gated model

Kins & Co is a private club, not a public square. The whole community lives inside one Matrix "space" — think of it as a building full of rooms — and the building's front door is invite-only.

  1. You're invited. An existing admin invites your account into the community space. There's no open "sign up and wander in" — every member was deliberately let in by a person.
  2. New arrivals start in the waiting room. Fresh accounts land in a welcome area where DoseBot greets them, points them to the rules, and an admin approves them.
  3. Once you're in the building, rooms unlock themselves. Each community room is set to "anyone who's a member of the building may enter." No per-room invites, no keys to hand out — membership in the space is the key.
  4. DoseBot DMs you a map. On approval you get a one-time direct message listing every room and what it's for, so you're never lost.
Why this design? It gives the community one single gate to guard. Admins manage exactly one list — who's in the building — instead of juggling separate locks on thirty-plus doors. And because room locks can drift when settings get changed by accident, a watchman checks them constantly (next section).

DoseBot, the caretaker

DoseBot is a program with its own Matrix account that sits in the community 24/7 doing the chores a human moderator would find tedious. Its four jobs:

Greeter

Welcomes newcomers in the waiting room and the main space, linking them to the rules, introductions, and starter rooms — so a human doesn't have to be awake when someone new arrives.

Tour guide

Sends each newly-approved member a one-time "server map" DM — the tree of every room with a note about what belongs where. It remembers who it has already mapped, so nobody gets spammed twice.

Night watchman runs every few minutes

The reconciler: it keeps a written record of how things should be — who's approved, who's banned, who's an admin — and every few minutes compares reality against that record. Anything drifted gets nudged back. A ban evaded or an invite missed doesn't stay wrong for long.

Door checker self-healing

The join-rule gate: on every patrol it checks all ~37 room locks match the invite-gated design — front door invite-only, inner doors members-only. If a lock was accidentally changed, it changes it back automatically and logs what happened.

The key idea: instead of trusting that nothing ever goes wrong, the system assumes small mistakes will happen — and employs a tireless robot to notice and undo them within minutes.

Voice & video, in one breath

Text messages travel through Synapse, but live audio and video need a specialist — moving thirty pictures a second between five people is a very different job from filing text.

STEP 1
You press "join call"
Your chat app asks: where's the call happening and am I allowed in?
STEP 2
The box office checks
The MatrixRTC Focus service verifies with Synapse that you're really in that room, then issues a short-lived entry ticket.
STEP 3
LiveKit takes over
Your app hands the ticket to LiveKit, which connects everyone's audio and video streams for the duration of the call.

The ticket expires quickly and only works for that one room — so even the call system rides on the same membership rules as everything else.

How it stays healthy without a full-time engineer

Nobody sits watching dashboards all day. Instead, the upkeep is built to run itself — with three habits doing most of the work.

Blueprints, not hand-built walls

Every service's exact recipe — its software, settings, and startup steps — lives as files in a private code repository (on GitHub). The running server is always built from those blueprints. If a service were ever lost, it could be rebuilt identically; nothing important exists only on the live machine except the databases, which have their own storage.

Changes deploy themselves

To change something, you edit the blueprint and save it to the repository. Railway notices, rebuilds only the affected service, health-checks the new copy, and swaps it in. No hand-carrying files onto servers — the blueprint and the building can't drift apart.

A robot checks the pulse every 10 min

An automated probe visits the public endpoints around the clock: is chat answering? is login answering? does the directions file still point the right way? If anything fails, it files an alert ticket automatically — and for a known failure pattern it can even restart the sick service itself.

Before any change ships

Every saved change first runs a battery of automatic tests — more than two hundred checks on DoseBot alone, plus consistency checks that the service recipes agree with each other. A change that breaks a rule is rejected before it ever reaches the live server.

Who gets the keys? Because the whole server is described by one private repository, giving a new sysadmin access is just inviting them to that repository — without handing over anything else, like the main website. Secrets (passwords, tokens) are never in the blueprints; they live only in Railway's locked configuration.

Talking to other servers: federation

Because Matrix is an open standard, our server isn't an island. A friend with an account on matrix.org — or any other Matrix server — can be invited into Kins & Co rooms, chat, and call, all from their own account. The two servers exchange messages directly, server-to-server, the way Gmail and Outlook exchange email.

The invite gate still applies to them exactly as it does to locals: an admin must let them into the building first. Federation widens who can be invited; it never widens who gets in uninvited.

The whole picture in one sentence: a receptionist (routing) forwards visitors to a sorting office (Synapse) guarded by a front desk (auth), decorated and patrolled by a robot caretaker (DoseBot), with a box office and sound system for calls (Focus + LiveKit), filing cabinets underneath (databases), blueprints in a vault (GitHub), builders on call (Railway), and a nurse taking the pulse every ten minutes.

plain-english explainer · generated from the kins-co-matrix architecture · no member data shown