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-AfterandX-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-AfterandX-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.
