🛠️Tools & CLIYear: 2025Complete

Beacon Chat

Chat that never leaves the building — a server on your network, a browser on theirs, nothing stored anywhere else

Beacon Chat cover
PythonFlaskWebSocketSQLiteHTML / CSS / JavaScript

A chat server for a room, a house, or an offline gathering — one machine on the network, everyone else opens a browser.

What it is

There are situations where sending a message through someone else’s servers is the wrong thing. Not illegal, not embarrassing — just wrong for the situation. A workshop in a room with unreliable internet, a family gathering, a place where the group chat should not become a permanent record elsewhere.

Beacon Chat runs on the local network and stops there. Start the server on one machine, everyone on the same Wi-Fi opens the address, and the messages do not leave.

What it does

  • Private messages between any two people, which stay private.
  • Group rooms you create, add people to, and leave.
  • Images, video, audio and files up to 60 MB.
  • Persistent history in SQLite, so a restart does not lose the conversation.
  • Presence and typing indicators, so people know who is there.
  • Editing and deleting your own messages, with admins able to moderate group messages.
  • Reconnects on its own when the connection drops, which matters more than it sounds like it should.
  • No accounts and no internet. Nothing leaves the network.

The numbers

60 MB maximum upload size
0 external services, 0 internet required
SQLite full message history on disk

Why it’s worth a look

Automatic reconnection is the part that took the real work. A chat that silently stops delivering messages is worse than one that visibly disconnected, because people assume they were ignored. Getting the client to notice a dead socket, reconnect, and resume without duplicating or reordering anything is a state machine, and it has to be right in the messy cases — laptop sleeps, phone changes network, server restarts underneath you.

The privacy position is architectural rather than a setting. There is no account system, no password reset, no third-party font CDN, no analytics. A design that has nothing to leak is easier to trust than one with a privacy policy.

More projects