Subtext - A multi-user BBS server for classic MacOS

Subtext is a multi-user BBS server that is developed on and for Macintosh System 6 (and above). It supports dialin access through a serial modem and Telnet access through MacTCP. For full documentation, see the GUIDE file included with the distribution.

Subtext is open source software released under an ISC license. See the LICENSE file contained in the distribution for copyright and licensing terms.

To see the BBS server in action, you can telnet to the Kludge BBS at klud.ge, visit klud.ge in a web browser, or dial +1-312-654-0090 with a modem.

I also have some videos about its development, and C programming on System 6 in general.

Latest Update: Subtext 1.1 Released (2022-12-01)

Subtext BBS Server 1.1 has been released:

Changes in this version:

  • Fix crash that could occur when more than one user is in chat, one user quits chat, and then remaining users continue to chat
  • Fix problem when running under non-MultiFinder where subsequent runs would fail with errors opening board and folder databases because they were not properly closed on the first run

Previous Updates

Source Code

Source code and its THINK C project file are contained in the latest release archive, or it can be viewed on AmendHub.

Features

  • Multithreaded, multi-user BBS server that runs on System 6+
  • Telnet support through MacTCP
  • Direct serial modem support (no Communications Toolbox)
  • Integrated ANSI-capable local console
  • Local log window with smart screen blanking
  • Multiple threaded message boards
  • Multi-user interactive chat
  • Private messaging/mail
  • File uploading and downloading with ZMODEM support
  • Secure user password storage with SHA256
  • View/menu templates with variable expansion
  • Configurable main menu key shortcuts
  • Telnet brute-force IP banning by sending UDP packets to a firewall host

Screenshots

Logger

By default, Subtext only shows its log window at the console. The menus at the top allow the Sysop to edit menu and view templates in a large text editor. All other configuration is done through the BBS itself by logging in as a Sysop and accessing the Sysop Menu (with ! by default).

Console

Subtext has an integrated VT100-capable terminal to quickly login as a Sysop user at the console.