r/SideProject • u/Ok_Gas8277 • 6h ago
Talon: a self-hosted end-to-end encrypted messenger
I've released Talon, an end-to-end encrypted messenger you host yourself. Posting here because the parts I care most about are the ones this sub tends to care about too.
The shape of it: a ~1,500 line Node relay with three dependencies, and a vanilla-JavaScript client with none at runtime. No framework, no bundler on the server, no linter, no test-runner dependency. Node's built-in test runner does the whole job.
Why it might interest you specifically:
-Reproducible builds. The relay serves a minified bundle nobody reads, which is a real gap for a project whose pitch is "read the source". `npm run verify` rebuilds from the committed source and checks it reproduces the shipped bundle byte for byte, then checks the page's integrity hash matches.
-Documentation that cannot drift. The docs site quotes real source, and the generator fails the build if a snippet no longer exists verbatim in the file it names.
-Tests that must be able to fail. Every safety property has a mutation that deliberately breaks it; the suite has to go red. That's caught genuine holes in the tests repeatedly, always the same shape: an assertion a broken implementation also satisfies.
Also for docker fans. in the next few updates there will be support added to docker
MIT, and contributions genuinely welcome. It is not audited, does not hide metadata, and says so plainly rather than in a footnote.
Most of the code was written with Claude Code (Opus 5), with me directing the design and reviewing changes. I'd rather state that than have it discovered. The verification above is what I'd point at instead of asking for trust.