BBS
- September 8, 2026
Features
The BBS is back. And it’s yours.
Phosphor isn’t a nostalgia project. It’s a real-time, federated communication platform that happens …
- September 4, 2026
Five Bugs in One Morning: Debugging the Phosphor iOS Client
The QR pairing post ended with a working native iOS client for Phosphor BBS. What it didn’t cover is what happened next: the app crashed …
- September 4, 2026
The Screen That Lied: Building Idle Timers That Actually Tick
Here’s a bug report you can’t reproduce with a test: “the sessions view shows a list of users logged in, and when they change state …
- September 2, 2026
A QR Code on a Text Screen: Pairing Phones to a BBS Without a Login
There’s a moment in every mobile-client story where the design gets embarrassing. Your BBS just grew a beautiful native iOS app — SwiftUI, an …
- August 31, 2026
Ctrl+C to Step Away: Keyboard Shortcuts for Phosphor's Session Persistence
Last week we shipped session persistence for Phosphor BBS: detach your session, close your terminal, reconnect later, and your screen, cursor, and …
- August 31, 2026
Lite Emacs in Your BBS: The Key Bindings That Make Phosphor's Text Fields Work
If you’re the kind of person who reaches for Ctrl+A to jump to the beginning of a line, or Ctrl+K to delete everything from the cursor to the …
- August 15, 2026
Live Spellcheck in a Terminal: Yellow Highlights, No Popups
Every modern editor highlights misspelled words as you type. Squiggly red underlines in Word, yellow backgrounds in Google Docs, dotted lines in VS …
- August 14, 2026
Ghost Text Completion: Bringing Modern Editor UX to the Terminal
If you’ve used VS Code, fish shell, or Google’s search bar, you’ve seen ghost text — that dim, semi-transparent suggestion that …
- August 12, 2026
Animated Borders: Living Frames in a Terminal UI Toolkit
A border in a terminal UI is usually a static thing. Four corners, four edges, drawn once and forgotten. Box-drawing characters sit there like a …
- August 12, 2026
Designing Reusable Config Screens: From Vertical Labels to Table Layout
Every config screen in Phosphor BBS used to be a snowflake. SystemConfigScreen had its own layout. AiConfigScreen had its own layout. They looked …
- August 12, 2026
The Auto-Approve Dead-End: A BBS Onboarding Bug Story
Here’s a bug that’s easy to introduce and embarrassing to discover: a new user creates an account on your BBS, the system auto-approves …
- August 3, 2026
From IRC to iMessage: Rebuilding BBS Chat for 2026
The original BBS chat was IRC. You’d type
/join #lobby, see messages scroll by in a flat log —<joe> hey everyone— and if you wanted to … - July 31, 2026
Federated BBS: How Phosphor Makes Multi-Node Sync Declarative
Every BBS in the 80s and 90s was an island. Your callers dialed your node. Your boards lived on your machine. If you wanted to share content with …
- July 31, 2026
Phosphor Progress — From Parser to Federation
Twenty-nine commits. Six phases. One language. Here’s where Phosphor stands after the most intense development sprint yet.
The Journey So Far …
- July 30, 2026
Building a Lexer and Parser for a BBS Programming Language
How do you build a programming language for a BBS? You start with the same tools every language uses: a lexer to break source code into tokens, and a …
- July 30, 2026
Declarative UI: Building Terminal Screens with Widgets in Phosphor
Most BBS systems render screens the hard way: imperative code that clears the terminal, prints line by line, and redraws on every update. It works, …
- July 30, 2026
Dev Log
Building Phosphor — a modern, real-time, federated BBS with a custom scripting language called Phosphor. This is the dev log: what’s being …
- July 30, 2026
Federation
Your BBS talks to other BBSes.
In the 1980s and 90s, FidoNet proved that independent BBSes could form a network — dial-up calls, store-and-forward …
- July 30, 2026
How to Connect
Two ways in. Same BBS.
Phosphor runs on a single backend. Web and SSH are just two doors into the same room. Same users, same chat, same mail, same …
- July 30, 2026
Phosphor Language
A domain-specific language for BBS systems
Every classic BBS sysop knew the feeling. You’d tweak a menu, add a message board, wire up a door …
- July 30, 2026
Screenshots
The Terminal Aesthetic
Phosphor doesn’t just look retro. It IS retro — a real terminal application running on jterm, a JVM-based terminal …
- July 29, 2026
Building the Phosphor Parser — Week 1 Dev Log
The first phase of Phosphor implementation is underway. Here’s what’s happening and why it matters.
The Problem
Every BBS system has the …
- July 28, 2026
ANSI Sprites: Animation in a Terminal UI Toolkit
A terminal is a grid of characters. Each cell holds one glyph, one foreground color, one background color. That’s it. There are no pixels, no …
- June 21, 2026
Terminal Animations: Starfields, Warps, and Living Backgrounds
A BBS login screen used to be a static ASCII banner. You’d connect, see a logo made of text characters, type your username and password, and …
- June 19, 2026
Message Boards and Mail: Persistent Communication in Phosphor BBS
A BBS without message boards is just a chat room. Boards are where the community lives — threaded discussions that persist over days, weeks, months. …
- June 19, 2026
Real-Time Chat on a BBS: Pub/Sub, Channels, and Wall Messages
Chat is the heartbeat of a BBS. In the 90s, you’d log in, see who was online, and jump into a channel. Messages appeared character by character …
- June 19, 2026
The SysOp Experience: Building Admin Tools for a Modern BBS
Every BBS needs a sysop. The system operator — the person who manages users, moderates boards, configures channels, and keeps the system running. In …
- June 18, 2026
From Modem to SSH: Building a Telnet/SSH Server in Java
In the 90s, a BBS was a modem bank and a phone number. Callers dialed in at 2400 baud, negotiated a connection, and got a text interface. The protocol …
- June 17, 2026
jterm: Building a Terminal UI Toolkit in Pure Java
Every BBS needs a terminal. But not just any terminal — a fast one, with per-character styling, double-buffered rendering, and a widget library that …
- June 14, 2026
Why I'm Building a BBS in 2026
I ran a BBS when I was younger. This was before the web — you’d dial in on a modem, read messages, play games, chat with people in your town. It …