Matrix clients and a small self-host stack built around aiomatrix.
React and Flutter apps speak Matrix with Element-adjacent MSCs (simplified
sliding sync when the homeserver advertises it, m.mentions, threads,
private read receipts, static location, stickers/image packs, knock,
room summary, MSC4108 QR login, MatrixRTC decline) and also render
dev.aiomatrix.* room UI: inline keyboards, signed callbacks, host
toasts/progress, Mini Apps, and FormSpace. Bot prompts dual-read
org.matrix.msc4139.prompts; commands dual-read org.matrix.msc4332.commands.
The bot package is the FormSpace
reference bot. server/ is Synapse + Caddy + LiveKit + coturn for a deployable
homeserver.
Demo: testhighlife.strangled.net (MiniApp at /miniapp/).
| Path | Role |
|---|---|
apps/web |
React client |
apps/client |
Flutter client (Android, desktop, Flutter web) |
apps/miniapp |
FormSpace MiniApp |
bot |
FormSpace / aiomatrix bot |
contracts |
JSON Schema fixtures for dev.aiomatrix.* |
packages/ui-contracts |
Shared timeline / UI types |
server |
Production Compose stack |
docs/ |
Deploy secrets, FormSpace notes, finish gate |
Aiomatrix surfaces and FormSpace flows: docs/FORMSPACE.md, bot/README.md.
HighLife is a normal Matrix client: sign in to any homeserver URL.
Some rooms ban whole servers via Matrix m.room.server_acl (spam control by room mods). A 403 Server is banned from room is that ACL, not a client bug. Your account on testhighlife.strangled.net cannot join a room that lists that server as banned; use an account on an allowed server (for example matrix.org). Enabling signup on your Synapse does not change another room’s ACL.
The demo homeserver runs Matrix Authentication Service for Element X and
other OIDC-native clients (auth.testhighlife.strangled.net). Public password
registration is controlled by SYNAPSE_ENABLE_REGISTRATION (see
server/README.md). HighLife still speaks ordinary Matrix
password login via the MAS compatibility layer; servers that need captcha or
external SSO need that configured on their own auth stack.
npm ci
npm test --workspace @highlife/web
npm run typecheck --workspace @highlife/web
npm run dev --workspace @highlife/webcd apps/client
flutter pub get
flutter test
flutter runcd bot
cp .env.example .env
npm ci
npm test
npm startcd server
docker compose up -dProduction deploy uses the manual Deploy HighLife workflow. Secrets: docs/SECRETS.md. Operator notes: server/README.md. Checklist: docs/FINISH_GATE.md.
| Workflow | What |
|---|---|
Web |
Vitest, typecheck, Vite build |
Client |
Flutter test / analyze / multi-platform builds |
Bot |
typecheck, tests, GHCR image |
Infrastructure |
Compose / Caddy validation |
Deploy HighLife |
manual production roll (environment: main) |