Built Phucking Cards, a free Cards Against Humanity clone for 3-20 players. Runs on Express + Socket.IO + Redis. Ran into some interesting problems with timeout propagation, mobile touch events, and callback registration.
Color-coding is intuitive — until it isn't. For millions of color-blind users, red and green look identical. Here's why symbols aren't optional, they're essential.
How I became a hosting provider connoisseur by migrating from localhost to Render to Fly.io to Hetzner—all because of a memory-hungry sprite sheet and basic economics.
A complete walkthrough of migrating the Image Optimizer API from Render to Fly.io, achieving 4x memory increase (512MB → 2GB) at a lower cost while solving memory limit issues with large image processing.
The story of forking an abandoned planning poker app and giving it a complete technical refresh: Vite, Tailwind CSS, 52% bundle reduction, and modern developer experience.
A deep dive into building Image Optimizer — a privacy-focused image optimization service that started as a simple utility and grew into a full-featured API with CLI tools, spritesheet packing, and developer-friendly features.
A walkthrough of using docker-compose override files to manage local image tags, avoid committing dev-specific changes, and support multiple configurations.