Go-go-go … I missed EmbedPDF
It seems a robust, embeddable PDF viewer for on‑page reading already exists.
After rolling a lean, drop‑in PDF viewer (see my post on PDF‑A‑go‑go), I stumbled on EmbedPDF — a polished, framework‑agnostic, open‑source viewer with a rich feature set and real documentation.
Oh.
You always find the cool thing after you do all the work.
It's perhaps understandable as EmbedPDF started about 9 months ago in January 2025 and likely was not widely known when I was dreaming about PDF-A-go-go in April 2025.
It's only thanks to WebToolsWeekly that I did finally find EmbedPDF. Thanks Louis Lazaris!
Demo#
What EmbedPDF brings#
- On‑page embedding: render inside your layout (no iframe) for a native reading flow.
- Serious features: annotations (highlight, notes, ink, free text), search, redaction.
- Framework support: works cleanly with React, Vue, Svelte, and vanilla JS.
- Good docs and API: clear primitives and a plugin model.
It’s excellent work — exactly the kind of project I wish I had found before I went down the rabbit hole.
EmbedPDF offers the powerful, premium features of a commercial SDK but with the freedom and accessibility of an open-source, MIT-licensed project. A bit part of how it achieves this lies in its choice of engine.
EmbedPDF isn't just another JavaScript library; it's a frontend for PDFium, Google's open-source PDF rendering engine, compiled to WebAssembly. This is the exact same battle-tested engine that powers PDF viewing in Google Chrome and Microsoft Edge.
And they've bundled that engine up in a really nice wrapper.
So how does compare to PDF‑A‑go‑go?#
- Size/weight: PDF‑A‑go‑go is intentionally small and no‑build; EmbedPDF is heavier to enable its features.
- Setup: PDF‑A‑go‑go is a single JS + optional CSS with
data-*
attributes; EmbedPDF offers a fuller API and framework adapters. - Use cases: If you want a quick, accessible embed with minimal ceremony, PDF‑A‑go‑go shines. If you need annotations, redaction, plugins, or framework integration, EmbedPDF is the better fit.
All this said, I think there's still a role for PDF-A-go-go, it's more focused on the Vanilla JS space and I can more easily integrate some specific needs, like loading HTML-redirected PDFs.
What I’ll do next#
- Keep PDF‑A‑go‑go focused on friction‑free embeds for static sites and CMSes.
- Borrow ideas from EmbedPDF’s UX and API where it helps without adding bulk.
- Point folks to EmbedPDF when they need advanced capabilities.
I made PDF-A-go-go to scratch an itch, and it's still itchy.