The next-generation BBS software

  • No cloud nobody else's server
  • Old and new a 1980s computer can join
  • Real hardware a chip on your shelf
  • Free software GPL v3 or later
  • No internet needed a local network is enough
  • You write the rules and you are the appeal
  • No ads no one sells your time
  • No platforms nobody in the middle
  • No hosting fees it runs at your place
  • No outside costs your power, your Wi-Fi

Data

The directory, machine readable. No key, no signup, no rate limit worth mentioning. It is a list of hobby BBSes.

Right now

StateBoards
offline1
online4

Endpoints

GET /api/boards.json
Every listed board: name, owner, description, where to dial it, how many lines it has and how many are busy, whether it is up, whether its sysop has closed it for now (closed, true or false), and how long it has been up. Then what the badges are made of: what the board said it runs and which version, what it runs on, speaks, allows and is running, the size of its SD card, the port to dial for an encrypted connection if it takes one (ssh_port, a number or null), what it supports and is into, as the short codes on the badges page, when it was first listed, and whether it has been steady this past week. Cached for a few seconds.
GET /api/list.json
The same boards already drawn as table rows, with the three figures above the list and the footnote under it. It exists so the main site can show this list without a second copy of the drawing, which is how the two pages came to disagree; the markup it returns is this directory's and may change with it, so anything that wants the data rather than the page should read /api/boards.json instead. Cached for a few seconds.
POST /announce
How a board lists itself. One JSON object, about 200 bytes, repeated every few minutes. Plain HTTP on purpose: the boards are microcontrollers with no TLS stack.
GET /feed.xml
New boards as RSS, newest first: exactly what the public list carries, with no account and nothing here that knows who is reading.
GET /health
Answers ok, for uptime checks.

What is not in it

Nothing about callers. Not handles, not addresses, not counts of who did what, not a word anybody typed. Boards do not send it and this server would drop it if they did. The activity figures some boards publish are counts of calls and caller-minutes, given voluntarily by the sysop, and they are marked as self-reported because they are.

Writing something that lists itself

The protocol is published and deliberately dull: any software that sends the payload gets listed, whatever it runs on. It is documented in PROTOCOL.md, and this whole server is free software, so you can run your own directory instead of using this one. That is the intended outcome, not a grudging permission.