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 built, why, and what’s next.
Posts are added weekly as features come online. No marketing — just engineering.
The Big Idea
The internet was supposed to be decentralized. It isn’t. Phosphor brings back the BBS — a place you visit on purpose, not a feed that comes to you — with modern engineering and a custom DSL for live customization.
What to Expect
- Weekly updates as each phase of Phosphor implementation completes
- Code snippets showing how features work
- Architecture deep-dives when major components ship
- Honest status — what works, what doesn’t, what’s next
Timeline
| Phase | Description | Status |
|---|---|---|
| 1 | Declarative Layer (MVP) | In Progress |
| 2 | Event Handlers + Reactivity Core | Planned |
| 3 | Custom Screens + Declarative UI | Planned |
| 4 | Door Games | Planned |
| 5 | In-BBS Phosphor Editor | Planned |
| 6 | Java Extension API + Dual Runtime | Planned |
| 7a | Testing Framework + JUnit + Coverage | Planned |
| 7b | Web API + Bidirectional WebSocket | Planned |
| 7c | Federation + Sync Protocol | Planned |
| 7d | Preferences System | Planned |
| 7e | User Sandbox + Rate Limiting | Planned |
| 7f | ANSI Art, Marketplace, Achievements, AI, Calendar | Planned |
33 tasks total. Sequential. Each phase gated by tests and user approval. Quality over speed.
- 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 29, 2026
The Case for Running Your Own Digital Third Place
There’s a sentence we keep coming back to: “I run a DTP server.”
DTP stands for digital third place. If you know Ray …
- August 29, 2026
tmux for Your BBS: Phosphor Sessions Now Survive Disconnects
If you’ve used tmux or screen, you already understand what we just shipped for Phosphor BBS: the ability to walk away. Close the laptop. Lose …
- August 29, 2026
Your BBS in Your Pocket: Push Notifications and the Mobile-Ready Phosphor
The old argument against BBSes — and self-hosted community servers generally — used to be simple: they’re not where you are. A terminal lives on …
- 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 … - August 2, 2026
How to Build a Digital Third Place That's Actually Yours
You’ve read about digital third places. You understand the problem — Discord isn’t yours, Slack is for work, X is a firehose, Reddit sold …
- August 2, 2026
One Platform for Three Things You're Doing in Three Places
You use three different tools for three different kinds of communication. You probably don’t think about it this way, but you do.
Slack or …
- August 2, 2026
The Internet You Visit on Purpose
There’s a feeling people have about the old internet that they can’t quite name. They remember it — or feel like they should remember it — …
- August 2, 2026
The Third Place Problem With Discord
Discord is the most successful digital third place ever built. 200 million people use it every month. Millions of communities live there — gaming …
- August 2, 2026
What Is a Digital Third Place?
In 1989, sociologist Ray Oldenburg wrote The Great Good Place and gave a name to something everyone already knew: we need three places. The first …
- 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 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 …