Fizzdoc architecture

Fizzdoc architecture An architecture diagram generated by Archify. Tool registry · site.ts · 64 tools · Build time Tool registry site.ts · 64 tools Vite build · seo.ts prerender · Build time Vite build seo.ts prerender Cloudflare Pages · static files only · Architecture component Cloudflare Pages static files only Visitor · chooses files · Browser tab · CSP connect-src 'self' Visitor chooses files Page controller · app.ts · Browser tab · CSP connect-src 'self' Page controller app.ts qpdf worker · WASM · one per job · Browser tab · CSP connect-src 'self' qpdf worker WASM · one per job Local engines · pdf.js · pdf-lib · fflate · Browser tab · CSP connect-src 'self' Local engines pdf.js · pdf-lib · fflate OCR engine · Tesseract WASM · Browser tab · CSP connect-src 'self' OCR engine Tesseract WASM PDF editor · edit-pdf.ts · own font · Browser tab · CSP connect-src 'self' PDF editor edit-pdf.ts · own font Visitor's device · download · Save as PDF · Architecture component Visitor's device download · Save as PDF Speech worker · Whisper · ONNX WASM · Browser tab · CSP connect-src 'self' Speech worker Whisper · ONNX WASM tools + copy HTML · sitemap GET only files postMessage import() import() open Blob Worker Build time Browser tab · CSP connect-src 'self' Legend Frontend Backend Database Cloud External

Privacy

  • • No upload endpoint exists
  • • CSP blocks every other origin
  • • Worker terminated after each job

Performance

  • • ~15 KB app on first load
  • • Engines load only when a tool runs
  • • OCR and speech models self-hosted, fetched once

Fidelity

  • • qpdf rewrites structure, no re-render
  • • Losses are reported as warnings
  • • Browser print writer for Word/Markdown → PDF
  • • Edited text keeps the PDF’s own font