Two simultaneous changes: the tool catalog got a focused cut, and a long-standing SEO drag on every URL was fixed.
Catalog cuts
- Text-tools category retired. The remaining two tools (CSV-to-Table and Extract Emails) were AI-trivial — ChatGPT or Claude does either in seconds without you needing to leave the chat. Every existing
/tools/text-tools/* URL now redirects to the homepage.
- Media-tools renamed to Video Tools. Five audio utilities (Audio Pitch Changer, Audio Speed Changer, Audio Trimmer, Metronome, Tone Generator) were culled — practice utilities better served by dedicated apps. The three survivors all process video: Video Format Converter, Video Compressor, Remove Audio from Video. Each lives at
/tools/video-tools/<slug>/ now; the old /tools/media-tools/<slug>/ URLs 301 to the new ones automatically.
- Cooking — Altitude Baking Calculator removed. Two cooking tools remain: Sourdough Calculator and Canning Calculator.
- Dev / Image — 8 soft-archived tools fully retired. CSS / HTML / JS Minifiers, Markdown-to-HTML, Image Border Frame, Instagram Grid Splitter, Watermark Image, and Pan Size Converter were already hidden from navigation; their URLs now 301 to the homepage so search engines deindex them.
Net: 15 tools culled, total catalog down to 59 surviving tools — all of which are either file-aware (PDF, image, video, CAD) or formula-precise (cooking math, security).
SEO trailing-slash fix
Every URL on the site is served at /foo/bar/ (Astro's canonical form), but for months the sitemap and canonical tags were emitting the bare /foo/bar form. Bing Webmaster Tools was reporting "URL has redirect" on every single sitemap entry — a quiet crawl-budget bleed that affected ranking. Fixed across the sitemap generator, every canonical <link> tag, and the 24+ rules in _redirects so the bare form 301s straight to the slashed form instead of chaining through two hops.
Video tools — FFmpeg load fix
The Content-Security-Policy was tightened in May to drop unsafe-eval, on the assumption that FFmpeg-wasm used only WebAssembly.instantiate. That turned out to be wrong — FFmpeg's Emscripten glue uses dynamic Function() for codec dispatch on some audio/video paths, and the tighter CSP was throwing a runtime violation the moment you dropped a video. CSP restored to allow unsafe-eval (alongside the existing unsafe-inline, so no meaningful security regression). The three video tools convert again.
Force-refresh the site (Ctrl+Shift+R) if you previously saw the "Compiling or instantiating WebAssembly module violates [...] CSP" error — the PWA service worker caches the old headers.