Technical Articles

18 years of development experience — browser extensions, WebAssembly, WebGPU, privacy engineering, and more

2026-10

Full-Page Screenshots in Chrome Extensions: Stitching, Fixed Elements and Memory Limits

captureVisibleTab quota pacing, scroll-and-stitch with devicePixelRatio, hiding fixed headers, canvas size limits, and the CDP captureBeyondViewport alternative.

Chrome Extensions Canvas
2026-10

TOTP from Scratch: Building an Offline 2FA Authenticator with Web Crypto

Implement RFC 6238 in the browser with zero dependencies: Base32, HMAC via Web Crypto, dynamic truncation, otpauth URIs, and RFC test vectors.

Security Web Crypto
2026-10

Perceptual Hashing in the Browser: Near-Duplicate Image Detection

DCT-based pHash in pure JavaScript: grayscale downscale, bit packing, Hamming distance, and banded indexing for whole image libraries.

Image Processing Algorithms
2026-10

Parsing HTML Tables with Merged Cells: A Grid Normalization Algorithm

A grid normalization algorithm for rowspan/colspan tables, multi-row header flattening, text extraction, and CSV export that opens safely.

Algorithms Data Extraction
2026-10

PWA Install and Offline Caching: What Actually Works in 2026

Install criteria, the beforeinstallprompt dance, iOS Safari's separate rules, versioned service worker caches, and storage persistence.

PWA ServiceWorker
2026-10

Falling Sand on Canvas: Cellular Automata at 60 FPS

Uint8Array grids, bottom-up iteration, ImageData rendering, and a fixed-timestep loop — the data layout that makes 60 FPS the default.

Canvas Performance
2026-09

Git Beyond Commit and Push: Reflog, Bisect, Worktree and Interactive Rebase

Practical Git that saves hours: recover deleted work with reflog, find the commit that broke production with bisect, and work two branches at once with worktree.

Git Tooling
2026-09

Modern CSS You Probably Missed: :has(), Container Queries, @layer and Native Nesting

Seven CSS features that replace JavaScript and preprocessor workarounds — with real examples you can ship today.

CSS Frontend
2026-09

Debugging Like a Senior Engineer: A Systematic Method That Actually Works

Reproduce deterministically, read the whole error, cut the search space in half, work outside in, change one thing at a time, lock it in with a test.

Debugging Methodology
2026-09

SQLite in the Browser: Building a Local-First Database with OPFS

Run a full SQLite database in the browser using WebAssembly and OPFS. Persistent, fast, and completely offline. No server required.

SQLite OPFS WebAssembly
2026-09

WebGPU in 2026: Running AI Inference and Parallel Computing in Your Browser

WebGPU brings GPU-accelerated computing to the browser. Run AI models, process images, and perform parallel computation entirely client-side.

WebGPU AI
2026-08

WebAssembly Image Processing in the Browser: From Pixels to Formats

Build high-performance, zero-network image processing pipelines with Canvas API and WebAssembly. PNG, JPEG, WebP, AVIF conversion with real code examples.

WebAssembly Image Processing
2026-08

Browser Fingerprinting Explained: 30 Ways You're Being Tracked Online

Canvas, WebGL, AudioContext, font enumeration, and 26 more fingerprinting vectors. How websites identify you without cookies and how to defend your privacy.

Privacy Security
2026-07

Local-Only Image Processing Architecture via Offscreen Documents

Zero-network image conversion, batch processing with memory management, CDP screenshots, and clipboard operations — all without a single fetch() call.

Offscreen Chrome Extensions
2026-06

Least Privilege Implementation & Chrome Web Store Review Checklist

activeTab dynamic injection, permission minimization, top 12 rejection reasons with fixes, and multi-browser compatibility strategies.

Permissions Chrome Web Store
2026-05

Service Worker Resilience & State Persistence for MV3

Production patterns for handling SW termination, persistent task queues, alarm-based timers, and ACK-based messaging in Manifest V3 extensions.

ServiceWorker MV3
📡 Subscribe via RSS