Show HN: Apron Chat Protocol

apron.chat

38 points by shazow 12 hours ago

Hi HN friends - I've been obsessed with chat protocols for ages - one previous project is ssh-chat (https://ssh.chat/)

I come bringing a new kind of chat protocol that I've been working on since I spent quite a lot of time exploring the 14 other competing standards we've come up with in the past few decades.

The protocol details are here: https://apron.chat

I'm hoping that Apron will better reflect our needs beyond 2026, which I expect will move more and more toward semi-private chats rather than global social networks.

Come say hi on the live public demo: https://web.apron.chat

Some fun facts:

- The demo server runs in a Cloudflare Durable Worker. It's quite efficient, since it's hibernated except for when a message comes in. Easy to self-host this in the free tier.

- Despite the JSON protocol being intentionally unabbreviated ("message" instead of "msg", etc), a typical Apron session still uses almost half as much bandwidth and messages compared to an equivalent Matrix or XMTP session. This is largely because Apron minimizes the number of roundtrips and state required for common chat scenarios. Also it compresses very nicely!

- The official reference client is a PWA (Apron Web), we also have a TUI, macOS, and an iOS implementation by third party Apron-enjoyers. There's two reference server implementations (Cloudflare worker in TS and a Go implementation), plus a bunch of minimal implementations.

- My favourite fun capability is embedding streaming messages, great for LLM outputs. This can be done just by piping to a curl command, no additional dependencies. There's also a mode for streaming a terminal (by piping something like `script` from util-linux which handles row/col/baud flushing, no special dependencies either). See section 4.8 for details: https://apron.chat/protocol#48-embeds-and-avatars