Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# AI model files are binary: never touch their line endings.
*.onnx binary
*.onnx.part* binary
*.wasm binary
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
<h3 align="center">Free, private tools for PDF, images, audio, Word, Excel and PowerPoint that never see your files.</h3>

<p align="center">
64 tools — compress, convert, edit, redact, merge, split, cut, OCR, transcribe — running <strong>100% in your browser</strong>.<br>
65 tools — compress, convert, edit, redact, remove backgrounds, merge, split, cut, OCR, transcribe — running <strong>100% in your browser</strong>.<br>
<strong>No uploads. No sign-up. No watermark. No limits. Free forever. 16 languages.</strong>
</p>

<p align="center"><sub>Open source. Edits PDF text in the file’s own font, transcribes audio with Whisper on your device, and never hands your files to anyone.</sub></p>

<p align="center">
<a href="https://fizzdoc.com"><strong>Open Fizzdoc →</strong></a> &nbsp;·&nbsp;
<a href="#-all-64-tools"><strong>All tools</strong></a> &nbsp;·&nbsp;
<a href="#-all-65-tools"><strong>All tools</strong></a> &nbsp;·&nbsp;
<a href="#-how-it-works"><strong>How it works</strong></a> &nbsp;·&nbsp;
<a href="CONTRIBUTING.md"><strong>Contribute</strong></a>
</p>
Expand All @@ -27,7 +27,7 @@
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-22c55e?style=flat-square" alt="Apache-2.0 license"></a>
<img src="https://img.shields.io/badge/bytes%20uploaded-0-16a34a?style=flat-square" alt="0 bytes uploaded">
<img src="https://img.shields.io/badge/price-free%20forever-16a34a?style=flat-square" alt="Free forever">
<img src="https://img.shields.io/badge/tools-64-e5322d?style=flat-square" alt="64 tools">
<img src="https://img.shields.io/badge/tools-65-e5322d?style=flat-square" alt="65 tools">
<img src="https://img.shields.io/badge/languages-16-2f6fdb?style=flat-square" alt="16 languages">
<a href="CONTRIBUTING.md"><img src="https://img.shields.io/badge/PRs-welcome-8b5cf6?style=flat-square" alt="PRs welcome"></a>
</p>
Expand All @@ -53,7 +53,7 @@ Most free online file tools ask you to upload your contract, payslip, bank state
| What you get | |
|---|---|
| 🔒 **Your file stays on your device** | No upload endpoint exists, and the CSP blocks connections to any other site |
| 🧰 **64 tools in one place** | PDF, Word, Excel, PowerPoint, images, audio, JSON and Mermaid |
| 🧰 **65 tools in one place** | PDF, Word, Excel, PowerPoint, images, audio, JSON and Mermaid |
| ✏️ **Edit PDF text in its own font** | Changed lines are rewritten inside the PDF with its embedded font, size and colour |
| 🎙️ **Speech to text on the device** | Whisper runs in the browser: TXT, SRT or VTT, offline after a one-time download |
| 🆓 **Free forever** | No account, no daily limits, no watermark, no premium tier |
Expand Down Expand Up @@ -108,14 +108,15 @@ Most free online file tools ask you to upload your contract, payslip, bank state
| **Edit text** in a PDF, or **black out** personal details for good | [Edit PDF](https://fizzdoc.com/edit-pdf/) · [Redact PDF](https://fizzdoc.com/redact-pdf/) |
| Turn a PDF into an **editable Word** file, or Word into PDF | [PDF to Word](https://fizzdoc.com/pdf-to-word/) · [Word to PDF](https://fizzdoc.com/word-to-pdf/) |
| **Remove the password** from a bank statement, or add one | [Unlock PDF](https://fizzdoc.com/unlock-pdf/) · [Protect PDF](https://fizzdoc.com/protect-pdf/) |
| **Remove the background** from a photo, or put white, a colour, a blur or another photo behind, at full resolution | [Remove Background](https://fizzdoc.com/remove-background/) |
| **Copy text** from a scanned PDF, a photo or a screenshot | [OCR PDF](https://fizzdoc.com/ocr-pdf/) · [Image to Text](https://fizzdoc.com/image-to-text/) |
| Combine **photos or screenshots into one PDF** | [JPG to PDF](https://fizzdoc.com/jpg-to-pdf/) · [PNG to PDF](https://fizzdoc.com/png-to-pdf/) |
| Convert **everyday formats**: PNG ↔ JPG, WebP → JPG, Excel ↔ CSV | [Convert Image](https://fizzdoc.com/convert-image/) · [Excel to CSV](https://fizzdoc.com/excel-to-csv/) · [CSV to Excel](https://fizzdoc.com/csv-to-excel/) |
| Turn a spreadsheet into **JSON for an API**, or open JSON in Excel | [Excel to JSON](https://fizzdoc.com/excel-to-json/) · [JSON to Excel](https://fizzdoc.com/json-to-excel/) |
| Export a **Mermaid diagram as PNG or SVG** for slides, docs or a README | [Mermaid to PNG](https://fizzdoc.com/mermaid-to-png/) · [Mermaid to SVG](https://fizzdoc.com/mermaid-to-svg/) |
| **Remove hidden author and company names** before sharing an Office file or PDF | [Word](https://fizzdoc.com/remove-word-metadata/) · [Excel](https://fizzdoc.com/remove-excel-metadata/) · [PowerPoint](https://fizzdoc.com/remove-powerpoint-metadata/) · [PDF](https://fizzdoc.com/remove-pdf-metadata/) |

## 🧰 All 64 tools
## 🧰 All 65 tools

| Format | Tools |
|---|---|
Expand All @@ -124,7 +125,7 @@ Most free online file tools ask you to upload your contract, payslip, bank state
| **Word** | [Word → PDF](https://fizzdoc.com/word-to-pdf/) · [Compress](https://fizzdoc.com/compress-word/) · [Remove metadata](https://fizzdoc.com/remove-word-metadata/) · [Extract images](https://fizzdoc.com/extract-images-from-word/) |
| **Excel** | [Excel → CSV](https://fizzdoc.com/excel-to-csv/) · [CSV → Excel](https://fizzdoc.com/csv-to-excel/) · [Excel → JSON](https://fizzdoc.com/excel-to-json/) · [JSON → Excel](https://fizzdoc.com/json-to-excel/) · [Compress](https://fizzdoc.com/compress-excel/) · [Remove metadata](https://fizzdoc.com/remove-excel-metadata/) · [Extract images](https://fizzdoc.com/extract-images-from-excel/) |
| **PowerPoint** | [Compress](https://fizzdoc.com/compress-powerpoint/) · [Remove metadata](https://fizzdoc.com/remove-powerpoint-metadata/) · [Extract images](https://fizzdoc.com/extract-images-from-powerpoint/) |
| **Images** | [Compress](https://fizzdoc.com/compress-image/) (to [20 KB](https://fizzdoc.com/compress-image-to-20kb/), [50 KB](https://fizzdoc.com/compress-image-to-50kb/), [100 KB](https://fizzdoc.com/compress-image-to-100kb/) for forms) · [Resize](https://fizzdoc.com/resize-image/) (larger or smaller) · [Convert](https://fizzdoc.com/convert-image/) · [PNG → JPG](https://fizzdoc.com/png-to-jpg/) · [JPG → PNG](https://fizzdoc.com/jpg-to-png/) · [WebP → JPG](https://fizzdoc.com/webp-to-jpg/) · [JPG → WebP](https://fizzdoc.com/jpg-to-webp/) · [Image → Text](https://fizzdoc.com/image-to-text/) (select text right on the photo, like Live Text) · [Mermaid → PNG](https://fizzdoc.com/mermaid-to-png/) · [Mermaid → SVG](https://fizzdoc.com/mermaid-to-svg/) (diagrams from code, with a preview and ready-to-use examples) |
| **Images** | [Remove background](https://fizzdoc.com/remove-background/) (AI on your device, full resolution) · [Compress](https://fizzdoc.com/compress-image/) (to [20 KB](https://fizzdoc.com/compress-image-to-20kb/), [50 KB](https://fizzdoc.com/compress-image-to-50kb/), [100 KB](https://fizzdoc.com/compress-image-to-100kb/) for forms) · [Resize](https://fizzdoc.com/resize-image/) (larger or smaller) · [Convert](https://fizzdoc.com/convert-image/) · [PNG → JPG](https://fizzdoc.com/png-to-jpg/) · [JPG → PNG](https://fizzdoc.com/jpg-to-png/) · [WebP → JPG](https://fizzdoc.com/webp-to-jpg/) · [JPG → WebP](https://fizzdoc.com/jpg-to-webp/) · [Image → Text](https://fizzdoc.com/image-to-text/) (select text right on the photo, like Live Text) · [Mermaid → PNG](https://fizzdoc.com/mermaid-to-png/) · [Mermaid → SVG](https://fizzdoc.com/mermaid-to-svg/) (diagrams from code, with a preview and ready-to-use examples) |
| **Audio** | [Cut & Split Audio](https://fizzdoc.com/split-audio/) (trim or split an MP3/M4A on a waveform, preview every part) · [Merge Audio](https://fizzdoc.com/merge-audio/) (listen before you download) — no re-encoding, so no quality loss · [Audio to Text](https://fizzdoc.com/audio-to-text/) · [MP3 to Text](https://fizzdoc.com/mp3-to-text/) · [Video to Text](https://fizzdoc.com/video-to-text/) · [Subtitle Generator](https://fizzdoc.com/subtitle-generator/) (SRT/VTT) — speech to text with OpenAI's Whisper running on your device; the model downloads once, then works offline |

**Google Docs, Sheets and Slides** work too: download as .docx / .xlsx / .pptx and use the matching tool. Nothing is sent to Google.
Expand Down Expand Up @@ -289,6 +290,10 @@ Fizzdoc would not exist without these open-source projects and the people who ma
| [pdf.js](https://github.com/mozilla/pdf.js) | Renders pages, extracts text, powers the editor | [Mozilla](https://github.com/mozilla) and contributors |
| [pdf-lib](https://github.com/Hopding/pdf-lib) | Writes and edits PDFs, stamps, the OCR text layer | [@Hopding](https://github.com/Hopding) |
| [Tesseract](https://github.com/tesseract-ocr/tesseract) and [tesseract.js](https://github.com/naptha/tesseract.js) | Text recognition, compiled to WebAssembly | [tesseract-ocr](https://github.com/tesseract-ocr) and [naptha](https://github.com/naptha) |
| [BiRefNet](https://github.com/ZhengPeng7/BiRefNet) | The AI model that removes backgrounds (BiRefNet-lite, 512 px export by [studioludens](https://huggingface.co/studioludens/birefnet-lite-512)) | [@ZhengPeng7](https://github.com/ZhengPeng7) and co-authors |
| [U²-Net](https://github.com/xuebinqin/U-2-Net) | The light background model for phones with little memory | [@xuebinqin](https://github.com/xuebinqin) |
| [ONNX Runtime Web](https://github.com/microsoft/onnxruntime) | Runs the AI models in the browser, on the GPU (WebGPU) or CPU | [Microsoft](https://github.com/microsoft) and contributors |
| [Whisper](https://github.com/openai/whisper) and [Transformers.js](https://github.com/huggingface/transformers.js) | Speech to text, on the device | [OpenAI](https://github.com/openai) and [Hugging Face](https://github.com/huggingface) |
| [fflate](https://github.com/101arrowz/fflate) | Reads and writes Word, Excel, PowerPoint and ZIP files | [@101arrowz](https://github.com/101arrowz) |
| [Inter](https://github.com/rsms/inter) | The typeface | [@rsms](https://github.com/rsms) |
| [Archify](https://github.com/tt-a1i/archify) | Generates the interactive architecture map | [@tt-a1i](https://github.com/tt-a1i) |
Expand Down
1 change: 1 addition & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ The deployed site ships these third-party components in `assets/`:
| English language data (@tesseract.js-data/eng, tessdata 4.0.0 best_int) | Apache-2.0 data, MIT package | https://github.com/tesseract-ocr/tessdata |
| Mermaid 12.0.0 (Mermaid to Image page only), bundling d3, dagre-d3-es, cytoscape, chevrotain, DOMPurify, KaTeX, marked, roughjs, dayjs, lodash-es, stylis, khroma, elkjs and others | MIT, ISC, BSD-3-Clause, Apache-2.0, Unlicense; DOMPurify used under Apache-2.0 (dual MPL-2.0 OR Apache-2.0); elkjs EPL-2.0, source at https://github.com/kieler/elkjs | https://github.com/mermaid-js/mermaid |
| Whisper tiny speech model (OpenAI; ONNX conversion by onnx-community) and Transformers.js 4.3.0 with ONNX Runtime Web (Audio to Text pages only), bundling @huggingface/jinja, @huggingface/tokenizers, protobufjs, flatbuffers, long, guid-typescript, platform | Apache-2.0 (model, Transformers.js, tokenizers, flatbuffers, long); MIT (ONNX Runtime, jinja, platform); BSD-3-Clause (protobufjs); ISC (guid-typescript) | https://github.com/openai/whisper, https://github.com/huggingface/transformers.js, https://github.com/microsoft/onnxruntime |
| BiRefNet-lite background model (ZhengPeng7/BiRefNet; 512 px ONNX export by studioludens, weights stored as 16-bit) and U²-Net small (xuebinqin/U-2-Net; ONNX by BritishWerewolf), run with ONNX Runtime Web's WebGPU build (Remove Background page only) | MIT (BiRefNet, ONNX Runtime); Apache-2.0 (U²-Net) | https://github.com/ZhengPeng7/BiRefNet, https://github.com/xuebinqin/U-2-Net, https://github.com/microsoft/onnxruntime |
| Inter typeface (@fontsource-variable/inter) | SIL Open Font License 1.1 | https://rsms.me/inter |
| Archify (generator and runtime of `public/architecture.html`) | MIT | https://github.com/tt-a1i/archify |
| JetBrains Mono typeface (embedded in `public/architecture.html`) | SIL Open Font License 1.1 | https://github.com/JetBrains/JetBrainsMono |
Expand Down
1 change: 1 addition & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ sequenceDiagram
| `src/engine/office.ts` | Word → print HTML, PDF → Word, PDF → PowerPoint | pdf.js, fflate |
| `src/engine/ocr.ts` | English OCR for images and searchable PDFs | tesseract.js (self-hosted via `vite-plugins/ocr-assets.ts`), pdf-lib |
| `src/engine/pdf-text.ts` | Rewrites changed lines inside the page content stream with the PDF's own font | pdf-lib |
| `src/engine/background.ts`, `matte.ts` | Remove Background: BiRefNet-lite (512 px) in a worker on WebGPU or the CPU, U²-Net small for low-memory phones; the mask is fitted to the full-size photo with a fast guided filter and edge colours are cleaned (blur-fusion), so output keeps the photo's resolution | ONNX Runtime Web |
| `src/engine/transcribe.ts` | Speech to text, SRT and VTT with Whisper in a worker; model cached once in Cache Storage | transformers.js, ONNX Runtime |
| `src/tools/edit-pdf.ts` | In-page PDF editor: change text, add text, white-out | pdf.js, pdf-lib, `pdf-text.ts` |
| `src/tools/ocr-viewer.ts` | Image with selectable recognized text (Live Text style) | – |
Expand Down
18 changes: 18 additions & 0 deletions public/bg/birefnet-lite/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"source": "https://huggingface.co/studioludens/birefnet-lite-512/tree/4a3c40c36c94093cc1e724d9ea428b8fa4b57dc7",
"license": "MIT",
"files": [
{
"path": "model.onnx",
"size": 102785931,
"sha256": "9a62e3bee0d30df4686bc3d5e66011b8514ac4bf3e4aa39d0cce5175efb7636d",
"parts": [
"model.onnx.part0",
"model.onnx.part1",
"model.onnx.part2",
"model.onnx.part3",
"model.onnx.part4"
]
}
]
}
Loading
Loading