Why I built my own chat platform

July 16, 2026 (2mo ago)

On 9 July 2026 the EU revived “Chat Control”. A majority of MEPs voted to reject it, 314 against 276, but overturning a Council position requires an absolute majority of 361, so it passed anyway. This version covers voluntary scanning and exempts end-to-end encrypted services for now; the mandatory version is still in negotiation, resuming September 2026. Whatever you think of the goal, the mechanics bother me: my private communication now depends on which amendment survives which reading. That is not a foundation, that is a lease with variable terms.

And the market alternative isn’t much of an alternative. Signal and iMessage are the trustworthy end, and even they only stay trustworthy for as long as the exemption holds. Most other messengers are side projects of advertising and AI companies. WhatsApp’s end-to-end encryption is real, but so is Meta’s business model, and I have no interest in betting my family’s photos on which one wins a boardroom argument.

So I did what a homelabber does when the rules keep shifting: I stopped renting and started running.

The requirement nobody designs for

In our household, some photos are strictly for family and close friends. Not “please don’t look at these”, but “these do not touch a server owned by strangers, full stop”. And we are far from alone in that.

Roughly two billion Muslims, and many people of other faiths or none, live with modesty practices that make the exact same demand. A photo of a woman without her hijab, for example, is not a “sharing preference” that a checkbox can cover. No privacy policy changes any of this, because policies change and models don’t forget.

And thinking a decade ahead: if I’m ever sending grandparents photos of our kids, I don’t want an AI scanning, classifying, or training on them. Neither does any parent I know. Your children are not AI training data.

Big tech treats requirements like these as edge cases. For a very large part of the world they are baseline. That gap is the project.

What I built

iTEQ (the i stands for interconnected) is a chat platform for your own infrastructure, Kubernetes or plain docker compose, running in any browser on iOS, Android, PC and Mac. Add it to your home screen and it behaves like an app. A few decisions I’m happy with:

  • E2EE in the browser, keys from a PIN. Your PIN derives your keys client-side; messages, files and even chat names are AES-256 ciphertext before anything leaves the device. The server, including one I operate, only ever sees encrypted blobs, made-up usernames, timestamps and sizes. No app store, no install friction, and the crypto still never leaves your hands.
  • Ephemerality as a feature, not a setting. Chat content lives 7 days at most. Per chat you pick RAM storage (gone on restart, by design) or SSD storage (survives reboots, same 7 days). If retention is the risk, the cheapest mitigation is to not retain.
  • Closed by design. Every account waits for personal approval by the operator. No search, no directory. Read receipts exist but are yours to switch off, both ways. It’s not a platform; it’s a room in your own house.

The part I’m proudest of isn’t code: the onboarding disclaimer and security policy spell out exactly what an operator technically could and couldn’t do, including what E2EE does not protect you from when you don’t own the server. Trust you can audit beats promises you can’t.

Get it

iTEQ is open source (Apache-2.0, free to use, the TEQcloud credit stays):

Tutorial videos for docker compose, Helm and Argo CD are coming at full release, so you can self-host your own instance end to end. Full roadmap at i.teqcloud.net. And a small disclosure, since iTEQ is a personal project but I’m also a one-person company: if you want an iTEQ but not the Kubernetes ops underneath it, managing that infrastructure is what I do at TEQcloud.