Blog
Practical SEO and web-dev guides β no fluff, with the free tools to act on them.
-
Your Regex Can Hang Your Server: Catastrophic Backtracking Explained
A 31-character string that takes Node 31 seconds to reject, the exact pattern that took Cloudflare offline for 27 minutes, and why the Stack Overflow outage needed no exponential blowup at all. How backtracking engines melt down, the three pattern shapes that cause it, and the fixes that work per language.
Read β -
What "AES Encrypt" Actually Does in Your Browser
A password is not a key. Walking the three layers between a typed passphrase and a base64 blob β PBKDF2 key derivation, an AES-GCM nonce that must never repeat, and a payload format with no version byte β including why NIST calls IV reuse almost as bad as leaking the key.
Read β -
There Is No .env Spec: Why Your Secret Works in Dev and Breaks in Docker
A password containing # silently truncates in dotenv, executes in bash, and survives in Docker Compose. Four parsers compared on the same fourteen lines, with real output β quoting, inline comments, multiline values, interpolation, and the duplicate-key rule each one picked.
Read β -
npm audit Says 47 Vulnerabilities. How Many Are Real?
Why a fresh project reports a wall of critical findings, why two scanners disagree about the same package, and how to triage a dependency report in the right order β reachability before severity, lockfile before package.json, and what a CVSS base score is actually claiming.
Read β -
Why MAC Address Vendor Lookup Fails on Modern Phones
Every phone on your network since 2019 has been lying about its hardware address on purpose. How to read the U/L bit that gives a randomized MAC away, why some real addresses resolve to "IEEE Registration Authority", and what an OUI can and cannot tell you about a device.
Read β -
Generating a CSR Shouldn't Mean Pasting Your Private Key Into a Website
A certificate signing request contains no secrets β it is your public key and subject details, self-signed to prove possession. So any CSR site that generates your key server-side or asks you to paste one has the trust model backwards. What RFC 2986 actually puts in a CSR, and how WebCrypto keeps the key on your machine.
Read β -
Your .dockerignore Is Not Broken β It Just Is Not .gitignore
The classic bug β "why is node_modules still in my build context?" β is not a bug at all. Docker matches patterns with Go's filepath.Match against the context root, not with gitignore rules: bare names don't recurse, negation is last-line-wins, and the Dockerfile is sent to the builder even when you exclude it.
Read β -
A Valid Email Address Is Not a Deliverable One
[email protected] passes every email regex ever written. So does a perfect address at a domain that refuses all mail, and one at a domain that does not exist. Syntax and deliverability are different layers β here is what each can and cannot catch, and where the honest limit is.
Read β -
Generate an ER Diagram From an Existing SQL Schema (No DBML Required)
Most ER-diagram guides assume you are modeling a database from scratch. Usually you already have one β a pg_dump, a migration, a CREATE TABLE block β and just want to see it. How DDL-to-diagram works, where DBML fits in the middle, and why real dumps trip parsers.
Read β -
Flattening JSON for CSV Export: The Round-Trip Gotchas
Turning nested JSON into dot-path keys looks trivial and is quietly lossy: flat keys cannot distinguish arrays from numeric-keyed objects, two different structures can collapse onto one key, and empty containers have nowhere to live. The mechanics, with worked examples.
Read β -
Your HAR File Has Your Login Session in It β And So Does Every Support Ticket
A HAR export is a verbatim transcript of every request your browser made β cookies, Authorization headers, passwords in POST bodies and all. Attackers hijacked real Okta customer sessions from exactly these files. What is in a HAR, how to read one, and how to sanitize it before it lands in a ticket.
Read β -
NDJSON Is Not a JSON Array With Extra Newlines
Newline-delimited JSON has three rules and three classic ways to break them: a UTF-8 BOM glued to the first token, CRLF line endings from Windows exports, and the blank-line question the two specs answer differently. The mechanics of each failure, and why per-line error isolation is the format's real selling point.
Read β -
INI to JSON: Why "Everything Is a String" Breaks Round-Trips
INI has no spec β only dialects β so every INIβJSON converter must decide whether 01 is a number, whether yes is a boolean, and where a comment starts. Those judgment calls determine whether ini β json β ini gives you back the same file.
Read β -
Disallow Doesn't Mean Deindex: What robots.txt Actually Controls
robots.txt controls crawling, not indexing β a Disallowed URL can still rank from external links, and Google dropped robots.txt noindex in 2019. How RFC 9309 matching really works, when to use noindex instead, and a percent-encoding edge case almost nobody documents.
Read β -
Why Your WebSocket Keeps Disconnecting: Reading Close Codes 1000β1015
Code 1006 with an empty reason is the most common WebSocket failure and the least explained. How the close handshake actually works, the full RFC 6455 close-code table, which codes are never allowed on the wire, and why an idle proxy is probably killing your connection at the 60-second mark.
Read β -
The UPC/EAN Check Digit Algorithm: Mod 10, Worked by Hand
How the GS1 mod-10 check digit actually works β the 3/1 weights anchored at the right end, a full digit-by-digit worked example, why UPC-A and EAN-13 share one algorithm, and the exact transposition errors mod 10 fails to catch.
Read β -
Why Your CSV Breaks When You Convert It to a Markdown Table
Pipes that split cells, newlines that shear rows apart, quotes a naive converter mangles, and semicolon "CSV" from Excel β the exact bytes that break CSV-to-Markdown conversion, per RFC 4180 and the GFM spec.
Read β -
DNS Propagation Is Not Real: What You Are Actually Waiting For
Nothing "propagates" when you change a DNS record β millions of independent resolver caches just expire on their own schedules. Where the 24β48 hour folklore comes from, the TTL procedure that removes the wait, and why lookups made too early keep failing.
Read β -
JSON to Pydantic Models: How One Sample Lies to the Generator
Why auto-generated Pydantic models are a first draft, not a schema: int vs float, invisible optionality, empty arrays, stringly-typed dates, camelCase aliases, and the v1/v2 traps β with hardened before/after code.
Read β -
Should You Store Timestamps in UTC? Yes β Except Future Local-Time Events
Why "store UTC, display local" is the right default for recording instants, and the exception that corrupts calendars: future events defined in local time need a wall time plus an IANA zone name, because governments really do rewrite timezone rules with weeks of notice.
Read β -
SVG Optimizer vs SVG to PNG vs SVG to React: Which Conversion Does Your SVG Actually Need?
A decision guide for the three things you can do with an SVG β minify it with SVGO, rasterize it to PNG, or convert it to a React component β plus when to go the other way with PNG-to-SVG tracing. With email-client support data and the honest trade-offs of each route.
Read β -
Why Every User-Agent String Looks the Same Now: UA Reduction and Client Hints
Why your analytics show Windows NT 10.0 and Mac OS X 10_15_7 for everyone, which UA tokens Chrome and Safari deliberately froze, and how User-Agent Client Hints replace the detail β in the browsers that ship them.
Read β -
CSS Easing Functions Explained: ease, cubic-bezier(), steps(), and linear()
What an easing function actually is, the cubic-bezier values behind the keywords, why ease-out belongs on entrances, how steps() powers typing effects, and what linear() can do that cubic-bezier cannot.
Read β -
How HMAC Works (and Why hash(key + message) Is Broken)
A developer-friendly explainer of HMAC β why a plain hash can't authenticate a message, how the length-extension attack breaks hash(key||message), what the 0x36/0x5c inner and outer pads actually do, and how to verify signatures without leaking your secret through timing.
Read β -
Invisible Unicode Characters: Why Two Identical Strings Don't Match
Zero-width spaces, non-breaking spaces, BOMs, and bidi overrides β the characters that render as nothing but break string comparisons, greps, and config files. What they are, where they sneak in, and how to find and remove them safely.
Read β -
Password Entropy Explained: Why Strength Meters Disagree
The entropy formula every strength meter starts from, why it overrates human-chosen passwords, how zxcvbn-style estimators differ, and the real math behind diceware and BIP39 passphrases.
Read β -
Skeleton Screens vs. Spinners: What Loading States Actually Do to Perceived Speed
Skeletons are supposed to feel faster than spinners. The research is more mixed than the listicles admit. What each pattern is for, when to show nothing at all, and how to build a skeleton that does not backfire.
Read β -
URL Encoding Explained: %20 vs +, and Which JavaScript Function to Use
Percent-encoding per RFC 3986, why + means space only in form data, exactly which characters encodeURI and encodeURIComponent leave alone, and the double-encoding bug that produces %2520.
Read β -
Browser Fingerprinting Explained: Why Hardening Your Browser Can Make You Easier to Track
What a fingerprint actually is, why entropy is the only number that matters, why bit totals are usually overstated, and the counterintuitive reason that rare privacy settings make you more identifiable.
Read β -
Dead Pixels vs. Stuck Pixels: How to Tell, and What Your Warranty Actually Covers
A dead pixel and a stuck pixel look similar and are completely different failures. How to distinguish them in 30 seconds, what the ISO pixel-fault classes allow, and whether "pixel fixer" videos do anything.
Read β -
Content-Type: Why Your File Downloads Instead of Opening
The browser does not care about your file extension. What Content-Type actually controls, how MIME sniffing turns a wrong header into an XSS bug, and the extensions where the canonical type is genuinely contested.
Read β -
How LLM Tokenization Actually Works (And Why Your Token Count Is Always Wrong)
Byte-pair encoding from the merge table up: why a leading space changes the token, why the same text costs different amounts on different models, and why non-English prompts can cost four times as much.
Read β -
IndexNow vs. Sitemaps: What It Does, Which Engines Use It, and Why Google Is Not One
IndexNow pushes URLs to search engines instead of waiting to be crawled. Which engines actually consume it, how key verification works, every response code, and an honest read on whether it is worth your time.
Read β -
Keyboard Ghosting and N-Key Rollover, Explained
Why cheap keyboards drop keys when you hold three at once, what NKRO actually requires over USB, and why a browser-based keyboard test can never see quite everything.
Read β -
What Readability Scores Actually Measure (It Is Not Comprehension)
Flesch-Kincaid, Gunning Fog, SMOG, Coleman-Liau and ARI all count roughly two things. Here is the actual math, what each formula was built for, and why a good score does not mean anyone understands you.
Read β -
Why Your Browser Can't Access Your Microphone (And Why the Usual Advice Doesn't Help)
Every getUserMedia error name, what actually causes it, and the failure mode nobody writes about: a response header that kills the permission prompt before it ever appears.
Read β -
Why Regex PII Redaction Always Leaks (And When to Use It Anyway)
Pattern matching finds emails and card numbers reliably. It cannot find names, addresses, or free-form identifiers at all β and the checksums that reduce false positives introduce their own. An honest account of the limits.
Read β -
Black Boxes Don't Redact PDFs β the Text Is Still Right There
Drawing a black rectangle over PDF text hides it visually but leaves the original characters completely intact. Why that happens, real cases where it leaked, and how to actually remove text from a PDF.
Read β -
CSS clip-path: A Working Guide to Shapes, Coordinates & Animation
How clip-path actually works β every basic shape with correct syntax, the coordinate system that breaks on aspect-ratio changes, the real rules for animating shapes, and when to use mask-image or SVG instead.
Read β -
How to Read a curl Command: Every Flag You Will Actually See
A field guide to the curl flags that show up in the wild β -d vs --data-raw vs --data-binary, when -d silently makes it a POST, what -L does to your method on a redirect, and why -k is never the fix.
Read β -
Why Excel Dates and IDs Break When You Export Them (45292 Explained)
The real mechanism behind Excel turning dates into numbers like 45292, stripping leading zeros from IDs, and mangling long numbers into scientific notation β with the fixes.
Read β -
UTM Parameters, Explained Properly (Not Just What They Stand For)
What each UTM parameter is actually for, how GA4 reports it, and the gotchas β case sensitivity, internal linking, dropped redirects, taxonomy drift β that quietly corrupt campaign attribution.
Read β -
What ATS Software Actually Reads From Your Resume
The 75% rejection stat has no source. Here is what applicant tracking systems really do with your file, verified against Greenhouse, Lever, Taleo, and parsing-vendor docs β and what genuinely breaks parsing.
Read β -
WHOIS Is Effectively Dead. Here Is What RDAP Actually Returns
Plain-text WHOIS on port 43 has been replaced by RDAP: JSON over HTTPS, standardized fields, and GDPR redaction. What changed, what you still get, and what every EPP status code actually means for your domain.
Read β -
Why Your OCR Results Are Garbage: 1nvo1ce vs Invoice
Why OCR turns "Invoice" into "1nvo1ce" β how modern OCR actually recognizes text, the image quality factors that dominate accuracy (resolution, skew, contrast, compression), and a pre-flight checklist to fix it before you scan.
Read β -
Does Your Photo Leak Your Home Address? How EXIF and GPS Metadata Work
What EXIF actually stores, exactly what your phone records when you take a photo, which apps strip it and which don't, and how to check and remove it without uploading the photo anywhere.
Read β -
Frames, Disposal Methods, and LZW: How Animated GIFs Actually Work
A developer-friendly deep dive into the GIF89a format β the graphic control extension, LZW compression, the four disposal methods, and why extracting a single raw frame often looks broken.
Read β -
PDF Passwords Explained: Why You Can Open a File You Can't Edit
The difference between a PDF user password and owner password β why one blocks opening and the other is an honor-system restriction any viewer can ignore, and what that means for unlocking a file you own.
Read β -
Why Blurring or Pixelating a Screenshot Doesn't Actually Redact It
Pixelation and blur look like they destroy text, but both are reversible under the right conditions. What Depix and Unredacter proved, why Gaussian blur is just as unsafe, and what actually hides a secret.
Read β -
How to Scan a QR Code From a Screenshot on Your Computer (No App, No Upload)
The fastest way to decode a QR code from a screenshot without a phone app β plus why "just use Google Lens" is bad advice when the code holds a WiFi password, and the technical reasons some codes refuse to scan.
Read β -
Social Media Image Sizes in 2026 (and How to Not Crop Out the Important Part)
The full 2026 size chart for Instagram, X, Facebook, LinkedIn, YouTube, TikTok, and Pinterest β plus why platform auto-cropping ruins photos and the focal-point fix that stops it.
Read β -
chmod 755 vs 644: Linux File Permissions Without the Guesswork
What the three digits actually mean, why directories need the execute bit, when to use 600, and the recursive chmod mistake that breaks every folder on your server.
Read β -
DNS Record Types Explained: A, AAAA, CNAME, MX, TXT and the Rest
What every DNS record type actually does, why you cannot put a CNAME at your root domain, how TTL really works, and how to read SPF, DKIM, DMARC, and CAA records.
Read β -
301 vs 302 Redirects: Which to Use, and How to Check What You Actually Send
Permanent vs temporary redirects, where 307 and 308 fit, why redirect chains cost you rankings, and the config snippets for Apache, nginx, Cloudflare, Netlify, and Next.js.
Read β -
Open Graph Image Sizes in 2026: One File That Works Everywhere
The 1200Γ630 standard, the safe zone that survives every crop, the meta tags you actually need, and why X strips your headline β plus how to debug a preview that refuses to update.
Read β -
How to Test Discord and Slack Webhooks (Without Writing Code)
The exact JSON payloads both platforms expect, what each status code means, why 204 looks like a failure, and how to debug rate limits, invalid_payload, and no_service errors.
Read β -
App Icon Sizes in 2026: iOS, Android, and Every File Your App Actually Needs
What app icons require in 2026 β iOS light/dark/tinted modes, Liquid Glass, Android adaptive and themed icons, Expo and Flutter configs β and the surprisingly short list of files that covers it all.
Read β -
Content-Security-Policy Explained: A Practical Guide to CSP Headers
What a CSP header actually does, every major directive in plain English, nonces vs hashes vs unsafe-inline, and the gotchas (WASM, dev servers, report-only) that bite in production.
Read β -
Designing for Color Blindness: What 300 Million Users Actually See
How the 8 types of color vision deficiency change what users see, why red/green UI fails, and practical rules β plus a free simulator to test your own designs and palettes.
Read β -
Favicon Sizes in 2026: The Five Files You Actually Need
Skip the 20-file favicon packages. The modern minimal set β ICO, SVG, Apple touch icon, and two PWA sizes β what each one is for, and the exact HTML to ship.
Read β -
WCAG Contrast Ratio Explained: What 4.5:1 Actually Means
How contrast ratio is calculated, the real rules behind WCAG AA and AAA, when 3:1 is enough, and the mistakes that make accessible-looking designs fail β with a free checker.
Read β -
Ed25519 vs RSA: Which SSH Key Should You Actually Generate?
A clear, opinionated comparison of Ed25519 and RSA SSH keys β speed, security, key size, and compatibility β plus a simple decision rule and the exact command to generate each.
Read β -
docker run to docker-compose: Convert Any Command, Flag by Flag
A practical guide to converting a docker run command into a docker-compose.yaml file β what each flag maps to (-p, -e, -v, --restart, --name, --network), with copy-paste examples for Postgres, Redis, and Nginx.
Read β -
How to Read an X.509 Certificate, Field by Field
An X.509 / SSL certificate looks like a wall of Base64, but decoded it is a short list of meaningful fields. Here is what subject, issuer, validity, SAN, and key usage actually mean β and why a SAN mismatch breaks Chrome.
Read β -
A Free iLovePDF Alternative β No Upload, No Watermark, No Account
Looking for a free iLovePDF or Smallpdf alternative that does not upload your files, add watermarks, or gate everything behind an account? Here is an honest comparison and a browser-based set of PDF tools for developers.
Read β -
Unix Timestamps and Epoch Time Explained (Plus the Year 2038 Problem)
What a Unix timestamp actually is, why "the epoch" is 1970, how seconds vs milliseconds trips people up, timezones, and the Year 2038 problem β with tools to convert epoch values instantly.
Read β -
HEIC vs JPG: What's Actually Different?
Compression, quality, file size, compatibility β a practical comparison of HEIC and JPG, and when to convert between them.
Read β -
Why Does My iPhone Save Photos as HEIC (and How to Change It)
What HEIC is, why Apple made it the default, how to make your iPhone shoot JPG again β and the fastest way to convert the HEIC photos you already have.
Read β -
The Graph Paper Field Guide: Square, Dot, Isometric, Hex, and Beyond
Not all grids are the same. A practical field guide to the seven kinds of graph paper β square, dot, isometric, hexagonal, engineering, semi-log, and polar β what each one is actually for, the right grid size to pick, and how to print your own for free.
Read β -
Print Your Own Bullet Journal: Free Dot Grid, Planners, and Habit Trackers
Bullet journaling does not require a $30 notebook. Here is how to print your own dot grid, weekly and daily planners, and habit-tracker pages for free β the right dot spacing to use, how to bind loose sheets, and a printable setup that costs pennies.
Read β -
Why Your Printable Paper Prints the Wrong Size (and How to Fix It)
You printed 5mm graph paper and the squares came out at 4.6mm. The culprit is almost always print scaling. Here is why "Fit to Page" quietly shrinks your grid, how to print true-to-scale at 100%, and how margins and file format affect a print-perfect result.
Read β -
Structured Data & JSON-LD: A Practical Guide to Rich Results
A developer-focused guide to structured data and JSON-LD β what schema.org markup actually does for search, why JSON-LD beats microdata, which schema types earn rich results, where to put the script, and how to validate it before it ships.
Read β -
How TOTP 2FA Codes Actually Work: Shared Secrets, Time Steps & QR Codes
A developer-friendly breakdown of TOTP β the six-digit codes from authenticator apps. How the shared secret gets into your phone via a QR code, why the code changes every 30 seconds without any network connection, what HMAC and the time step do, and how the server verifies it.
Read β -
CIDR & Subnetting Explained: Reading /24, Masks, and Host Counts
A no-memorization guide to CIDR notation and subnetting β what the slash number really means, how to count hosts in a /24 or /20, why the network and broadcast addresses are reserved, how subnet masks work in binary, and the quick mental math for everyday networking.
Read β -
How bcrypt Actually Works: Salts, Cost Factors & Why You Never MD5 a Password
A developer-friendly explanation of bcrypt β why password hashing is different from regular hashing, what the salt and cost factor in a $2b$ string mean, how deliberate slowness defeats brute-force attacks, and why MD5 and SHA-256 are the wrong tools for passwords.
Read β -
UUID vs ULID: v4, v7, and Which ID You Should Actually Use
A practical comparison of UUID and ULID for generating unique IDs β how UUIDv4, UUIDv7, and ULID differ, why random IDs wreck database index performance, what "sortable" really buys you, and a clear decision guide for picking the right identifier in 2026.
Read β -
How to Test File Upload Limits: Boundaries, 413s, and Exact-Size Files
A practical developer guide to testing file upload limits correctly β nginx client_max_body_size, cloud function payload caps, S3 multipart thresholds, the MB vs MiB unit trap, and how to generate exact-size test files in any format.
Read β -
Sample File Sizes for Testing: 1 MB, 10 MB, 100 MB and Why They Matter
A practical guide to which file sizes you should actually test, the real-world thresholds they map to (form uploads, API gateways, CDN edge limits), the decimal MB vs binary MiB gotcha that causes off-by-5% limit bugs, and why round numbers are the worst test inputs you can pick.
Read β -
What Makes a File Valid? Magic Bytes & File Signatures Explained
How programs really know what a file is β not from its extension, but from the raw bytes at the start. A developer-friendly look at magic numbers, MIME sniffing, structural validity, and why renaming a .txt file to .pdf does not make a PDF.
Read β -
How ZIP Files Actually Work: Local Headers, Central Directory & the End Record
A developer-friendly deep-dive into the ZIP binary format β the three structural sections every archive contains, why a ZIP reader seeks from the end rather than the beginning, how STORE and DEFLATE differ, and what really happens when a tool reports your archive is corrupt.
Read β -
PNG vs JPG vs WebP vs AVIF: Which Format to Use and When
A practical breakdown of the four main web image formats β PNG, JPG, WebP, and AVIF β covering lossless vs lossy, alpha transparency, compression efficiency, browser support in 2026, animation, encode/decode cost, and a clear decision guide for developers.
Read β -
Cron Syntax Cheat Sheet: Fields, Examples & Special Strings
A clear cron cheat sheet: what each of the five fields means, the special characters, @daily-style shortcuts, ready-to-use schedule examples, and the day-of-week gotcha that catches everyone.
Read β -
Git Cheat Sheet: The Commands You Actually Use (with the Gotchas)
A practical Git cheat sheet grouped by what you are trying to do β commit, branch, undo, stash, sync, and recover β with the gotchas that bite people. Copy-paste ready.
Read β -
How Font Files Actually Work: TTF, OTF, WOFF & WOFF2 Explained
A developer-friendly look at what is really inside a font file β sfnt tables, TrueType vs CFF outlines, and why WOFF/WOFF2 are just compressed containers. Plus when converting between formats is lossless and when it is not.
Read β -
How JWTs Actually Work: Header, Payload, Signature & Common Mistakes
A developer-friendly explainer of JSON Web Tokens β what the three parts really are, what signing does and does NOT do, how validation works, and the security mistakes that cause real breaches.
Read β -
Regex Cheat Sheet: Syntax, Patterns & Copy-Paste Examples
A practical regular expression cheat sheet β anchors, character classes, quantifiers, groups, and lookarounds β plus ready-to-use patterns for email, URLs, dates and more, and the gotchas to avoid.
Read β -
The Best Free SEO Audit Tools for Developers (No Signup)
An honest roundup of free SEO audit tools for developers β including competitors β judged on depth, signup friction, and the technical checks that actually matter.
Read β -
Core Web Vitals Explained: LCP, INP, and CLS for Developers
What LCP, INP, and CLS actually measure, the thresholds that matter, and the real causes behind each failure β written for developers, with concrete fixes.
Read β -
The Complete On-Page SEO Checklist (45 Checks, Free Tools Included)
A practical, developer-focused on-page SEO checklist for 2026 β meta tags, headings, content, links, images, structured data, Core Web Vitals, security headers, and crawlability, each with a free tool to check it.
Read β -
A Free SEOptimer Alternative β No Email, No Paywall
Looking for a free SEOptimer alternative that does not gate the report behind an email signup? Here is an honest comparison and a no-signup, browser-based option for developers.
Read β