Articles / 2026 / January

January 2026

20 articles published in January 2026

Building a Code Evolution Analyzer in a Weekend

What started as a 'quick script to visualize git history' became microservices, NATS message queues, and audio sonification. The anatomy of a one-day project that wasn't.

Identity, SEO, and a Lot of Polish

Building out the identity system—sessions, OAuth, passkeys—plus gopher content flow, Z-Machine expansion, and a huge formatting sweep.

Deep Dive: Passkey Authentication for a Retro BBS

WebAuthn meets 1980s aesthetics—implementing FIDO2 passkeys and biometric auth for a system that pretends to be a 300-baud bulletin board.

CC-40 Completion and IVR Launch

Shipping the TI CC-40 backend with authentic CALL commands and audio, plus a full IVR phone tree system.

Storage Peripherals and Audio Realism

Adding hard drive, floppy, and cassette peripherals with Kansas City Standard encoding, plus a peripheral audio bus for realistic sounds.

Deep Dive: Kansas City Standard Cassette Storage

Building a 1976-era cassette peripheral—FSK encoding at 2400/1200 Hz, tape transport simulation, and why saving 8KB took six minutes.

Deployment Prep and Backend Growth

Kubernetes/K3s deployment configs, CI/CD scaffolding, schema-driven API generation, and the Star Trek BASIC backend.

Three Languages, One Weekend: Building BASIC, Forth, and Scheme Interpreters in Rust

Implementing three classic programming language interpreters in Rust, compiled to WebAssembly. BASIC for nostalgia, Forth for stack machines, Scheme for elegance—and what I learned along the way.

The Big web/ Move and Parser Migrations

Moving the web app to a proper structure, migrating parsers to Pest/Pratt, and building the Z-Machine opcode engine.

Deep Dive: CTS Flow Control in the Serial/Modem System

Why you can't just shove bytes through a virtual modem—RTS/CTS hardware flow control, buffer management, and making dial-up feel authentic.

Z-Machine Foundations and Storage Sync

Pushing the Z-Machine interpreter forward with decoder work, text handling, and SAVE/RESTORE—plus content-addressable storage with S3 sync.

Deep Dive: The Z-Machine Interpreter

Building an Infocom Z-Machine interpreter in Rust—instruction decoding, Z-strings, call frames, and understanding what makes Zork tick at the bytecode level.

Feature Surge: Dungeon, Forth, and Core Polish

A big feature day across the dungeon backend, Forth interpreter, and CPU cores—plus the Intel 8008 calculator peripheral.

Emulation Milestones and TypeScript Migration

Intel 8088 demos, Zig-based 6502 experiments, and migrating the frontend to TypeScript for better type safety.

Deep Dive: PETSCII and the VIC-II Text Adapter

Translating Commodore's weird character encoding and VIC-II video memory into ANSI terminal output—box drawing, color mapping, and 40-column nostalgia.

Big Repo Restructure and Backend Migration

Splitting the repository into clear domains—cores, languages, assemblers, BIOS—and making future work less of a guessing game.

Deep Dive: Bell 212A and V.32bis Handshakes

When 300 baud isn't enough—simulating faster modem handshakes with phase modulation, QAM, and the beautiful screaming of USRobotics Sportsters.

Deep Dive: Bell 103 Audio Modem and FSK Implementation

Implementing the 1962 modem standard that made 300 baud dialup possible—FSK modulation, Goertzel demodulation, and the beautiful warble of two frequencies arguing over a phone line.

Build System Groundwork and Modem Plumbing

Tightening the build pipeline for modem-core WASM, dynamic backend loading, and making the modem behave like a real modem.

A Small Day That Mattered

Fixing CRT modem and BBS bugs—the quiet foundation work that keeps a larger project from getting weird later.