🦋 Modernizing Nymph: Porting a PHP Framework to Bun/TypeScript in One Session
Rewriting a 2020-era TypeScript microframework for Bun: fixing 14 bugs, adding 10 missing classes, and replacing Node.js patterns with Bun-native APIs.
Polishing Ikaros: PHPStan Level 6, Scope Pruning, and Property Hooks
Fixing 25 PHPStan errors, removing 2FA from the framework, and converting Upload to PHP 8.4 property hooks.
Modernizing a 5-Year-Old PHP Microframework in One Session
Bringing a 25-class PHP microframework from v0.1/PHP 7.2 to v1.0/PHP 8.2+ — fixing 21 bugs, 7 security issues, adding DI, enums, strict types, and 116 tests.
Anatomy of a Discord Bot: Architecture After 6 Refactoring Phases
A deep-dive into the final architecture of a Discord+Twitch bot after 6 phases of refactoring — from 800-line monolith to clean composition root, domain-split database, and event-driven side effects.
Decoupling a Discord Bot with a 6-Line Event Bus
How I decoupled 4 handler files from shared side-effect functions using Node's built-in EventEmitter — 6 lines of code, 3 events, zero frameworks.
Killing the Middleman: Decomposing a 980-Line Message Cache
Phase 5 of a bot refactoring: eliminating a redundant proxy layer and splitting a 980-line monolith into focused modules.
Splitting a 955-Line Database API Without Breaking a Single Interface
Decomposing a 955-line TinyBase API class into 5 domain factories using Object.assign — zero interface changes, 73% smaller core file.
Dependency Injection Without a Framework: Phase 3 of a Bot Refactor
Plain constructor and parameter injection on a JS bot — no DI container, just passing arguments and establishing a composition root.
Splitting a 1,123-Line God Class with the Facade Pattern
Decomposing a 1,123-line ChatHistoryService into three focused modules using the Facade pattern — zero caller changes.
Decomposing a 3,000-Line Monolith: ESM Migration + Module Extraction
Migrating 105 CommonJS files to ESM and decomposing a 3,093-line index.js into 13 focused modules with a shared context pattern.
Making TinyBase Work Like TinyBase
Optimizing a TinyBase database layer: natural key migration, sorted indexes, setPartialRow, and leveraging native features to delete 615 lines.
From Plain Text to Rich Embeds: Overhauling Discord Bot Moderation Notifications
Converting all Discord bot moderation notifications from plain text to color-coded rich embeds with user context, mod history, and quick-action hints.