launchtimer: Embeddable Countdown for Product Hunt Launches
SvelteKit static export needed a launch countdown with timezone display and localStorage dismiss — 95 lines, embed via iframe or snippet.
Copy-paste vanilla JS tools — formatters, converters, calculators. No backend required.
SvelteKit static export needed a launch countdown with timezone display and localStorage dismiss — 95 lines, embed via iframe or snippet.
Travel blog needed km/mi, °C/°F, kg/lb in one static URL. Tabbed converter with shared engine and localStorage last category.
Team shared passwords in Slack. Built a generator using crypto.getRandomValues with zxcvbn-style strength scoring — no npm.
Real estate landing page needed monthly payment + amortization without embedding a third-party iframe. Pure math, printable table.
Client wanted a no-backend BMI + Navy body fat widget for AdSense traffic. Full form math, input validation, and metric/imperial toggle.
Debugging webhook logs across UTC and local. Converter plus localStorage favorites for the five API environments I juggle daily.
HR workflow needed plain text from PDFs on a locked-down laptop. pdf.js in a static page — page-by-page extraction with progress bar.
Freelance landing page needed hex ↔ rgb ↔ hsl with live preview. One input field, three outputs, clipboard copy — 75 lines of JS.
Event flyer needed WiFi QR codes. Embedded a 4KB QR library via CDN with offline fallback table — full vanilla page.
Blog contributors uploaded 8MB phone photos. Canvas-based compressor cut uploads 85% with quality slider and max-width — no server.
Debugging UTM links for a static newsletter. Built encode/decode with component vs full URI modes and a live query-string parser.
Needed Base64 for a static site's inline SVG fallback. Built encode/decode with file picker, UTF-8 safety, and the atob Unicode crash fix.
Meta description counter for a static blog editor. Grapheme-aware counting fixed the emoji length mismatch that cost me a rejected guest post.
Freelance API integration needed batch field renames. Built a 90-line case converter that handles edge cases like HTTPHeader and iOS-style acronyms.
Built a browser JSON formatter after every online tool choked on a minified API dump. Full vanilla JS, syntax validation, and the parse errors that actually matter.