How BBSes worked
A BBS was a complete online service in one machine: a program that answered the phone, authenticated callers, and served messages, files, games and chat — one keystroke at a time. Here is the machinery underneath, as tHe sHacK actually ran it.
The call
Your modem dialed the board's number. The board's modem answered, and the two negotiated — that shrieking handshake — a speed and an error-correction scheme. From then on the phone line was a character stream: the board sent ANSI text and read your keystrokes. That is the whole interface. Everything a BBS offered, it offered as text through that pipe.
Nodes: one line, one caller
Each modem line was a node. A one-node board served exactly one caller at a time — a busy signal meant try later, and boards published their calling hours because the family still needed the phone. Multi-node boards had several lines and, with clever software, let callers on different nodes meet in chat or the same door game. Node count was the measure of a board's ambition.
Accounts, handles, validation
First call, you filled out a new-user questionnaire — handle, password, a few demographics — and then waited. Many boards validated new accounts by hand: the sysop read your answers, maybe called the number you gave, and switched you on. tHe sHacK took it further and went private-by-invitation, with an invite password at the door, plus a keycode e-mailed to new users — a speed bump against throwaway accounts, not a lock.
Message bases: the forums
Message bases were the heart. Each base (“room”, “conference”) held messages with author, recipient, subject, date and body text. The board tracked a last-read pointer per user per room, so SPACE meant “show me what I haven't seen” — the emotional ancestor of an inbox-zero badge.
Storage was often brutally simple. tHe sHacK kept each room as a circular buffer of fixed-size binary records — 50 slots for most rooms — on local disk. When the buffer wrapped, the oldest post was overwritten: in the recovered archive, busy rooms survive only as their newest slice, while quiet rooms whose buffers never wrapped survive complete from their very first message. The board's own storage was its forgetting.
File areas and ratios
File areas were the library — textfiles, how-tos, e-zines, utilities — each with a one-line description in the catalog. Upload/download ratios on many boards enforced reciprocity: take a file, leave a file. A board's file tree was its character in miniature; tHe sHacK's, with its Phrack issues and sysop-humor textfiles, tells you exactly what kind of place it was.
Doors: the escape hatches
A door was an external program the board launched and handed your connection to — the BBS equivalent of a fork in the road. Doors were mostly games (trade wars, adventures, dungeons) with persistent state: your character lived on the board's disk between calls. The board dropped you back at the menu when the door exited. On tHe sHacK, key X opened the StarFlight door.
Chat and the sysop page
If the sysop was at the console, you could page them — on many boards the key was Y, “yell” — and the line became a two-person chat. Multi-node boards extended chat to simultaneous callers. On tHe sHacK, Y opened Ye Old cHaT RoOM, a live multi-user room complete with an ambient wire of chatter over the prompt; the rebuilt board runs it over server-sent events.
FidoNet: boards that talked
Isolated boards became a network through store-and-forward: in the middle of the night, one board called another (often at long-distance-friendly hours) and exchanged mail and echoed conferences — FidoNet being the largest. A message you posted in an echoed area hopped board to board over days. It was slow, cheap, and planetary: the internet's shape arriving before the internet's infrastructure.
From dial-up to telnet to the web
As dial-up gave way to broadband, boards lost their phone lines and found telnet: the same ANSI interface, carried over the internet instead of a modem call. The final years of tHe sHacK ran this way under velvet.ath.cx. Today's survivors — and this project — carry it one step further: the terminal in your browser, the board's data live behind it. The interface never changed; only the wire did.