###### # # ####### ##### ###### # # ####### ###### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ###### ####### # # ##### ###### ####### # # ###### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ####### ##### # # # ####### # #The BBS is back. And it's yours.█
A modern, real-time, federated BBS with a custom scripting language, dual terminal + web access, and live reactive screens. Built on modern Java, Postgres or embedded H2.
Phosphor runs on its own server. Not on AWS. Not on Google Cloud. Not on Big Tech infrastructure.
No algorithms deciding what you see. No engagement metrics. No data harvesting.
No ads. No tracking. No "your data is the product."
And with MeshCore LoRa, it federates over radio — no internet needed.
Just a BBS. Run by people who remember when the internet was ours.▊
Features
⚡ Phosphor Language
Customize everything — menus, boards, screens, games, themes — without recompiling or restarting. Write .phos files, save, see changes instantly.
Learn more →🖥️ SSH + Telnet + Web
Connect via SSH (port 2222), telnet (port 2323), or web browser. Same event bus, same data, same users. Real-time sync.
Learn more →⏸️ Session Persistence
tmux for your BBS. Detach and re-attach from anywhere — your screen, chat context, and mid-game state survive disconnects, crashes, and device swaps.
Learn more →📱 The iOS App
Your BBS in your pocket. Native SwiftUI terminal over real SSH, QR-code pairing, push notifications, and session continuity when the app switches away.
Learn more →🤖 AI SysOp Assistant
Hal runs on your own Ollama box — local, private, opt-in. Sysop admin tasks with CONFIRM gates and zero cloud APIs. Your messages are never read.
Learn more →🌐 Federation
Multiple BBS nodes sync across the internet. A post on one node appears on another in real-time. Boards, mail, and custom resources all federate.
Learn more →📡 Reactive Everything
Screens update live when data changes. New mail? Inbox updates instantly. No refresh key, no polling, no logout/login. Every screen is a live view.
Learn more →🔧 User Scripts
Regular users write their own event handlers. Mail filters, auto-replies, personal chat macros. Sandboxed to their own session. Classic BBS culture, reborn.
Learn more →🎮 Door Games
Six classic doors built in — Robotron, RPG, Sector Trader, 2048, Pac-Man, Dungeon — plus door games you script yourself in Phosphor. Save/load state, scoreboards, ANSI art.
Learn more →💬 Ctrl-T Popup Chat
Chat from anywhere. Ctrl-T drops a chat overlay over whatever you're doing — full channels, DMs, unread counts, Tab to switch. ESC and you're back mid-screen. No navigation, ever.
Learn more →📲 Push Notifications
The server pages your phone. New DM or mail buzzes your device; a tap re-attaches you to the exact screen that paged you. Page Sysop brings the classic ritual along for the ride.
Learn more →✍️ Modern Editor UX
Ghost-text completion and live spellcheck in every text field — inline suggestions, yellow-wiggle misspellings, no popups, no mouse. Terminal text entry that feels like 2026.
Learn more →⌨️ Keyboard Shortcuts Everywhere
Ctrl-C detaches instantly, preserving your session. ESC backs out one screen. Every screen has keys that just work — no menus to memorize first.
Learn more →⭐ Animated Terminals
Starfields, warps, and living ANSI backgrounds rendered at full frame rate — pure Java, no native deps. Screens that breathe without stealing your keystrokes.
Learn more →🔒 Local-Only Boards
Export control for your community. Mark any board or channel local-only and it never federates — sensitive conversations stay on your node, period.
Learn more →📡 MeshCore LoRa
Federation without internet. Nodes sync over LoRa radio — no ISP, no cell tower, no cloud. Off-grid BBS networking. The ultimate counter-culture feature.
Learn more →Live Stats
Latest Dev Log
-
September 23, 2026
Markdown in a Terminal: Building a MarkdownWidget for jterm
Every BBS has the same problem: text that wants to be formatted. Help screens with headings and bullet lists. News articles with paragraphs. Mail that …
-
September 23, 2026
Publishing 0.1.1: The Deploy That Exited 0 and Published Nothing
jterm 0.1.1 is on Maven Central. The build that put it there was green in seventeen seconds of test time — and took nine and a half minutes of wall …
-
September 23, 2026
The Case of the Blended Batches: A Race Hidden Inside a Replace
The jterm thread-safety suite exists to answer one question: can a widget survive being redrawn from one thread while another mutates it? It has run …