Skip to content

Changelog

All notable changes to FileForge.

v1.0.0 — Beta launch

New features

Accounts

  • Sign up with email/password or Google.
  • Free tier: 5 conversions/day, 10 MB files, 24-hour retention.
  • Forge Pro ($8/mo): unlimited conversions, 500 MB files, 7-day retention, priority queue, bulk uploads, metadata preservation, and API access.

File conversion

  • Convert images (PNG, JPG, WebP), audio (MP3, WAV, OGG — FLAC, AAC, M4A on Pro), video (MP4, WebM — MOV, MKV on Pro), documents (PDF, DOCX, ODT, TXT, HTML, MD — DOC, RTF, XLSX, PPTX on Pro), and archives (ZIP, TAR, TAR.GZ — 7z on Pro).
  • Quality presets for every format pair — pick "Web", "High", or "Lossless" instead of tweaking codec flags.
  • Metadata stripped by default; Pro users can opt in to preserve EXIF, ID3, and document author fields.
  • Every upload scanned for malware; incompatible files are rejected before processing.

Bulk uploads

  • Pro users can submit up to 20 files at once, each with its own target format and preset.
  • Parallel uploads, per-file progress tracking, and partial-success handling (download what succeeded, retry what failed).

Web app

  • Dashboard with quota meter, recent activity, and quick actions.
  • Convert page: drag a file, pick a format, and download. Real-time progress bar.
  • History page: browse all past conversions with status pills, filters, and quick download/retry/cancel.
  • Files page: view, download, and delete your files before they auto-expire.
  • Settings page: manage your profile and API keys (Pro).

Public API

  • Programmatic access with personal ff_live_… API keys (Pro only).
  • Four scopes: convert:write, files:read, files:write, files:delete.
  • Full REST API: presign upload, finalize, convert, poll status, download output.
  • End-to-end examples in curl, Node.js, and Python.
  • Per-key rate limiting with clear Retry-After and X-RateLimit-* headers.

Improvements

  • Conversion progress updates live in the UI — no more refreshing the page.
  • Format picker is data-driven from the API, so new formats appear automatically.
  • History table shows a worker-type icon (image, audio, video, document, archive) next to each conversion for quick scanning.
  • Pricing page reflects all shipped features — no more "coming soon" markers.
  • Landing FAQ answers the most common security and API questions up front.
  • Docs site has local search across all pages.
  • Rate-limit responses now include Retry-After and X-RateLimit-* headers, and the web app surfaces a clear "try again in 30 seconds" toast instead of a generic error.
  • Maintenance windows are announced with a banner across the top of the app — and an admin reading the same banner sees a note that their own submissions still go through.
  • Friendlier 404 and error-recovery pages: when a route is missing or a render crashes, you get a branded recovery card with a "Try again" button instead of a stark default.
  • Keyboard navigation now starts with a "Skip to main content" link on every page, and the maintenance banner is announced to screen readers when it appears.

Other

  • Operational hardening: per-IP and per-user request rate limits on the App API, automatic cleanup of expired files, and a self-hosted Grafana view of conversion duration, retry rate, and rate-limit hits. None of this is user-visible directly; it just keeps the service responsive when load goes up.

Built solo on dedicated metal.