TILens turns technical updates into a focused daily brief: official releases,
trusted reporting, and practitioner analysis, deduplicated and organized by topic.
Language switchers look trivial: a dropdown with flags. In practice they are where many multilingual sites break their own SEO and annoy users at the same time. This post outlines a switcher design that keeps search…
Disclosure: I maintain request-to-axios. This is a migration guide from the perspective of someone maintaining legacy Node.js code, not an independent review of my own package. When a project uses request, replacing the…
Why a Meditation App Needs a Good Voice If you’ve ever tried a guided meditation on a cheap text‑to‑speech (TTS) engine, you know the difference a natural‑sounding voice makes. A soothing, human‑like voice can keep…
I recently shipped FlockCalc, a small site of free calculators for people who keep chickens, quail and ducks in their backyard. No accounts, no ads — just instant answers. The interesting part wasn't the code, it was…
Transparent Image Fallback System with Canvas API Understanding the Need for a Fallback System Transparent images are essential for creating layered designs on the web. However, not all browsers or environments support…
We publish Regime Map, a country-by-country register of gambling regulation. The people who write about the subject, lawyers and journalists mostly, need the same picture we already draw: which countries license online…
Most of the people who play Solitaire on our site do it on a phone, held in one hand, often on the sofa in the evening. Many of them are over 60. Until this week our Klondike layout on phones was simply the desktop…
Hey everyone! Instead of arguing about desktop framework bloat, we built an automated, reproducible benchmark harness (benchmarks/stress-suite/) and ran 5 major JavaScript desktop runtimes through the exact same heavy…
The Security Gap in Autonomous LLM Agent Pipelines When autonomous AI agents ingest untrusted web pages, emails, or user inputs, two critical failure modes occur before the payload ever reaches the model: Indirect…
Loops are where console.log goes to multiply. One log per pass is fine for 8 passes and useless for 8,000. Here are the techniques I reach for, from "edit the code" to "don't touch it at all". The loop we'll debug finds…
Government and exam forms are oddly specific about photos. A typical application portal doesn't say "a small photo, please" — it says the photo must be under 50KB, the signature under 20KB, and the passport photo…
I maintain CodeDiag, a CLI that scans a Node.js project and tells you which API routes have no recognizable auth check or input validation. It's deterministic: no LLM, no account, and with --no-audit it never touches…
When Google rolled out Chrome Extensions Manifest V3 (MV3), the web development community let out a collective groan. Persistent background pages were killed off, replaced by transient Background Service Workers that…
On 1 November 2026, an audit of the StackEndBox homepage found a small inconsistency that a browser-tab check had missed. The HTML title already contained the company name. The Open Graph and Twitter titles still said…
In September 2026, I released rspec-wasm, a tool for running RSpec tests on ruby.wasm, and introduced it in my previous DEV article: Stop Writing Ruby Tests in JS Template Literals: Meet rspec-wasm I've now released…
TL;DR A React use mobile hook returns false on the server because the server has no screen: it renders the HTML before any browser reports a width, and hydration has to repeat that guess. Switch visible layout with CSS…
Originally published on Medium. This server has one thread. Ten thousand people are using it right now, and none of them are waiting. Give each of those users their own thread instead, and the same server runs out of…
A photo can be too dark, too flat, or too gray, and those are three different complaints. Brightness, contrast, and saturation each answer one of them. Turning the wrong one up is why a "brighter" edit sometimes looks…
Look, we've all been there. Someone leaves two seconds on the microwave and doesn't hit clear. Someone eats the last slice of cold pizza with your name on the box. Someone steals the blanket at 3 AM and rolls themselves…
Last week I put a fake DSN host behind a small Express app to log what the Sentry SDK actually sends. I went in for the byte counts. The thing I keep thinking about a week later is one line in a stored error event:…