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

lerax2 pts1 comments

GitHub - ryukinix/cl-bbs: Common Lisp BBS textboard · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

ryukinix

cl-bbs

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

master

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>46 Commits<br>46 Commits

.github/workflows

.github/workflows

data

data

roswell

roswell

src

src

tests

tests

.gitignore

.gitignore

.mallet.lisp

.mallet.lisp

Dockerfile

Dockerfile

LICENSE

LICENSE

Makefile

Makefile

README.md

README.md

cl-bbs.asd

cl-bbs.asd

qlfile

qlfile

View all files

Repository files navigation

cl-bbs

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

Comprehensive Formatting Support:

Bold: **text** -> text

Italic: __text__ -> text

Monospace: `text` -> text (Uses the standard backtick notation)

Spoilers: ~~text~~ -> text

Blockquotes: Lines starting with > are rendered as 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.

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.

Zero JavaScript Required: The application is completely server-rendered.

Local Qlot Sandbox: Locked sandbox dependencies pinned via qlfile to ensure backwards compatibility across environments.

29-Assertion Test Suite: Comprehensive test coverage verifying cookies, routing pipelines, and formatting rules.

Getting Started

Prerequisites

You must have Roswell and Qlot installed:

# Install Roswell<br># (Follow Roswell platform instructions)

# Install Qlot<br>ros install qlot

Installation

Clone the repository and install dependencies locally:

# Fetch and lock dependencies locally<br>qlot install

Running the Server

Start the Hunchentoot/Clack server:

make server

The server will boot and listen locally on port 8222.

Running Tests

Execute the automated Parachute test suite:

make check

Software Stack

Lisp: Common Lisp (SBCL) loaded via Roswell.

Web Server: Hunchentoot, Clack, Lack.

HTML Templating: cl-who (HTML generation).

Data Store: S-expression files saved inside plain-text files under data/sexp/.

About

Common Lisp BBS textboard

board-v2.manoel.dev/

Topics

bbs

lisp

common-lisp

textboard

Resources

Readme

License

MIT license

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

star

Watchers

watching

Forks

forks

Report repository

Releases

No releases published

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

Common Lisp<br>74.7%

CSS<br>13.3%

HTML<br>8.3%

JavaScript<br>2.4%

Other<br>1.3%

You can’t perform that action at this time.

lisp text common textboard roswell server

Related Articles