Skip to content
Tech News
← Back to articles

CL-BBS: the schemeBBS-like textboard rewritten in Common Lisp

read original more articles
Why This Matters

CL-BBS is a modern, high-performance clone of the classic SchemeBBS textboard, rewritten in Common Lisp. It preserves the original layout and features, offering enhanced formatting, dynamic headers, and customizable themes, making it a valuable tool for enthusiasts and developers interested in retro-style online communities or Lisp-based web applications.

Key Takeaways

An anonymous textboard (BBS) engine written in Common Lisp. It is a high-performance, modern clone of the original MIT Scheme SchemeBBS (which ran behind dis.4chan.org and world4ch /prog/).

Features

Seamless SchemeBBS Layout: Displays threads, index lists, and posts inside definition lists ( <dl> , <dt> , <dd> ) exactly conforming to the original SchemeBBS style.

Displays threads, index lists, and posts inside definition lists ( , , ) exactly conforming to the original SchemeBBS style. Single Trailing Forms: Conforms to the original textboard paradigm where a single posting form is rendered at the very end of the thread (no per-post forms).

Conforms to the original textboard paradigm where a single posting form is rendered at the very end of the thread (no per-post forms). Comprehensive Formatting Support: Bold: **text** -> <b>text</b> Italic: __text__ -> <i>text</i> Monospace: `text` -> <code>text</code> (Uses the standard backtick notation) Spoilers: ~~text~~ -> <del>text</del> Blockquotes: Lines starting with > are rendered as <blockquote> blocks. Post References: >>7 are dynamically hyperlinked to jump anchors inside the thread page. Direct Image Link Previews: Direct links to images ( .png , .jpg , .jpeg , .gif , .webp , .bmp ) are automatically converted into elegant clickable image previews. Standard URLs: Standard URLs are automatically formatted as standard hyperlinks.

Dynamic Board Headers: Centered and left-aligned board listing headers (e.g. [ foo | prog ] ) are scanned and displayed dynamically at the top of every page.

Centered and left-aligned board listing headers (e.g. ) are scanned and displayed dynamically at the top of every page. Theme Preferences (Cookies): Choose between multiple themes ( default , classic , dark , mona , no ) on the /board/preferences page. Selections are stored inside browser cookies ( theme ) and persistent.

Choose between multiple themes ( , , , , ) on the page. Selections are stored inside browser cookies ( ) and persistent. Zero JavaScript Required: The application is completely server-rendered.

The application is completely server-rendered. Local Qlot Sandbox: Locked sandbox dependencies pinned via qlfile to ensure backwards compatibility across environments.

Locked sandbox dependencies pinned via to ensure backwards compatibility across environments. 29-Assertion Test Suite: Comprehensive test coverage verifying cookies, routing pipelines, and formatting rules.

... continue reading