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.

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

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

Latest Update: Subtext 2.0 Released with FidoNet Support (2023-05-01)

Subtext 2.0.1 has been released:

  • subtext-2.0.1.sit (StuffIt 3 archive, includes source code and THINK C 5 project file)
    SHA256: 9db9c5f4090fd72eb353e52607ee6a48d3ec31e45adc29d509a28ef8f12fd5e8
    SHA1: 241dd8c9e50fe4a4e4a8e6fcb36db05c53f54385

This is a major update to Subtext that represents many months of development, over 200 amendments, and many nights of testing and debugging. The largest change is the addition of FidoNet (FTN) support for distributed mail (Netmail) and message boards (Echomail) by way of a binkp hub.

Many thanks to Andy Diller for testing and debugging many release candidates.

All changes in this version:

  • Add support for FTN (FidoNet) EchoMail and NetMail, with support for fetching from and sending to a Binkp hub, including PKZIP archives of packets
  • Move mail to a separate database file for easier backup
  • Implement sysop paging/answering, displaying the user's message on the screen with a beep
  • Implement custom "NoModem" protocol for file transfers when a host is connecting through the trusted host assuming this is a web gateway
  • List more items per screen in boards, files, and sysop
  • List newest mail first and a global setting to prune mail after a configurable amount of days
  • Add options to sysop menu to forcefully hangup/reset the modem, and to reboot the system
  • Add timezone UTC offset setting, use to convert timestamps in FTN messages to local timezone, and add a "timezone" template variable
  • Add setting for separate maximum idle time for sysops (which can be set to 0 to disable)
  • Mask password fields in sysop settings menu
  • Add BOARD_LIST_BOARDS command for main menu, which lists all local boards
  • Faster session log pruning, fix a bug where failed logins were still being written to the session log
  • Fix SHA1 checksum calculation for uploaded files and show progress during calculation
  • Implement folder file description/notes editing and add an option for sysop to recalculate SHA1 checksum before saving
  • Try to handle malloc failures gracefully everywhere rather than exiting

Note: version 2.0.1 was released shortly after 2.0 to fix a corrupted default menu list resource.

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.


  • 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
  • FidoNet (FTN) support for Netmail and Echomail through a Binkp hub
  • 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



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).


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