Skip to main content
Support

Browse by category

All categories
Home

Changelog

Every feature, fix, and improvement — grouped by area. Click any category to expand.

Loft Tools site 1
changed Video tools category — text-tools retired, audio tools culled, SEO trailing-slash fix

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.

General 1
added Gerber Viewer — open PCB files in your browser

First entry in the Open Anything category. Drop a fab archive (.zip / .tar / .tar.gz / loose .gbr / .drl), inspect every layer, measure traces — without installing CAM software.

  • Archives: zip, tar, and tar.gz auto-detected by magic bytes, extracted client-side via fflate + nanotar. Loose Gerber and Excellon files land directly.
  • Layer auto-detection: whats-that-gerber classifies each file (top copper, bottom copper, soldermask, silkscreen, drill, outline). Manual override lives on each layer row when the heuristic guesses wrong.
  • Realistic PCB palette: green soldermask, copper-tone traces, white silkscreen, dark drill — the colours hardware engineers expect, applied via composite blend so soldermask actually tints copper underneath. Per-layer color overrides via inline swatch picker.
  • Three-pane CAM350 layout: layer rail left (drag-reorder, visibility, color, kind), canvas center, inspector accordion right (Job info, Layer properties, Aperture table, Measurements, View, About).
  • Measure tool: two clicks → distance with snap-to-pad. Live preview line shows running distance before commit. Pad-center snap powered by an rbush spatial index per layer, built lazily on first hover.
  • Status bar (CAM350 / GerbView convention): cursor X/Y leftmost, mode + active layer center, scale (px/mm) and "Local" trust pill right.
  • Aperture table: sorted by D-code with shape, size, and pad-flash hit count — matches Altium / KiCad GerbView.
  • Pan + zoom: wheel zoom, drag pan, fit-to-window, 1:1, mirror (bottom-side flip), 90° rotation. Auto-fit on first load using actual canvas dimensions.
  • Export: PNG snapshot, SVG (per-layer vector groups, opens in Illustrator / Figma / Inkscape), DXF (LINE / ARC entities for mechanical CAD).
  • URL fragment encoding: viewport, layer visibility, and tool mode round-trip through the hash so a snapshot is one copy-paste away. Nothing leaves the device.
  • Sample board bundled (CC0): one-click Try Demo to verify the pipeline before dropping a real fab output.

Phase C (CAM350 parity) shipped same day:

  • World View minimap floating in the canvas bottom-right with click-to-recenter — CAM350 / GerbView convention.
  • Test panel with Fab-readiness score (0..100, R/Y/G band) aggregating layer completeness, DRC violations, board-size sanity. Downloadable Drill CSV + Aperture CSV for fab quote requests. Layer-completeness checklist (top/bottom copper + soldermask both sides + top silk + outline + drill).
  • Drill table panel (separate from Aperture table — CAM350 / KiCad convention): Tool / Diameter / Hits sorted by tool number ascending.
  • Stack-up visualiser as a left-rail tab alongside Layers — vertical layer-order display with kind + side labels.
  • Command palette (⌘+/) with 20+ commands, fuzzy search, ↑↓ navigation, Enter-to-run. Industry-convention shortcut (Figma / Notion / Slack) — no browser conflict.
  • Find modal (⌘+F) accepting D-code (D11), refdes (U1), or coords (10, 12) in a single field — recenters viewport on the first hit.
  • Print snapshot — opens a fresh window with canvas + caption + auto-print + auto-close.
  • Job info enrichment: Perimeter (bbox-based) + Area + Copper area (sum of stroke length × width + pad bbox area) alongside existing Width / Height / Units.

v2 features shipped same day:

  • Realistic substrate: board area paints in soldermask green so bare-FR4 between traces reads as a real PCB. White drill holes punch through copper pads — JLCPCB / GC-Prevue rendering convention.
  • Industry-standard layer rail: top toolbar (All / Top / Bot / hide-all), per-row up/down reorder arrows, alt-click eye = solo, right-click for "Move to top / bottom" + Kind + Side override menus. Drag a file onto the rail itself = swap doc.
  • Trace-width probe: hover over a copper trace in Inspect mode → status bar reports the exact width.
  • DRC-lite with three fab presets (JLCPCB 2-layer, OSH Park 4-layer, IPC Class 2). Checks min trace width, min drill, min annular ring, copper-to-edge clearance. Click a violation row → viewport recenters on that location.
  • Pick-and-place / CPL overlay: drop a KiCad .pos, JLCPCB CPL, or Altium PnP CSV; component centroids render as cyan dots with rotation ticks + designator labels.
  • CAM350-style status bar: cursor X/Y leftmost, Mode + per-mode hint, active layer, scale (px/mm), Local trust pill right.
  • Industry-standard cursors: default (Select), grab (Pan / Space-down), crosshair (Measure), help (Inspect).
  • Cmd / Ctrl + wheel zoom (Figma / Acrobat / Altium convention) anchored on cursor position. Plain wheel no-op so accidental scrolls don't reframe the board. F or ⌘+0 fits to window. V / H / M / I switch modes.

Parser sits in a Web Worker — the main thread never blocks during a parse, and the heavy tracespace v4 + Node-stream shim load only on first drop. Lives at /tools/open-tools/gerber-viewer.

Gerber is a registered trademark of Ucamco NV. Loft Tools is an independent third-party viewer and is not affiliated with or endorsed by Ucamco.