ViSiON/3 pre-alpha demo
From
BBS (
/u/stlalphanerd
https://www.reddit.com/user/stlalphanerd
) to
All on Tue Apr 7 15:36:29 2026
Posting to see if theres any interest in this besides me.
Core Technology Language: Written entirely in Go (Golang). Multi-platform: Runs on macos, windows, linux Multi-user Architecture: Designed to handle multiple simultaneous user sessions via SSH (effectively unlimited nodes)
Architecture & Design Modular Structure: Code is organized into distinct packages (internal/menu, internal/user, internal/message, internal/config, internal/ansi, internal/editor, internal/terminalio, etc.) promoting separation of concerns. Menu Engine: A central MenuExecutor manages loading menu definitions (.MNU), commands (.CFG), screens (.ANS), and executing associated actions. Command Registry: Uses registries (RunRegistry, DoorRegistry) to map RUN: and DOOR: command strings to specific Go functions or door configurations. Event Loop: The core menu execution operates within a loop, processing user input, matching commands, and executing actions (GOTO, RUN, LOGOFF, DOOR).
Configuration & Data Data Storage: Primarily uses JSON files for persistent data (data/users/users.json, data/messages/messages.json, data/oneliners.json). Configuration Files: System strings (config/strings.json). Theme settings (config/theme.json). Door configurations (config/doors.json). Menu Set Structure: Supports distinct menu sets (e.g., menus/v3/) containing menu-specific configurations. This modularity allows for extensive customization and emulation of various classic BBS styles (e.g., PCBoard, LSD), aligning with the original design goals of ViSiON/2 by Crimson Blade in 93/94. .ANS: ANSI screen definitions (CP437/Extended ASCII focus). .MNU: Menu metadata (ACS, Password, Prompts, Fallback). .CFG: Command definitions (Keys to Action, ACS, Hidden). .BAR: Lightbar menu option definitions (Coordinates, Colors, Hotkey, Text). templates/: Directory for .TPL files used for dynamic content generation (e.g., message lists, user lists).
Terminal Handling & UI SSH Server: Built using github.com/gliderlabs/ssh. PTY Management: Utilizes github.com/creack/pty for handling pseudo-terminals, required for external editor integration and raw-mode doors. ANSI Processing: Dedicated logic (internal/ansi) for parsing and processing ANSI escape codes, including cursor positioning, color codes (standard and bright), screen clearing, and pipe code (|##) substitution. Character Encoding: Supports CP437 and UTF-8 output modes, with explicit handling for converting between Unicode and CP437 where necessary (internal/ansi maps, writeProcessedStringWithManualEncoding). Terminal I/O: Uses golang.org/x/term for terminal interactions like reading lines, getting terminal size, and secure password input (term.ReadPassword, term.MakeRaw, term.Restore). Abstracted further in internal/terminalio. Coordinate Extraction: Logic to parse ANSI files (e.g., LOGIN.ANS) to extract specific field coordinates (%P%, %O%) for precise prompt placement.
External Integrations Custom-built Full Screen Editor (FSED, just like old times! :)) External Doors: Executes external programs (os/exec), managing PTY allocation, argument/environment variable substitution, and dropfile (DOOR.SYS, CHAIN.TXT) generation based on configuration.
ViSiON/3 bbs software pre-alpha demo submitted by /u/stlalphanerd [link] [comments]