I wanted a chat platform that I actually controlled — no vendor lock-in, no data harvesting, no platform risk. Matrix is federated, open protocol, and you can host your own homeserver. The tradeoff is that self-hosting Matrix properly takes more work than just signing up for a service.
Two Homeservers
hanumara.online — my primary homeserver. Registration is closed, federation is open. This is where my personal accounts live.
cloudcitadel.in — a second homeserver with registration open (token-gated). I use it for project groups and shared spaces.
Both run on tuwunel — a lightweight Matrix homeserver implementation. It’s not Synapse with all its memory overhead. It’s written in Rust, uses SQLite, and doesn’t need a separate database server. Both support federation with the wider Matrix network.
Voice and Video
MatrixRTC via LiveKit on each homeserver. Each has its own LiveKit server and JWT service for authentication. The JWT service signs tokens that LiveKit uses to authorize rooms — the homeserver trusts its own JWT service, and the JWT service trusts the homeserver. Closed loop, no external auth needed.
This means native voice and video calls in any Matrix client that supports MatrixRTC. No bridge to Jitsi, no external service, no data leaving the homeserver.
Webhook Gateway
hanumara.online runs a Matrix webhook gateway — it lets external services post messages into Matrix rooms via HTTP. I use it for monitoring alerts, CI/CD notifications, and anything that needs to talk to me where I already am.
AI Agent Integration
The Sage AI agent (Hermes) runs on the homelab and connects through Matrix. When I’m out, I can ask it to check server status, run commands, or look up information — it has terminal access, file reading, and web search tools. It’s not just a chat bot, it’s an agent that can actually do things.
OpenClaw Gateway handles the orchestration between the agent and the Matrix homeserver.
What I’d Change
Matrix federation is still not as reliable as I’d like. Some servers drop messages, some have misconfigured DNS, and troubleshooting federation issues is a rabbit hole. But the protocol is open and the ecosystem is improving. I’m staying put.
{"menu":[{"name":"Pages","items":[{"label":"Home","subtitle":"Overview","action":"navigate:/","icon":"page"},{"label":"Career","subtitle":"Timeline & principles","action":"navigate:/career","icon":"page"},{"label":"Projects","subtitle":"All projects","action":"navigate:/projects","icon":"page"},{"label":"About","subtitle":"About Meher","action":"navigate:/about","icon":"page"}]},{"name":"Settings","items":[{"label":"Toggle Theme","subtitle":"","action":"toggleTheme","icon":"theme"}]}],"fuse":{"threshold":0.6,"minMatchCharLength":2,"keys":["label","subtitle","searchableText"]},"projects":[{"title":"Global Payroll Platform","description":"In-house payroll platform across 6 APAC markets, $1.2B annually. I define the technical requirements, coordinate payments integrations, and make sure the engineering teams build what the business actually needs.","tags":["Python","SQL","API Integration","ISO 20022"],"link":"#","image":null,"techStack":["Python","SQL","API Integration","ISO 20022"],"size":"large","domain":"fintech","icon":null,"featured":true},{"title":"Fraud Detection Engine","description":"1.5M payment transactions analyzed. Built automated detection rules that caught the obvious cases — the ones that shouldn't need a human reviewing them. Cut manual validation by 80%. QuickSight dashboards so the non-technical teams could see what was flagged and why.","tags":["Python","QuickSight","Analytics"],"link":"#","image":null,"techStack":["Python","QuickSight","SQL"],"size":"medium","domain":"analytics","icon":null},{"title":"Background Check Revamp","description":"India's background checks were taking four months at the 90th percentile. Candidates would leave. Worked with Legal, Compliance, and Business to renegotiate vendor SLAs, parallelize the workflow, and grow the team from 10 to 45. Cut it to one month, impacted 120K annual hires.","tags":["Operations","Compliance","Process Engineering"],"link":"#","image":null,"techStack":["SQL","QuickSight","VBA"],"size":"medium","domain":"data","icon":null},{"title":"Sovereign Homelab","description":"50 services on bare metal: reverse proxy, DNS, VPN, password manager, photo library, media streaming, AI inference, git CI/CD, smart home, Matrix federation. Full observability via Grafana, Loki, Prometheus, and Alloy. No cloud provider.","tags":["Docker","Linux","Caddy","NetBird"],"link":"#","image":null,"techStack":["Docker","Caddy","NetBird","Vaultwarden"],"size":"large","domain":"infrastructure","icon":null,"featured":true},{"title":"AI Node","description":"Private LLM inference on CUDA GPU. llama.cpp server with quantized models, Open WebUI frontend. Used through OpenCode on my laptop and my Hermes agent on Matrix when I'm out. No cloud APIs, no telemetry.","tags":["CUDA","llama.cpp","Open WebUI"],"link":"#","image":null,"techStack":["Python","CUDA","llama.cpp"],"size":"medium","domain":"ai","icon":null,"featured":true},{"title":"AI & LLM on Your Homelab — A Tutorial","description":"Step-by-step guide to running your own AI inference stack at home. llama.cpp, Open WebUI, Caddy reverse proxy, Matrix integration — everything local, everything yours.","tags":["Tutorial","AI","llama.cpp","Homelab"],"link":"#","image":null,"techStack":["llama.cpp","Open WebUI","Caddy","Docker"],"size":"medium","domain":"ai","icon":null,"featured":false},{"title":"Matrix Citadel","description":"Self-hosted Matrix federation with full voice and video via dual LiveKit servers. Twunnel bridges between two homeservers, JWT auth services, OpenClaw Gateway for AI agent orchestration.","tags":["Matrix","LiveKit","Twunnel"],"link":"https://cloudcitadel.in","image":null,"techStack":["Matrix","LiveKit","Twunnel","OpenClaw"],"size":"medium","domain":"infrastructure","icon":null},{"title":"Media & Photo Stack","description":"Jellyfin streaming with automated library management, subtitles, and analytics. Immich photo library with ML-powered face recognition and reverse image search.","tags":["Jellyfin","Immich","Media Server"],"link":"#","image":null,"techStack":["Jellyfin","Immich","PostgreSQL"],"size":"medium","domain":"infrastructure","icon":null},{"title":"Observability Stack","description":"Full infrastructure telemetry: Grafana dashboards, Loki log aggregation, Prometheus metrics, Alloy collector, plus node, process, and disk health exporters. Monitoring 50 services and bare-metal health in real time.","tags":["Grafana","Prometheus","Loki","Alloy"],"link":"#","image":null,"techStack":["Grafana","Prometheus","Loki","Alloy"],"size":"medium","domain":"infrastructure","icon":null},{"title":"Gitea","description":"Self-hosted git server with CI runner and built-in container registry. This is where the folio lives — code pushed here, the runner builds it, the registry stores the image, and it deploys back to the same machine. Source to production, nothing leaves the box.","tags":["Git","CI/CD","Container Registry"],"link":"https://git.nexusno.de","image":null,"techStack":["Gitea","Docker","CI/CD"],"size":"medium","domain":"infrastructure","icon":null},{"title":"Immich","description":"Photo library with ML-powered face recognition, reverse image search, and automatic duplicate detection. Replaces Google Photos without the telemetry — all the smart features, none of the cloud.","tags":["Immich","ML","Photos"],"link":"#","image":null,"techStack":["Immich","OpenVINO","PostgreSQL"],"size":"medium","domain":"infrastructure","icon":null},{"title":"Home Assistant + Frigate","description":"Smart home automation with AI security camera system. Frigate does hardware-accelerated object detection — people, dogs, cars — on the cameras, not the cloud. Home Assistant ties everything together: lights, sensors, automations, and camera events.","tags":["Home Assistant","Frigate","Smart Home"],"link":"#","image":null,"techStack":["Home Assistant","Frigate","Docker"],"size":"medium","domain":"infrastructure","icon":null},{"title":"SearXNG","description":"Self-hosted metasearch that aggregates results from Bing, Wikipedia, and others without tracking. Replaces the browser search bar — same results, no data broker on the other end.","tags":["SearXNG","Privacy","Search"],"link":"https://search.nexusno.de","image":null,"techStack":["SearXNG","Docker","Valkey"],"size":"small","domain":"infrastructure","icon":null}],"skills":{"tools":["Python","SQL","QuickSight","VBA","Docker","Linux","Kubernetes","Grafana","Prometheus","Loki","Caddy","Matrix"],"standards":["ISO 20022"],"domains":["Payments","Infrastructure","Process Engineering"]},"contact":{"email":"hi@meherchaitanya.com","channels":[{"label":"Email","url":"mailto:hi@meherchaitanya.com","displayText":"hi@meherchaitanya.com","icon":"mail","external":false},{"label":"LinkedIn","url":"https://linkedin.com/in/meherchaitanya","displayText":"meherchaitanya","icon":"linkedin","external":true},{"label":"Matrix","url":"https://matrix.to/#/@meher:hanumara.online","displayText":"@meher:hanumara.online","icon":"matrix","external":true}]}}