Deep dives into tools,
techniques & the web.
Practical guides covering developer tools, health metrics, SEO, converters and more — written to be actually useful.
✦ AI-powered — understands natural language
Why API Key Rotation Is Harder Than It Should Be — Zero-Downtime Rotation, Secure Distribution, and the Permanent Git History Problem
The Four-Layer DNS Cache — Why the Same Domain Resolves Differently From Different Locations During Propagation
A DNS query might return an answer cached by your browser, your OS, your ISP's resolver, or a CDN's resolver — and each cache has a different expiry time. Here's the four-layer DNS caching chain, why the TTL on your old record controls propagation speed (not the TTL on the new one), how to read the remaining cache TTL from dig output, negative caching (why "doesn't exist" responses are also cached), and why Anycast DNS means propagation isn't geographically simultaneous.
Google Ignores Your Canonical Tag More Often Than You Think — Here's Why and How to Detect It
Canonical tags are hints, not commands — Google will override your specified canonical if the destination has significantly different content, returns errors, conflicts with hreflang annotations, or contradicts overwhelming external link signals. Here's the four main override reasons, how to detect a canonical override in Google Search Console ("Google-selected canonical" vs "user-declared canonical"), and when a 301 redirect is a more reliable tool than a canonical tag.
Base64 Makes Data 33% Larger — Here's the Exact Math and When That Overhead Actually Matters
Base64 makes data 33% larger — exactly, not approximately, because encoding 6 bits per character while binary uses 8 bits per byte produces a 4/3 size ratio as a direct mathematical consequence. Here's why that overhead is negligible for tokens and small images but significant for large file APIs, the common JSON-Base64-embedded-file pattern and its alternatives, and what validation steps most Base64 decoding code skips for untrusted input.
Why BIMI Rejects Your SVG Logo — SVG Tiny 1.2 Requirements Explained
BIMI doesn't accept standard SVG files — it requires SVG Tiny 1.2, a restricted profile that prohibits CSS style blocks, external references, filters, and often gradients and text elements. Most SVG files exported from Figma, Illustrator, or Sketch will fail BIMI validation. Here's the exact SVG structure required, why the circular crop means corner-content gets clipped, and the validator errors you're most likely to encounter.
Reading a UUID: What the Hex Characters Actually Encode — and Why v1 Exposes Your Server's MAC Address
A UUID looks random but encodes information depending on its version: v1 embeds the creation timestamp and the generating machine's MAC address (recoverable by anyone who sees the UUID); v4 is genuinely random (122 random bits); v5 is deterministically computed from a namespace and name; v7 is timestamp-ordered with random low bits. Here's what each segment of a UUID actually contains, why v1 is a privacy risk in public-facing contexts, and when UUIDs shouldn't be used as security tokens.
Why a "200-Calorie" Strength Session Burns More Than a "200-Calorie" Run — The 24-48 Hour Muscle Repair Effect
Cardio burns calories during the session; strength training continues burning calories for 24-48 hours afterward as muscle fibers repair — and long-term muscle gain increases resting metabolism permanently. Here's what skeletal muscle actually costs at rest (6-10 kcal/kg/day), why muscle protein turnover after resistance training adds 100-300 kcal over the following day, and why the "1 kcal/kg/km" running rule is more reliable than MET values for estimating running calorie cost.
Why You Don't Have to Drink 8 Glasses of Water a Day — and When You Actually Do Need to Drink More
The "8 glasses a day" rule omitted the very next sentence from its source: "most of this quantity is contained in prepared foods." Roughly 20-35% of daily fluid comes from food, making the actual drinking target lower. Here's why thirst is a more reliable hydration mechanism than most people think (in healthy adults in normal conditions), the specific situations where following thirst isn't enough, and why urine color is a better real-time hydration indicator than tracking millilitres.
Word Count Isn't a Ranking Factor — Here's What Competitor Word Count Analysis Is Actually For
"Write 2,000+ words to rank" is confident, specific advice with weak evidence — longer pages rank well because comprehensive answers to complex questions require more words, not because length itself is a ranking signal. Here's how to actually use competitor word count data (look at the range, understand why longer pages are longer), why word count is a useful writing discipline tool in academic and professional contexts, and when character count matters more than word count.
Why Your Exact Birthday Determines Your Pension Age — and the Break-Even Math on Deferring It
State pension age is no longer a single fixed number — it varies by birth year cohort, and three people currently the same age will reach pension age at different years depending on exactly when they were born. Here's how different pension systems define retirement age, the break-even calculation for deferring pension (spoiler: you need to reach roughly 84 for UK deferral to pay off), and why "are you 65 in this tax year" has multiple valid interpretations that affect eligibility.
Traceroute Reveals Internet Topology — How to Read Autonomous Systems, IXPs, and Network Boundaries in Your Results
Traceroute doesn't just show latency — it reveals internet topology: which Autonomous Systems your traffic crosses, where it hits an Internet Exchange Point and stays local, and where it traverses a transit provider and potentially crosses continents. Here's how to read ASN changes as network boundary crossings, what IXPs like LINX and AMS-IX do for routing efficiency, and why traceroute RTT values are cumulative (explaining why hop 3 can show lower latency than hop 2).
URL Encoding Context: Why a URL Inside Another URL, in HTML, and in a Shell Command All Need Different Treatment
A URL that works in a browser can fail in curl, JSON, or as a query parameter — because each context has different rules about which characters need encoding. Here's why "just URL-encode it" is underspecified without knowing the context, the encoding-within-encoding problem (a URL as a value inside another URL), why & needs HTML entity encoding in href attributes but not JSON, and the + vs %20 space ambiguity.
What a Website Speed Test Actually Measures — and Why Two Tools Testing the Same URL Give Different Scores
Running the same URL through PageSpeed Insights and GTmetrix can produce completely different scores — not because one is wrong, but because they measure different things from different locations using different methodologies. Here's what website speed tests actually measure (TTFB, FCP, LCP, TBT, CLS), the lab vs field data distinction, why scores vary between tools, and which metrics actually correlate with rankings and user experience.