Learn
These articles are static pages built from Markdown in the repository. They explain concepts and point to tools that run locally in your browser whenever the task allows. Browse by topic or search the full set.
Topics
Data formats
Formatting GraphQL queries and SDL with graphql.js
How graphql.js parse and print pretty-print or minify operations and SDL, what syntax validation covers (and what it does not), and a local browser workflow for review-ready GraphQL.
Validating JSON with JSON Schema (Ajv drafts) in the browser
How JSON Schema checks an instance against a contract, which Ajv drafts to pick (draft-07, 2019-09, 2020-12), how to read path and keyword errors, and a local browser workflow that never uploads your data.
Validating OpenAPI snippets without uploading specs
How to structurally check OpenAPI 3.x and Swagger 2.0 YAML or JSON snippets in the browser—path-level errors, what subset validation covers, why remote $refs stay unresolved, and a local workflow that never uploads your API definitions.
Formatting webhook JSON and reading provider signature headers
Pretty-print or minify webhook JSON for debugging, keep the raw body for HMAC checks, and use a local cheat sheet of Stripe, GitHub, Shopify, Slack, and other signature headers without uploading payloads.
Security & privacy
Sharing an env file securely with an encrypted link
How to share a .env file with a teammate without pasting secrets into Slack or email—seal the contents locally, put ciphertext in a URL fragment, and send the password out of band.
What is TOTP?
How time-based one-time passwords work (RFC 6238): shared secrets, 30-second windows, HMAC, otpauth QR codes, and why generating TOTP locally keeps secrets off servers.
AES-GCM basics (nonce, tag, AAD)
How AES-GCM encryption works in plain language: key sizes, 96-bit nonces, the authentication tag, optional AAD, and why you must never reuse an IV with the same key.
RSA keypairs: sizes and PEM
How RSA public/private keys work in practice: 2048 vs 3072 vs 4096-bit moduli, OAEP vs PSS vs PKCS#1 signatures, and what PKCS#8 / SPKI PEM blocks contain.
Text & encoding
Text diffs: unified view and workflow
How line, word, and character diffs work, when to use side-by-side vs inline (unified) layout, and a practical local workflow for reviewing text changes without uploading paste.
Text stats: words, reading time, and limits
How word, character, line, and paragraph counts work; why reading-time estimates depend on words-per-minute; and when platform limits make those numbers matter.
Slug rules for URLs and filenames
How to turn titles into stable URL path segments and safe filenames—separators, Unicode vs ASCII folding, collisions, and how slugify differs from percent-encoding.
Sorting and deduping lines
How to reorder multi-line lists and remove duplicates—locale sort, numeric digit order, case folding, keep-first vs sort-unique, reverse, and shuffle—without uploading the paste.
CSS & design
CSS clamp() and fluid type
How CSS clamp() sets a floor, preferred value, and ceiling for fluid typography, and how to build a linear font-size ramp between viewport breakpoints.
HEX, RGB, HSL, and OKLCH: when to use each CSS color format
When to write colors as HEX, RGB, HSL, or OKLCH in CSS—gamut, alpha, perceptual lightness, and how to convert between them locally.
WCAG contrast ratios: AA vs AAA for text and UI
How WCAG 2.x contrast ratios work, when AA vs AAA applies for normal and large text, the 3:1 UI rule, and how to check pairs locally.
Layered box-shadow CSS: offset, blur, spread, and inset
How CSS box-shadow offset, blur, spread, color, and inset work—and how stacking layers builds soft cards, glows, and pressed UI without images.
Markup & docs
SVG to React: cleanup and JSX patterns
Why design-tool SVG needs SVGO cleanup, how HTML attributes become camelCase JSX props, and when to export a React component versus optimized markup.
Code screenshots and sharing
How to turn snippets into clear, shareable code images for docs and social posts—without uploading source to a remote renderer—and what to strip before you publish.
Formatting SQL for reviews
Why consistent SQL layout helps pull requests, how dialect-aware beautify and minify differ, and a privacy-friendly browser workflow for reviewing queries and CREATE TABLE scripts.
Formatting HTML snippets in the browser: fragments vs full documents
How browser HTML formatters treat fragments vs full documents, what DOMParser normalizes, and a local pretty-print or minify workflow that keeps snippets free of an implicit html/body wrapper.
Networking & ops
Estimating cloud spend from assumptions
How to turn vCPU, RAM, storage, and region into a rough multi-cloud bill estimate — and why assumption-based calculators are for comparison, not purchase orders.
Parsing User-Agent strings for browser, OS, and bot signals
How HTTP User-Agent strings encode browser, OS, device, engine, and bot hints—why order of tokens matters, what “frozen” UAs change, and how to break a log line into fields without uploading it.
Normalizing MAC addresses and reading OUI vendor assignments
How EUI-48 and EUI-64 MAC addresses are structured, why colon/hyphen/Cisco-dot formats differ, what U/L and I/G bits mean, and how IEEE OUI vendor lookups work offline.
Summarizing firewall CIDR lists with route aggregation
How overlapping and adjacent CIDR blocks collapse into a minimal route list, why host bits must be zero, and how to clean firewall and cloud security-group exports offline.
SEO & meta
Writing robots.txt: User-agent groups, Allow/Disallow, and Sitemap tips
How robots.txt groups work, how Allow and Disallow interact, when Crawl-delay and Host matter, and practical Sitemap tips before you deploy.
Auditing sitemap.xml: urlset vs index, URL counts, and duplicate loc checks
How urlset and sitemapindex differ, what URL and loc counts mean, how to catch empty or duplicate locs, and a local pretty-print workflow before you deploy.
Open Graph and Twitter Card meta tags: what to put in <head>
Which basic SEO, Open Graph, and Twitter Card tags belong in your HTML head, how overrides and images work, and a local paste-ready workflow before you deploy.
FAQPage and Organization JSON-LD: fields Google expects and how to validate
How Schema.org FAQPage and Organization JSON-LD work in your page head, which fields matter for rich results, and a local draft-and-validate workflow before you ship.
Media & files
QR codes: error correction and use cases
How QR error correction levels L, M, Q, and H trade capacity for damage tolerance, when to use Wi-Fi and vCard payloads, and why quiet zone and contrast matter for reliable scans.
Lossy vs lossless image compression
How JPEG, PNG, and WebP trade quality for file size, when lossless still wins, and how to resize and re-encode photos locally without uploading them.
Embedding images as Base64 data URLs in CSS and HTML
How data URLs pack image bytes into CSS and HTML, why Base64 inflates size by about 33%, when embeds beat external files, and how to encode images locally without uploading them.
PNG to favicon.ico and multi-size icon packs
How browser favicons and app icons use multiple sizes, what goes in favicon.ico vs PNG packs, HTML link tags that matter, and how to generate an icon set locally from one square source image.
Time, IDs & math
IANA timezones, DST, and comparing the same instant
Why IANA zone IDs beat fixed UTC offsets, how daylight saving shifts wall clocks, and how to compare one moment across cities without mixing “local time” with the instant itself.
Exact vs calendar duration between two datetimes
Why “31 days” and “1 month” are different answers, when to use a fixed millisecond span versus wall-clock years/months/days, and how LocalTools computes both locally.
ISO 8601 formats: calendar, week, ordinal, and epoch
How calendar dates, week dates, ordinal days, and Unix epoch relate in ISO 8601, plus Z vs offsets, basic vs extended forms, and what LocalTools parses locally.
Converting integers between binary, octal, decimal, and custom bases
How radix (base) conversion works for whole numbers, when binary/octal/hex matter in code, and how bases 2–36 use digit alphabets—without confusing integer hex with byte dumps.