Resources
Developer guides
Short, specific articles that link back to the tools they describe. No filler lists, no fabricated traffic claims.
2026-08-31
Lossy vs lossless image compression in the browser
Canvas JPEG and WebP shrink photos by discarding detail. PNG re-encoding is not pngquant. Know the difference before you hit download.
2026-08-30
A Markdown preview should not execute HTML
Previewing Markdown by injecting raw HTML is an XSS gadget. Here is the safer model: parse a subset and render elements.
2026-08-29
Cron expressions explained (Unix five fields)
What each cron field means, Sunday as 0 or 7, and why Quartz is not Unix crontab.
2026-08-28
How JavaScript regular expressions actually match
ECMAScript regex flags, groups, and why a tester should never eval the replacement.
2026-08-28
Unix timestamps: seconds, milliseconds, and ISO 8601
How to tell epoch seconds from milliseconds, and why UTC storage still needs a local display.
2026-08-27
Decoding a JWT is not verifying it
Reading a JWT payload is debugging. Trusting it requires a signature check with the issuer’s key.
2026-08-26
What Base64 encoding actually does
Base64 is an encoding, not encryption. Here is how UTF-8 and the URL-safe alphabet fit in.
2026-08-22
When JSON to CSV conversion works — and when it does not
Arrays of objects convert cleanly. Nested trees do not. Learn how flattening, delimiters, and quoting affect the spreadsheet you get.
2026-08-18
How to validate JSON (syntax vs schema)
JSON can be well-formed and still wrong for your API. Here is the difference between parse errors and schema checks.
2026-08-12
How to format JSON without losing data
What pretty printing actually changes, when minified JSON is better, and how to fix the syntax errors that block formatting.