phos80 Web Terminal
2026-09-09 | #phos80 #dev #tlef.ca
Hey internet!
While brainstorming a redesign of my personal website, I was very interested in
trying to recapture the experience of visiting a BBS or terminal interface. The
one issue I kept running into was still making it web-friendly. A regular
terminal or BBS interface doesn’t let someone browse with just a mouse or touch,
and if it’s solely command-based, it also won’t work for crawlers or JS-disabled
browsers. In the end I just made my own. It’s called phos80 and is publicly
available.
It’s a simple web library which renders a tree of JSON widgets (text, frames,
rows, columns, images, etc.) with BBCode-style tags for colours and links.
phos80 draws them as real text, with box-drawing characters and fixed-width
columns, and will handle the re-rendering if a window gets resized. A link that
isn’t a URL is run as a command, so help text and navigation use the same
markup.
The layout doesn’t touch the DOM, so the same code renders pages on the server.
This way crawlers and JS-disabled browsers still get the whole page.
The code, a demo and the protocol spec are all up on GitHub. Check it out, and
if you build something with it, or find it doing something dumb, hit me up over
on connect.
– Tim