Why I'm Building a BBS in 2026
July 30, 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 was a community. Then the internet happened, and BBSes faded.
But here’s the thing: what BBSes did well — community, conversation, shared space — the modern internet does badly. Social media is a firehose of noise. Discord is a walled garden. Slack is for work. Nothing feels like a place the way a BBS did.
And worse — the modern internet is owned. Google owns your search. Meta owns your social graph. X owns your feed. AWS owns your infrastructure. They harvest your data, optimize your engagement, and sell your attention. The internet was supposed to be decentralized, community-owned, and free. It isn’t anymore.
So I’m building a BBS. Not as a nostalgia project — as a counter-culture statement. A place that runs on its own server. No algorithms. No tracking. No ads. No Big Tech. Just a community terminal that you visit on purpose, not a feed that comes to you.
The Stack
Java 26. Postgres. WebSockets. A custom DSL called Phosphor for live customization. Federation via jnet for cross-node sync. Dual terminal (SSH) and web access. Reactive everything — screens update live when data changes.
This isn’t a Python script running in a basement. It’s an engineered system that happens to love ANSI art.
The Language
The big idea is Phosphor — a domain-specific language for BBS systems. Instead of editing Java and recompiling, you write .phos files. Save, and the BBS updates instantly. Menus, boards, screens, games, themes, event handlers — all configurable without a restart.
board "General" {
description = "General discussion"
federated = true
}
on board_post board "General" {
// Notify subscribers
subs = board_subscribers("General")
for sub_user in subs {
mail from "System" to sub_user {
subject = "New post: ${msg.subject}"
body = "${user.username} posted:\n\n${msg.body}"
}
}
}
That’s a federated board with automatic subscriber notifications. Three lines of config, no Java.
What’s Next
The spec is written (~220K chars, 17 sections). The implementation pipeline is 33 tasks across 7 phases. Phase 1 (the declarative layer) is in progress.
I’ll be posting dev logs weekly as features come online. If you want to follow along, connect to the BBS or watch this space.
The BBS is back. And it’s yours.