kingrishabdugar/fizzdoc

Free, private PDF, image, audio, Word, Excel & PowerPoint tools that run 100% in your browser. Compress, convert, edit, redact, OCR, cut MP3, Excel↔JSON, Mermaid to PNG/SVG. No uploads, no sign-up, no watermark. Free forever · 64 tools · 16 languages.

HTML

19

190 commits

updated Oct 2, 2026

See the code

See what people are saying

SourceMessageScoreDate

built a document tool that runs fully in the browser. then it took 6 minutes on my own phone (r/SideProject)

I know, there are already a hundred document processing sites. Most of them upload your file to their server, do the job, and send it back. For an Aadhaar or a bank statement that always felt weird to me, when a phone can do the work itself. So I built one where nothing leaves your device. No…

1

Oct 3, 2026

README

Fizzdoc

Free, private tools for PDF, images, audio, Word, Excel and PowerPoint that never see your files.

64 tools — compress, convert, edit, redact, merge, split, cut, OCR, transcribe — running 100% in your browser.
No uploads. No sign-up. No watermark. No limits. Free forever. 16 languages.

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.

Open Fizzdoc →  ·  All tools  ·  How it works  ·  Contribute

GitHub stars Tests Apache-2.0 license 0 bytes uploaded Free forever 64 tools 16 languages PRs welcome

Website status Good first issues Tools wanted Last commit Hacktoberfest issues

Fizzdoc: private document tools in light and dark mode


✨ Why Fizzdoc

Most free online file tools ask you to upload your contract, payslip, bank statement, passport photo or voice recording to someone else's server. Fizzdoc doesn't have a server to upload to. Everything runs inside your browser tab with WebAssembly and JavaScript, and the page's Content Security Policy blocks it from connecting to any other site — you can check it yourself in the Network tab.

What you get
🔒 Your file stays on your deviceNo upload endpoint exists, and the CSP blocks connections to any other site
🧰 64 tools in one placePDF, Word, Excel, PowerPoint, images, audio, JSON and Mermaid
✏️ Edit PDF text in its own fontChanged lines are rewritten inside the PDF with its embedded font, size and colour
🎙️ Speech to text on the deviceWhisper runs in the browser: TXT, SRT or VTT, offline after a one-time download
🆓 Free foreverNo account, no daily limits, no watermark, no premium tier
🌍 16 languagesIncluding Hindi, Bengali, Marathi, Tamil and Telugu
📱 Nothing to installAny modern browser, on phones too
📖 Open sourceApache-2.0, every line on GitHub

Fizzdoc demo: compress, edit PDF text, select text in a photo with OCR, Hindi interface, dark mode

🎬 See it in action

✏️ Edit PDF text in place
Click any text and type. The line is rewritten in the PDF’s own font when it has those letters, and nothing is uploaded.

Editing PDF text directly on the page
🔍 Copy text from any photo
On-device OCR with Live Text-style selection, right on the image.

Selecting recognized text on an image
🧩 Merge, reorder, done
Drag to reorder. Forms and links survive; anything that can't is reported.

Merging and reordering PDFs
🌍 16 languages
Every page, tool and error message, from Hindi and Tamil to German and Vietnamese.

Fizzdoc in Hindi, Spanish, Tamil, German, Bengali and Vietnamese
I want to…Use
Get a photo or signature under 20 / 50 / 100 KB for an exam, job or government formCompress image to 20 KB · 50 KB · 100 KB
Compress images without losing quality, JPG, PNG or WebP, in bulkCompress Image
Cut an MP3, trim a song or make a ringtone, with no quality lossCut & Split Audio
Join MP3 or M4A files or voice notes into one trackMerge Audio
Turn a recording, voice note or video into text, privatelyAudio to Text
Make SRT subtitles for a video, without uploading itSubtitle Generator
Reduce PDF size for email or an upload portalCompress PDF
Edit text in a PDF, or black out personal details for goodEdit PDF · Redact PDF
Turn a PDF into an editable Word file, or Word into PDFPDF to Word · Word to PDF
Remove the password from a bank statement, or add oneUnlock PDF · Protect PDF
Copy text from a scanned PDF, a photo or a screenshotOCR PDF · Image to Text
Combine photos or screenshots into one PDFJPG to PDF · PNG to PDF
Convert everyday formats: PNG ↔ JPG, WebP → JPG, Excel ↔ CSVConvert Image · Excel to CSV · CSV to Excel
Turn a spreadsheet into JSON for an API, or open JSON in ExcelExcel to JSON · JSON to Excel
Export a Mermaid diagram as PNG or SVG for slides, docs or a READMEMermaid to PNG · Mermaid to SVG
Remove hidden author and company names before sharing an Office file or PDFWord · Excel · PowerPoint · PDF

🧰 All 64 tools

FormatTools
PDFEdit PDF (change text in place, in the PDF’s own font) · Redact (black out text for good) · Compress · Merge · Split · Extract pages · Reorder pages · Rotate · Delete pages · Page numbers · Watermark · Unlock (incl. Aadhaar, e-PAN, bank statements, ITR-V) · Protect (AES-256) · Remove metadata · OCR · PDF → Scanned PDF
PDF conversionsPDF → Word · PDF → PowerPoint · PDF → JPG · PDF → PNG · PDF → Text · PDF → Markdown · JPG → PDF · PNG → PDF · Text → PDF · Markdown → PDF
WordWord → PDF · Compress · Remove metadata · Extract images
ExcelExcel → CSV · CSV → Excel · Excel → JSON · JSON → Excel · Compress · Remove metadata · Extract images
PowerPointCompress · Remove metadata · Extract images
ImagesCompress (to 20 KB, 50 KB, 100 KB for forms) · Resize (larger or smaller) · Convert · PNG → JPG · JPG → PNG · WebP → JPG · JPG → WebP · Image → Text (select text right on the photo, like Live Text) · Mermaid → PNG · Mermaid → SVG (diagrams from code, with a preview and ready-to-use examples)
AudioCut & Split Audio (trim or split an MP3/M4A on a waveform, preview every part) · Merge Audio (listen before you download) — no re-encoding, so no quality loss · Audio to Text · MP3 to Text · Video to Text · 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.

Languages: English · हिन्दी · বাংলা · मराठी · தமிழ் · తెలుగు · Español · Português · Français · Deutsch · Italiano · Nederlands · Polski · Türkçe · Bahasa Indonesia · Tiếng Việt — add yours.

🤖 Use it from AI agents (MCP)

Fizzdoc also runs as a local MCP server, so Claude Code, Codex, Claude Desktop, Cursor and other AI agents can merge, split, rotate, protect or unlock PDFs and trim, split or join MP3/M4A on your machine, with nothing uploaded.

claude mcp add fizzdoc -- npx -y fizzdoc-mcp

Setup for Codex and other clients, and the full tool list: mcp/README.md.

🔒 Private by design — verify it yourself

Safe for bank statements, ID cards, payslips, medical records and client files, because:

  • No uploads, ever. There is no upload endpoint and no backend that could receive a file.
  • The browser enforces it. Every page ships a Content Security Policy (connect-src 'self') that blocks connections to any other site.
  • No account, no cookies, no analytics, no ads, no trackers. The only things stored are your theme and whether you've seen the language tip.
  • Nothing is kept. Close the tab and your file, passwords and results are gone.

Check it yourself:

  1. Open any tool, then your browser's developer tools → Network.
  2. Run a job.
  3. You'll see the app's own files load, and no request carrying your document.

The test suite does the same in real Chromium on every commit: it runs real jobs (merge, edit, OCR and more) and fails if any request goes to another origin; the merge test also fails on any request that isn't a plain GET or that carries a body. The core PDF jobs (merge, split, rotate, delete, protect, unlock) run qpdf in a disposable Web Worker that is terminated afterwards, taking your file, passwords and memory with it.

Your PDF stays intact

Most browser PDF tools copy pages with a library that silently drops bookmarks, forms and links. Fizzdoc's core PDF tools use qpdf compiled to WebAssembly, which rewrites the document structure instead:

MergeSplit / deleteRotate
Form fields✅ from every file✅ removed cleanly with their pages✅
Internal links✅ retargeted✅✅
Bookmarks✅ first file · ⚠️ warns for later files✅ · ⚠️ warns if a target page was removed✅
Page qualityLosslessLosslessLossless

When something genuinely can't be carried over (a digital signature, accessibility tags), Fizzdoc tells you instead of dropping it silently.

⚙️ How it works

Fizzdoc architecture: a build step prerenders static pages to Cloudflare Pages; in the browser tab, the page controller hands files to the qpdf worker, pdf.js / pdf-lib / fflate, the OCR engine and the Whisper speech worker, and the result is saved straight back to the visitor's device

  • Static site, zero backend. Nothing to scale, nothing to breach, nothing to pay for.
  • Lazy engines. First load is about 15 KB of gzipped app code; each engine, including the Whisper speech model, downloads only when a tool needs it.
  • One registry drives everything. Add a tool in src/site.ts and its page, SEO tags, sitemap entry and footer link appear in all 16 languages.

Explore the interactive architecture map or read docs/ARCHITECTURE.md.

❓ FAQ

Is it really private? How can I check?

Yes. There is no server that receives files: the site is static, and every page ships a Content Security Policy that only allows connections to its own origin. Open DevTools → Network, run any tool, and you'll see no request carrying your document. The test suite fails if one ever appears.

Is it really free forever? What's the catch?

There isn't one. Your browser does the work, so Fizzdoc is just static files that cost almost nothing to host — there are no servers to pay for. No account, no daily limit, no watermark, no ads, no premium tier. And it's open source under Apache-2.0, so anyone can run their own copy.

Does it work offline or on a phone?

It works in any modern browser on phones, tablets and desktops. An installable offline app is on the roadmap.

What doesn't it do (yet)?

OCR is English-only for now, speech to text works best on clear English, audio tools handle MP3 and M4A only, and PowerPoint → PDF and legacy .doc/.xls/.ppt aren't supported. Edit PDF can only use letters the PDF's font already contains; other lines are covered and redrawn in a standard font, so to hide text for good use Redact PDF. See the roadmap below.

🚀 Run it locally

Open in GitHub Codespaces

Or on your machine:

git clone https://github.com/kingrishabdugar/fizzdoc.git
cd fizzdoc
npm install
npm run dev          # http://localhost:5173
npm run check        # typecheck + unit tests
npm run test:e2e     # production build + real-browser tests
npm run build        # static site in dist/ — deploy anywhere

Requires Node 22+. Deploys as plain static files to Cloudflare Pages, Netlify, GitHub Pages or any web server.

🤝 Contributing

Fizzdoc is built to be easy to contribute to — you don't need to know anything about PDFs to help.

  • 🌍 Translate — add or improve a language by editing one JSON file. How →
  • 🧰 Add a tool — a new tool is one registry entry, one engine function and a test. How →
  • 🎃 Good first issues — issues labelled good first issue are scoped and ready to pick up, all year round. Guidelines →
  • 🐛 Fix a bug — every issue labelled good first issue is scoped for a first PR.
  • 💡 Ideas — open a feature request for the tool you wish existed.

Read CONTRIBUTING.md to get started. First-time contributors are very welcome.

🗺️ Roadmap

  • Installable offline app (PWA)
  • Sign PDF (draw or type a signature)
  • Page thumbnails with drag-and-drop reordering
  • OCR in more languages, downloaded on demand
  • Layout-faithful PDF → Word (tables, columns, images)
  • Fill PDF forms
  • More audio formats (WAV, OPUS, WebM) and conversion to MP3 or M4A
  • More tools in the MCP server: compress, convert, OCR, redact (#61)
  • Remove image background

Vote with a 👍 on the issues you want most.

⭐ Support the project

If Fizzdoc saved you from uploading something private, give it a star — it's the single best way to help more people find a private alternative.

Star history

Contributors

Contributors

🙏 Credits

Fizzdoc would not exist without these open-source projects and the people who maintain them:

ProjectWhat it does in FizzdocBy
qpdfMerge, split, rotate, encrypt and decrypt PDFs losslessly@jberkenbilt and the qpdf contributors
qpdf-wasmqpdf compiled to WebAssembly@neslinesli93
pdf.jsRenders pages, extracts text, powers the editorMozilla and contributors
pdf-libWrites and edits PDFs, stamps, the OCR text layer@Hopding
Tesseract and tesseract.jsText recognition, compiled to WebAssemblytesseract-ocr and naptha
fflateReads and writes Word, Excel, PowerPoint and ZIP files@101arrowz
InterThe typeface@rsms
ArchifyGenerates the interactive architecture map@tt-a1i

Built and tested with Vite, TypeScript, Vitest and Playwright. Full license details are in THIRD_PARTY_NOTICES.md.

👋 About the author

Fizzdoc is designed and built by Rishab Dugar, a Senior Data Scientist in Bengaluru working on AI systems and production data platforms. It started from a simple frustration: why should a payslip or a passport scan travel to someone else's server just to be merged or compressed? (How it was built: Independent work.)

rishabdugarjain.in GitHub @kingrishabdugar

🧭 Independent work

Fizzdoc was designed and built independently by Rishab Dugar, from scratch, after researching how document processing can run entirely in a browser without a server. It is not affiliated with, endorsed by, or derived from any other PDF or document service.

Any resemblance to other products is coincidental. Tools in this category solve the same everyday tasks (merge, split, compress, convert), and Fizzdoc deliberately builds on the best open technologies available for each job, so some overlap in features or wording is natural:

  • PDF structure (merge, split, rotate, encrypt): qpdf compiled to WebAssembly with Emscripten, run in a disposable Web Worker with files mounted through WORKERFS
  • Rendering and text extraction: Mozilla pdf.js
  • Writing and editing PDFs: pdf-lib
  • OCR: Tesseract's LSTM engine via tesseract.js, self-hosted on the site's own origin
  • Word, Excel and PowerPoint: Office Open XML read and written directly, with fflate for the ZIP containers
  • Images: the browser's own codecs through createImageBitmap and OffscreenCanvas
  • Word, text and Markdown → PDF: the browser's native print-to-PDF pipeline
  • Privacy by construction: no upload endpoint at all, plus a strict Content Security Policy (connect-src 'self') that the browser enforces
  • Build and tests: TypeScript, Vite with static prerendering, Vitest and Playwright

Familiar interface patterns, such as a grid of tools per format, drag-and-drop upload and one page per task, are common conventions in document tools rather than borrowed designs. The code in this repository was written for Fizzdoc; the libraries above are used under their own licenses, listed in THIRD_PARTY_NOTICES.md.

📄 License

Apache-2.0 © Rishab Dugar. You're free to use, modify and share Fizzdoc, including commercially, as long as you keep the copyright and the NOTICE file crediting the original project in every copy or derivative. Fizzdoc stands on the shoulders of the projects listed in Credits — see THIRD_PARTY_NOTICES.md. Product names mentioned in this README are trademarks of their owners and are used only for comparison.

Keywords: free PDF editor online, merge PDF without uploading, compress PDF free, PDF to Word, redact PDF, OCR, compress image without losing quality, reduce photo size to 50 KB, image resizer, JPG to PNG, WebP to JPG, cut MP3 online free, merge MP3, audio trimmer, Word to PDF, Excel to CSV, Excel to JSON, JSON to Excel, Mermaid to PNG, Mermaid to SVG, Mermaid diagram examples, remove metadata, speech to text, edit PDF same font, private file converter, no upload, free forever, open-source, WebAssembly, client-side.

audio
browser
docx
hacktoberfest
ilovepdf-alternative
mp3
ocr
open-source
open-source-project
pdf
pdf-tools
pptx
privacy
privacy-by-design
privacy-first
privacy-focused
privacy-tools
typescript
webassembly
xlsx

kingrishabdugar/fizzdoc

Free, private PDF, image, audio, Word, Excel & PowerPoint tools that run 100% in your browser. Compress, convert, edit, redact, OCR, cut MP3, Excel↔JSON, Mermaid to PNG/SVG. No uploads, no sign-up, no watermark. Free forever · 64 tools · 16 languages.

HTML

19

190 commits

updated Oct 2, 2026

See the code

See what people are saying

SourceMessageScoreDate

built a document tool that runs fully in the browser. then it took 6 minutes on my own phone (r/SideProject)

I know, there are already a hundred document processing sites. Most of them upload your file to their server, do the job, and send it back. For an Aadhaar or a bank statement that always felt weird to me, when a phone can do the work itself. So I built one where nothing leaves your device. No…

1

Oct 3, 2026

README

Fizzdoc

Free, private tools for PDF, images, audio, Word, Excel and PowerPoint that never see your files.

64 tools — compress, convert, edit, redact, merge, split, cut, OCR, transcribe — running 100% in your browser.
No uploads. No sign-up. No watermark. No limits. Free forever. 16 languages.

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.

Open Fizzdoc →  ·  All tools  ·  How it works  ·  Contribute

GitHub stars Tests Apache-2.0 license 0 bytes uploaded Free forever 64 tools 16 languages PRs welcome

Website status Good first issues Tools wanted Last commit Hacktoberfest issues

Fizzdoc: private document tools in light and dark mode


✨ Why Fizzdoc

Most free online file tools ask you to upload your contract, payslip, bank statement, passport photo or voice recording to someone else's server. Fizzdoc doesn't have a server to upload to. Everything runs inside your browser tab with WebAssembly and JavaScript, and the page's Content Security Policy blocks it from connecting to any other site — you can check it yourself in the Network tab.

What you get
🔒 Your file stays on your deviceNo upload endpoint exists, and the CSP blocks connections to any other site
🧰 64 tools in one placePDF, Word, Excel, PowerPoint, images, audio, JSON and Mermaid
✏️ Edit PDF text in its own fontChanged lines are rewritten inside the PDF with its embedded font, size and colour
🎙️ Speech to text on the deviceWhisper runs in the browser: TXT, SRT or VTT, offline after a one-time download
🆓 Free foreverNo account, no daily limits, no watermark, no premium tier
🌍 16 languagesIncluding Hindi, Bengali, Marathi, Tamil and Telugu
📱 Nothing to installAny modern browser, on phones too
📖 Open sourceApache-2.0, every line on GitHub

Fizzdoc demo: compress, edit PDF text, select text in a photo with OCR, Hindi interface, dark mode

🎬 See it in action

✏️ Edit PDF text in place
Click any text and type. The line is rewritten in the PDF’s own font when it has those letters, and nothing is uploaded.

Editing PDF text directly on the page
🔍 Copy text from any photo
On-device OCR with Live Text-style selection, right on the image.

Selecting recognized text on an image
🧩 Merge, reorder, done
Drag to reorder. Forms and links survive; anything that can't is reported.

Merging and reordering PDFs
🌍 16 languages
Every page, tool and error message, from Hindi and Tamil to German and Vietnamese.

Fizzdoc in Hindi, Spanish, Tamil, German, Bengali and Vietnamese
I want to…Use
Get a photo or signature under 20 / 50 / 100 KB for an exam, job or government formCompress image to 20 KB · 50 KB · 100 KB
Compress images without losing quality, JPG, PNG or WebP, in bulkCompress Image
Cut an MP3, trim a song or make a ringtone, with no quality lossCut & Split Audio
Join MP3 or M4A files or voice notes into one trackMerge Audio
Turn a recording, voice note or video into text, privatelyAudio to Text
Make SRT subtitles for a video, without uploading itSubtitle Generator
Reduce PDF size for email or an upload portalCompress PDF
Edit text in a PDF, or black out personal details for goodEdit PDF · Redact PDF
Turn a PDF into an editable Word file, or Word into PDFPDF to Word · Word to PDF
Remove the password from a bank statement, or add oneUnlock PDF · Protect PDF
Copy text from a scanned PDF, a photo or a screenshotOCR PDF · Image to Text
Combine photos or screenshots into one PDFJPG to PDF · PNG to PDF
Convert everyday formats: PNG ↔ JPG, WebP → JPG, Excel ↔ CSVConvert Image · Excel to CSV · CSV to Excel
Turn a spreadsheet into JSON for an API, or open JSON in ExcelExcel to JSON · JSON to Excel
Export a Mermaid diagram as PNG or SVG for slides, docs or a READMEMermaid to PNG · Mermaid to SVG
Remove hidden author and company names before sharing an Office file or PDFWord · Excel · PowerPoint · PDF

🧰 All 64 tools

FormatTools
PDFEdit PDF (change text in place, in the PDF’s own font) · Redact (black out text for good) · Compress · Merge · Split · Extract pages · Reorder pages · Rotate · Delete pages · Page numbers · Watermark · Unlock (incl. Aadhaar, e-PAN, bank statements, ITR-V) · Protect (AES-256) · Remove metadata · OCR · PDF → Scanned PDF
PDF conversionsPDF → Word · PDF → PowerPoint · PDF → JPG · PDF → PNG · PDF → Text · PDF → Markdown · JPG → PDF · PNG → PDF · Text → PDF · Markdown → PDF
WordWord → PDF · Compress · Remove metadata · Extract images
ExcelExcel → CSV · CSV → Excel · Excel → JSON · JSON → Excel · Compress · Remove metadata · Extract images
PowerPointCompress · Remove metadata · Extract images
ImagesCompress (to 20 KB, 50 KB, 100 KB for forms) · Resize (larger or smaller) · Convert · PNG → JPG · JPG → PNG · WebP → JPG · JPG → WebP · Image → Text (select text right on the photo, like Live Text) · Mermaid → PNG · Mermaid → SVG (diagrams from code, with a preview and ready-to-use examples)
AudioCut & Split Audio (trim or split an MP3/M4A on a waveform, preview every part) · Merge Audio (listen before you download) — no re-encoding, so no quality loss · Audio to Text · MP3 to Text · Video to Text · 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.

Languages: English · हिन्दी · বাংলা · मराठी · தமிழ் · తెలుగు · Español · Português · Français · Deutsch · Italiano · Nederlands · Polski · Türkçe · Bahasa Indonesia · Tiếng Việt — add yours.

🤖 Use it from AI agents (MCP)

Fizzdoc also runs as a local MCP server, so Claude Code, Codex, Claude Desktop, Cursor and other AI agents can merge, split, rotate, protect or unlock PDFs and trim, split or join MP3/M4A on your machine, with nothing uploaded.

claude mcp add fizzdoc -- npx -y fizzdoc-mcp

Setup for Codex and other clients, and the full tool list: mcp/README.md.

🔒 Private by design — verify it yourself

Safe for bank statements, ID cards, payslips, medical records and client files, because:

  • No uploads, ever. There is no upload endpoint and no backend that could receive a file.
  • The browser enforces it. Every page ships a Content Security Policy (connect-src 'self') that blocks connections to any other site.
  • No account, no cookies, no analytics, no ads, no trackers. The only things stored are your theme and whether you've seen the language tip.
  • Nothing is kept. Close the tab and your file, passwords and results are gone.

Check it yourself:

  1. Open any tool, then your browser's developer tools → Network.
  2. Run a job.
  3. You'll see the app's own files load, and no request carrying your document.

The test suite does the same in real Chromium on every commit: it runs real jobs (merge, edit, OCR and more) and fails if any request goes to another origin; the merge test also fails on any request that isn't a plain GET or that carries a body. The core PDF jobs (merge, split, rotate, delete, protect, unlock) run qpdf in a disposable Web Worker that is terminated afterwards, taking your file, passwords and memory with it.

Your PDF stays intact

Most browser PDF tools copy pages with a library that silently drops bookmarks, forms and links. Fizzdoc's core PDF tools use qpdf compiled to WebAssembly, which rewrites the document structure instead:

MergeSplit / deleteRotate
Form fields✅ from every file✅ removed cleanly with their pages✅
Internal links✅ retargeted✅✅
Bookmarks✅ first file · ⚠️ warns for later files✅ · ⚠️ warns if a target page was removed✅
Page qualityLosslessLosslessLossless

When something genuinely can't be carried over (a digital signature, accessibility tags), Fizzdoc tells you instead of dropping it silently.

⚙️ How it works

Fizzdoc architecture: a build step prerenders static pages to Cloudflare Pages; in the browser tab, the page controller hands files to the qpdf worker, pdf.js / pdf-lib / fflate, the OCR engine and the Whisper speech worker, and the result is saved straight back to the visitor's device

  • Static site, zero backend. Nothing to scale, nothing to breach, nothing to pay for.
  • Lazy engines. First load is about 15 KB of gzipped app code; each engine, including the Whisper speech model, downloads only when a tool needs it.
  • One registry drives everything. Add a tool in src/site.ts and its page, SEO tags, sitemap entry and footer link appear in all 16 languages.

Explore the interactive architecture map or read docs/ARCHITECTURE.md.

❓ FAQ

Is it really private? How can I check?

Yes. There is no server that receives files: the site is static, and every page ships a Content Security Policy that only allows connections to its own origin. Open DevTools → Network, run any tool, and you'll see no request carrying your document. The test suite fails if one ever appears.

Is it really free forever? What's the catch?

There isn't one. Your browser does the work, so Fizzdoc is just static files that cost almost nothing to host — there are no servers to pay for. No account, no daily limit, no watermark, no ads, no premium tier. And it's open source under Apache-2.0, so anyone can run their own copy.

Does it work offline or on a phone?

It works in any modern browser on phones, tablets and desktops. An installable offline app is on the roadmap.

What doesn't it do (yet)?

OCR is English-only for now, speech to text works best on clear English, audio tools handle MP3 and M4A only, and PowerPoint → PDF and legacy .doc/.xls/.ppt aren't supported. Edit PDF can only use letters the PDF's font already contains; other lines are covered and redrawn in a standard font, so to hide text for good use Redact PDF. See the roadmap below.

🚀 Run it locally

Open in GitHub Codespaces

Or on your machine:

git clone https://github.com/kingrishabdugar/fizzdoc.git
cd fizzdoc
npm install
npm run dev          # http://localhost:5173
npm run check        # typecheck + unit tests
npm run test:e2e     # production build + real-browser tests
npm run build        # static site in dist/ — deploy anywhere

Requires Node 22+. Deploys as plain static files to Cloudflare Pages, Netlify, GitHub Pages or any web server.

🤝 Contributing

Fizzdoc is built to be easy to contribute to — you don't need to know anything about PDFs to help.

  • 🌍 Translate — add or improve a language by editing one JSON file. How →
  • 🧰 Add a tool — a new tool is one registry entry, one engine function and a test. How →
  • 🎃 Good first issues — issues labelled good first issue are scoped and ready to pick up, all year round. Guidelines →
  • 🐛 Fix a bug — every issue labelled good first issue is scoped for a first PR.
  • 💡 Ideas — open a feature request for the tool you wish existed.

Read CONTRIBUTING.md to get started. First-time contributors are very welcome.

🗺️ Roadmap

  • Installable offline app (PWA)
  • Sign PDF (draw or type a signature)
  • Page thumbnails with drag-and-drop reordering
  • OCR in more languages, downloaded on demand
  • Layout-faithful PDF → Word (tables, columns, images)
  • Fill PDF forms
  • More audio formats (WAV, OPUS, WebM) and conversion to MP3 or M4A
  • More tools in the MCP server: compress, convert, OCR, redact (#61)
  • Remove image background

Vote with a 👍 on the issues you want most.

⭐ Support the project

If Fizzdoc saved you from uploading something private, give it a star — it's the single best way to help more people find a private alternative.

Star history

Contributors

Contributors

🙏 Credits

Fizzdoc would not exist without these open-source projects and the people who maintain them:

ProjectWhat it does in FizzdocBy
qpdfMerge, split, rotate, encrypt and decrypt PDFs losslessly@jberkenbilt and the qpdf contributors
qpdf-wasmqpdf compiled to WebAssembly@neslinesli93
pdf.jsRenders pages, extracts text, powers the editorMozilla and contributors
pdf-libWrites and edits PDFs, stamps, the OCR text layer@Hopding
Tesseract and tesseract.jsText recognition, compiled to WebAssemblytesseract-ocr and naptha
fflateReads and writes Word, Excel, PowerPoint and ZIP files@101arrowz
InterThe typeface@rsms
ArchifyGenerates the interactive architecture map@tt-a1i

Built and tested with Vite, TypeScript, Vitest and Playwright. Full license details are in THIRD_PARTY_NOTICES.md.

👋 About the author

Fizzdoc is designed and built by Rishab Dugar, a Senior Data Scientist in Bengaluru working on AI systems and production data platforms. It started from a simple frustration: why should a payslip or a passport scan travel to someone else's server just to be merged or compressed? (How it was built: Independent work.)

rishabdugarjain.in GitHub @kingrishabdugar

🧭 Independent work

Fizzdoc was designed and built independently by Rishab Dugar, from scratch, after researching how document processing can run entirely in a browser without a server. It is not affiliated with, endorsed by, or derived from any other PDF or document service.

Any resemblance to other products is coincidental. Tools in this category solve the same everyday tasks (merge, split, compress, convert), and Fizzdoc deliberately builds on the best open technologies available for each job, so some overlap in features or wording is natural:

  • PDF structure (merge, split, rotate, encrypt): qpdf compiled to WebAssembly with Emscripten, run in a disposable Web Worker with files mounted through WORKERFS
  • Rendering and text extraction: Mozilla pdf.js
  • Writing and editing PDFs: pdf-lib
  • OCR: Tesseract's LSTM engine via tesseract.js, self-hosted on the site's own origin
  • Word, Excel and PowerPoint: Office Open XML read and written directly, with fflate for the ZIP containers
  • Images: the browser's own codecs through createImageBitmap and OffscreenCanvas
  • Word, text and Markdown → PDF: the browser's native print-to-PDF pipeline
  • Privacy by construction: no upload endpoint at all, plus a strict Content Security Policy (connect-src 'self') that the browser enforces
  • Build and tests: TypeScript, Vite with static prerendering, Vitest and Playwright

Familiar interface patterns, such as a grid of tools per format, drag-and-drop upload and one page per task, are common conventions in document tools rather than borrowed designs. The code in this repository was written for Fizzdoc; the libraries above are used under their own licenses, listed in THIRD_PARTY_NOTICES.md.

📄 License

Apache-2.0 © Rishab Dugar. You're free to use, modify and share Fizzdoc, including commercially, as long as you keep the copyright and the NOTICE file crediting the original project in every copy or derivative. Fizzdoc stands on the shoulders of the projects listed in Credits — see THIRD_PARTY_NOTICES.md. Product names mentioned in this README are trademarks of their owners and are used only for comparison.

Keywords: free PDF editor online, merge PDF without uploading, compress PDF free, PDF to Word, redact PDF, OCR, compress image without losing quality, reduce photo size to 50 KB, image resizer, JPG to PNG, WebP to JPG, cut MP3 online free, merge MP3, audio trimmer, Word to PDF, Excel to CSV, Excel to JSON, JSON to Excel, Mermaid to PNG, Mermaid to SVG, Mermaid diagram examples, remove metadata, speech to text, edit PDF same font, private file converter, no upload, free forever, open-source, WebAssembly, client-side.

audio
browser
docx
hacktoberfest
ilovepdf-alternative
mp3
ocr
open-source
open-source-project
pdf
pdf-tools
pptx
privacy
privacy-by-design
privacy-first
privacy-focused
privacy-tools
typescript
webassembly
xlsx

Languages

HTML

53.5%

TypeScript

42.9%

CSS

3.2%