Cheatsheets · TypeScript, curl, ffmpeg, Caddy & Delivery Principles

Five standalone pocket references. Independent of each other and of the JS event-loop series. Pick one — there's no reading order.

About these cheatsheets

Five unrelated quick-references that happen to share the Rose Pine theme:

  • TypeScript 6.0 — 23 sections from primitives through 5.x → 6.0 language features. Every section heading links to the corresponding chapter of the TypeScript Handbook; the "What's new" card has per-version links to each release-notes page (5.0 → 6.0). Verified live against npm at write time.
  • curl — 16 sections of HTTP-stack recipes covering methods, headers, body forms, auth (Basic / Bearer / Digest / NTLM / SigV4 / .netrc), TLS / mTLS, proxies, retries & timing, cookies & sessions, parallel transfers, and non-HTTP protocols (FTP, SMTP, IMAP, WebSocket, MQTT).
  • ffmpeg / ffprobe — 15 sections covering transcoding, filter graphs, trimming/concatenation, audio (loudness normalization), subtitles, GIF/thumbnail extraction, streaming (HLS/DASH/RTMP), hardware acceleration, and ffprobe inspection/scripting. Nearly every command was run against a real file while writing this; the handful that couldn't be — subtitle burn-in and drawtext (this build lacks libass/freetype), RTMP push and the fswatch loop (no live endpoint / tool on hand), and the NVENC/VAAPI hardware encoders (no matching GPU) — are sourced from ffmpeg.org/NVIDIA's official docs instead and marked as such.
  • Caddy Docker Proxy — 15 sections on label-driven reverse proxying for a multi-app homelab: no shared Caddyfile, zero-downtime cutover, health-check traps, CI simplification. Mined from a real deployed multi-app setup; hostnames and repo paths are genericized examples, not real infrastructure.
  • Production Delivery Principles — shift-left CI, expand/contract migrations, feature-flag lifecycle, and test-isolation discipline, distilled from running a real production system rather than a specific framework's docs.

Design principle

Surface-level reference material is everywhere. What's harder to find is reference material that also answers why — why is this option deprecated, what trap does this flag avoid. Each cheatsheet pairs a high-density quick-scan layout with inline notes, warnings, and links to canonical specs.

Mechanics

Every page is fully responsive (1 / 2 / 3 columns by viewport), with a sticky table-of-contents bar on desktop and a hamburger drawer on mobile. They share styles.css + app.js (sibling files in this folder) — no build step, no framework, no dependencies. Print works fine too.

TS TypeScript 6.0 cheatsheet

23-section reference for modern TypeScript, with the version verified live from npm. Every section heading links directly to the corresponding chapter of the TypeScript Handbook.

  • Primitives, objects, arrays, tuples, functions, generics, classes, modules
  • Type vs interface comparison table
  • Discriminated unions, conditional types, mapped types, template literal types
  • All 20+ built-in utility types tabulated (Partial, Pick, Omit, ReturnType, NoInfer, …)
  • using resource management, stage-3 decorators, async / Promise types
  • Strict tsconfig family + a Node 24 / TS 6 baseline config
  • Version-by-version changelog with 5.0+ / 5.2+ / 5.5+ feature tags inline, each linking to that release's notes page
Open cheatsheet →

curl curl cheatsheet

Comprehensive recipes for the URL-transfer swiss-army-knife — 16 sections covering everything from "show only response headers" to "send mail over SMTP+TLS." Every flag carries a brief inline comment so you don't need a second tab open.

  • HTTP methods, headers (send / remove / override), body forms (JSON, urlencoded, multipart)
  • Auth: Basic, Bearer, Digest, NTLM, Negotiate, AWS SigV4, .netrc
  • TLS, mTLS, custom CA bundles, pinning, version pinning
  • Proxies (HTTP / HTTPS / SOCKS5), --resolve, --connect-to, Unix sockets
  • Retries, timeouts, -w timing variables, full timing breakdown recipe
  • Cookies, sessions, parallel transfers (-Z), URL globbing
  • Non-HTTP protocols: FTP, SFTP, SMTP, IMAP, WebSocket, MQTT, LDAP
  • Recipes: token-aware calls, health checks, OAuth2, GitHub API, TLS keylog capture
Open cheatsheet →

ffmpeg ffmpeg / ffprobe cheatsheet

Comprehensive recipes for transcoding, filtering, and inspecting media — 15 sections from a simple format conversion to two-pass loudness normalization and HLS segmenting. Paired with ffprobe throughout for stream inspection and scripting.

  • Codecs & containers, CRF/two-pass transcoding quality control
  • Resize, crop, pad, trim, concatenate (matching + mismatched codecs)
  • Filter graphs (-filter_complex), overlays, drawtext
  • Audio extraction/replacement, loudnorm two-pass normalization
  • Subtitles: burn-in vs. soft-mux, extraction
  • Thumbnails, interval frame extraction, two-pass palette GIFs
  • Streaming: HLS, DASH, RTMP push
  • Hardware acceleration: VideoToolbox (verified), NVENC & VAAPI (docs-only)
  • ffprobe: stream/format inspection, JSON output, batch & scripting recipes
Open cheatsheet →

Caddy Caddy Docker Proxy cheatsheet

Label-driven reverse proxy for a multi-app homelab — 15 sections from "why a shared Caddyfile doesn't scale" to a real zero-downtime cutover script. Mined from a deployed multi-app setup; hostnames genericized.

  • Architecture: label-reading container, docker-socket mount, shared proxy network
  • Custom image via xcaddy, standalone compose service, fallback Caddyfile
  • Basic single-app labels, multi-hostname labels on one container (caddy_0/caddy_1)
  • Multi-upstream + health checks for zero-downtime rolling restarts
  • Traps: the force_ssl 301 loop, docker restart vs. caddy reload, the import bind-mount crash
  • What disappears from app CI once you're on this pattern
  • Full zero-downtime cutover procedure with a confirmation gate
  • Troubleshooting checklist
Open cheatsheet →

Principles Production Delivery Principles

Lessons from running a real production system, enshrined in tooling rather than just documentation — shift-left CI, safe migrations, and a worked flaky-test root-cause story.

  • Shift-left: why "CI passed" isn't sufficient, and how to close the loop locally
  • Pre-deploy verification checklist (build → boot → infra-config validity)
  • Expand/contract migration pattern, with a do's/don'ts table
  • Feature-flag lifecycle: develop → deploy → validate → release → contract
  • Test isolation — a worked ETS cross-contamination root-cause example
  • Root cause vs. workarounds, with a concrete anti-pattern list
Open guide →

How it's built

node-ts-test/
└── cheatsheets/
    ├── cheatsheets-index.html  ← you are here
    ├── typescript-cheatsheet.html
    ├── curl-cheatsheet.html
    ├── ffmpeg-cheatsheet.html
    ├── caddy-docker-proxy-cheatsheet.html
    ├── production-delivery-principles.html
    ├── styles.css              ← shared Rose Pine, responsive grid, burger menu
    └── app.js                  ← shared drawer toggle
  • Each cheatsheet links styles.css and app.js (same directory)
  • Only file-specific syntax-token colours stay inline (each page picks its own subset of the eight Rose Pine roles — overlapping class names so they have to remain per-file)
  • Responsive 1 / 2 / 3-col grid driven by @media at 760 px and 1200 px
  • max-width: min(2400px, 96vw) lets cards fill ultrawide monitors without absurd line lengths
  • Mobile (< 760 px) gets a hamburger drawer with full ARIA states, scroll lock, Escape-to-close, viewport-resize auto-dismiss

Further reading — TypeScript

  • TypeScript Handbook typescriptlang.org The canonical learning resource. Start at Everyday Types if you're new; the cheatsheet links to specific chapters from every section heading.
  • TypeScript release notes index typescriptlang.org Every version's changelog. The cheatsheet's "What's new" section links to 5.0 → 6.0 individually.
  • tsconfig reference typescriptlang.org Every compiler option, searchable. The single most useful TS page in daily work.
  • Utility types reference typescriptlang.org Every built-in: Partial, Pick, Omit, ReturnType, NoInfer, …
  • TypeScript on GitHub github.com The compiler's source, issue tracker, and wiki — including the "What's new" page that often gets updated before the handbook does.

Further reading — curl

  • curl manpage (online) curl.se Every flag, every option, every example. The cheatsheet covers the 95 % you'll reach for; the manpage covers the rest.
  • curl documentation hub curl.se Tutorials, tooling docs (libcurl, curl-config), security notes, and the everything-curl book.
  • Everything curl — the book curl.dev Free, online, comprehensive. Hundreds of pages on how curl and libcurl work. By Daniel Stenberg himself.
  • Local: man curl terminal Always available, even offline. The cheatsheet is a useful 30-second scan layer on top.

Further reading — ffmpeg

  • FFmpeg documentation hub ffmpeg.org Entry point to the full ffmpeg/ffprobe/ffplay manuals, the filters reference, and the codecs/formats guides.
  • Filters reference ffmpeg.org Every filter (scale, crop, loudnorm, palettegen/paletteuse, …) with full option lists.
  • Formats & muxers reference ffmpeg.org Container/muxer options — the concat demuxer, HLS/DASH segment muxers, and everything else format-side.
  • Using FFmpeg with NVIDIA GPU acceleration nvidia.com NVENC/NVDEC flags this cheatsheet's hardware-acceleration section couldn't verify locally (no Nvidia GPU on hand).

Further reading — Caddy

  • caddy-docker-proxy github.com The plugin this whole cheatsheet is about — label syntax reference, full README, issue tracker for edge cases.
  • Caddy documentation caddyserver.com The underlying reverse proxy / TLS engine. reverse_proxy's full directive reference (health checks, load-balancing policies) lives here.
  • xcaddy github.com Builds custom Caddy binaries with extra plugins — how the DNS-01 challenge module gets added to the base image.

Further reading — Delivery Principles

  • Trunk-based development trunkbaseddevelopment.com The branching model shift-left CI and small, frequent deploys both assume.
  • Feature Toggles (Martin Fowler) martinfowler.com The canonical write-up on flag categories and lifecycle — the develop → deploy → validate → release → contract stages in this guide are one concrete instance of it.

Tools & sandboxes

  • TypeScript Playground typescriptlang.org Browser sandbox for trying things out. Type inspection, error messages, and JS emit side-by-side. Quick-try anything from the TS cheatsheet without opening a project.
  • httpbin.org httpbin.org Endpoints that echo back your request — great for poking at the curl examples without standing up a server. /anything, /headers, /cookies, /delay/N, …
  • webhook.site reqbin.com Alternative request inspector / public test endpoints. Useful when httpbin is rate-limiting.
  • Local: ffmpeg -filters / ffmpeg -encoders terminal Lists exactly what your local build supports — always check before assuming a filter or hardware encoder is available.

Credits

  • Theme: Rose Pine — palette by Emilia Dunfelt & contributors. Used in its "Main" variant with the standard role mapping (love, gold, rose, pine, foam, iris).
  • Fonts: system UI sans for prose; JetBrains Mono / Fira Code / SF Mono / Menlo for code blocks.
  • Validation: each cheatsheet was checked with Python's html.parser for unclosed tags. The ffmpeg/ffprobe cheatsheet's commands were additionally run against a real local ffmpeg build (Apple Silicon) rather than authored from memory — subtitle burn-in/drawtext (unsupported by this build), RTMP push/fswatch (no live endpoint or tool on hand), and NVENC/VAAPI (no matching GPU) are the exceptions, sourced from official docs and labeled documentation-only in that page. The Caddy Docker Proxy and Production Delivery Principles guides are drawn directly from a real deployed multi-app setup's current Dockerfile, compose files, Caddyfile, and cutover script — not authored from memory — with hostnames and repo paths genericized for publication.
Looking for the JS event-loop deep-dives? They're in the event-loop series index — three sequential explainers on the call stack / microtask / macrotask interplay and migrating from .then chains to await.