A browser-based file conversion bench that runs entirely client-side.
No server, no build step, no upload. Just open index.html in a browser.
Open index.html directly in a browser. No install or toolchain is required.
The project uses plain <script src="..."> files, so it works from file://.
- Image conversion: PNG/JPEG/WEBP/AVIF/BMP/ICO plus scale, rotate, flip, and exact size controls.
- Audio conversion: browser-decoded input → WAV output.
- Data conversion: JSON, NDJSON, CSV, TSV, XML, YAML.
- PDF tools: images → PDF, PDF → images, merge PDFs, split PDFs, extract PDF text.
- Archive tools: create ZIP, extract ZIP, gzip a file, ungzip a file.
index.html— UI layout, tool panels, and library script includes.css/style.css— shared app styles, theme switching, and custom dropdown styling.js/core.js— shared helpers, tab switching, theme loading, drag-and-drop setup.js/images.js— image conversion logic, canvas rendering, BMP/ICO encoding.js/audio.js— audio decoding + WAV export.js/data.js— data parsing and serialization.js/pdf.js— PDF rendering, image export, merging, splitting, and text extraction.js/archive.js— ZIP and GZIP compression/decompression.
Loaded from CDNJS in index.html:
JSZip— ZIP creation and extraction.jsPDF— PDF generation from images.pdf.js— PDF page rendering and text extraction.pdf-lib— PDF merging and splitting.js-yaml— YAML parsing and serialization.pako— gzip/gunzip.
- The app is built to work as a static site.
- If you later add ES module syntax (
import/export), a local server will be required. - Video transcoding is not included.
This project is ready for static hosting. Recommended options:
- GitHub Pages: enable Pages on the
mainbranch and use the repository root. - Netlify / Vercel: connect the repo and publish the root folder.
- Any static host that serves
index.html,css/style.css, andjs/*.js.
- Push your repo to GitHub.
- Open the repository settings and enable GitHub Pages.
- Choose the
mainbranch and/ (root)as the source. - Your site will be available at
https://<username>.github.io/<repo-name>/.
Because this app uses plain static assets and CDN-hosted libraries, no build step is needed for publishing.