In the 1980s, before the internet reached Hawaii’s living rooms, there was Saimin Chat System — an Apple II+ in Aiea running five phone lines at 300 baud. You dialed in, you got routed to whichever line was open, and you chatted in real time with whoever else happened to be connected that evening. The system operator held the title “Noodle.” Saimin 2 is that system, rebuilt for the browser.
The Welcome Screen#
When you connected to the original, you got this — and Saimin 2 preserves it exactly:
Press Return to connect as a guest. Type your credentials to log in as a member. That was the whole welcome ceremony — a joke, a punchline, a blank field.
What It Is#
A browser-based multi-user chat system modeled on the original:
- 15 numbered lines — one caller per line, same mechanics as the original
- A browser terminal — xterm.js presenting VT100/ANSI output, no app to install
- Guest and member sessions — guests get 10 minutes; members get allocated monthly time
- The original moderation model — members issue strikes against bad actors; three strikes disconnects you
- The same welcome screen, preserved exactly
When the lines are full, you get a system-busy message and no entry. That’s the whole thing, and it’s intentional.
The Business Model#
Fees
Membership fees cover hosting costs. This is not a commercial project. Any surplus at year end is donated to charity.
The Tech#
Browser terminal: xterm.js over a WebSocket connection. No web framework, no SPA — the interface is the terminal.
Backend: Python and FastAPI with native async WebSocket support. All 15 connections run in a single asyncio event loop — no Redis, no message broker, no external session store. If the process restarts, sessions reset, the same way the original reset when you powered it off.
Data: SQLite in WAL mode. Member records, time balances, message boards, audit log — all one file on a mounted volume.
Billing: Stripe Checkout for membership. Card data never touches the BBS.
Deployment: Kubernetes.
Site: saimin2.com
Technical breakdown — stack, architecture decisions, and the EA governance model — in my professional portfolio at rubyjedi.com.