Meatspace Chat was a beautiful experiment from the early 2010s — a chat room where every message included a webcam GIF of you saying it. It made the internet feel human and silly and present. Friend Chat is my attempt to bring that energy to the atmosphere.

How It Works

Sign in with your atmosphere account. Type a message, and your webcam records a 2-second clip that goes with it. Messages are real-time via WebSockets and ephemeral — only the last 20 exist at any time. Close the tab, they’re gone.

The PDS-First Trick

Here’s the part I’m proud of: messages don’t just live on the server. When you post, the server uploads your video to your PDS as a blob and creates a custom is.keith.fc.message record on your data. Then Jetstream — Bluesky’s real-time firehose — picks it up and broadcasts it back to everyone in the room.

The server is more of a relay than a database. Your messages are technically your data on your PDS, even though they disappear. This is the kind of thing that’s only possible because the atmosphere gives you a data server as a primitive — I didn’t have to build any of that infrastructure, I just used it.

Videos get recorded as WebM in the browser and converted to MP4 via FFmpeg on the server for PDS compatibility. No build step — Bun runs TypeScript directly and the frontend is vanilla JS.