Subtext - A multi-user BBS server for classic Mac OS

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.

To see it in action on my Kludge BBS which runs Subtext on a Macintosh Plus, you can telnet to klud.ge, visit klud.ge in a web browser, or dial +1-312-654-0090 with a modem (8/N/1).

Subtext is free software. I have some videos about its development and C programming on System 6 in general.

Latest Update: Subtext 4.0 Released (2024-02-19)

Subtext 4.0 has been released:

  • subtext-4.0.sit (StuffIt 3 archive, includes source code and THINK C 5 project file)
    SHA256: c33a6abe15e7f07159a18d936dce7c435d9619f80d6c53d1cdd26fabf06712f7
    SHA1: 0f4bdcd08b57b568125d8ddcab5ad97f1f5dd586
  • ipdb-2023-11.db (Free IP Geolocation from DB-IP, converted to Subtext IPdb format)

Changes in this version:

  • Move views out of database to flat files in a "views" directory, allowing them to be edited by other text editors and backed up; views are cached at startup and can be reloaded through the sysop menu
  • Speed up telnet IAC negotiation to avoid delay after connect, avoid doing NEWENV unless talking to the trusted proxy
  • Add BSD Syslog (RFC3164) support, sending all logged events to a configured syslog server
  • When opening the last-opened database at startup, if the Command key is held down, do not open it and prompt for a different one.
  • Add support for {{center_XX}} template variable
  • Remove ATQ0 from default modem init string to be able to handle when the modem responds to init with an error
  • When tossing FTN packets, log failures and move files to the "bad" directory, then send local mail to sysop
  • Add page number to prompt in boards menus
  • Fix new/signup logins not going directly to the signup menu
  • Fix bug in modem handling where a session wasn't properly disassociated when the session was forcefully closed
  • Fix location lookup when connecting through the trusted proxy

Previous Updates

Source Code

Source code and its THINK C 5 project file are contained in the latest release archive, and 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)
  • Multiple threaded message boards
  • FTN (FidoNet) EchoMail and NetMail support with Binkp hub synching
  • Multi-user interactive chat
  • Private messaging/mail
  • File uploading and downloading with ZMODEM support
  • Integrated ANSI-capable local console
  • Local log window with smart screen blanking
  • Remote syslog (RFC3164) 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 messages to a firewall host
  • Offline IP geolocation database support for connecting telnet IPs

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.