ChatTy — Terminal Chat App
A terminal-based, peer-to-peer chat app for Ubuntu & macOS — designed and built solo, by hand, before AI coding tools were part of my workflow. Now being re-engineered with AI-assisted development.
- Node.js
- Express
- MongoDB
- MQTT
- Python
- JWT
- Bash
ChatTy is the project I’m proudest of as a pure engineering exercise — designed and built entirely by hand, solo, before AI coding tools were part of how I work. Every piece, from the backend to the terminal client to the cross-platform packaging, was reasoned through from first principles.
What it is
A real-time chat app that runs in the terminal on Ubuntu and macOS. Users register and log in from the command line, exchange a short token, and talk directly with each other — no GUI, no fuss.
How I built it
- A signalling backend in Node.js / Express + MongoDB — accounts, JWT auth, and chat provisioning — deliberately kept out of the message path.
- A peer-to-peer message layer over MQTT — once a chat is established, messages flow directly between the two clients on paired directional topics; the backend only relays the initial request.
- A Python terminal client — health checks, register / login, token exchange, and a threaded live send/receive loop.
- Cross-platform packaging — Debian packages, a systemd unit (Linux), and a launchd plist (macOS), with install scripts.
What’s next
I’m re-engineering ChatTy with AI-assisted workflows — adding end-to-end encryption, moving hardcoded config into real secrets, finishing role-based access and chat history, and shipping one-line installers. A deliberate before/after: a hand-built foundation, now accelerated with AI coding. Packaged installers will land under Products.