NamahaPDF has been built in the open since 2024, growing from three rough tools into a document engine of our own, and an SDK other developers build on. Here is every release, and what each one changed.
Scroll the timeline, or use the arrow keys, to move between releases.
We benchmarked our renderer against PDFium, pdf.js and MuPDF on 200 real government documents, specifically to find where we were behind. It found eight genuine defects — every one a case where the page looked plausible rather than obviously broken — plus a problem in the benchmark itself that had been making us look worse than we were.
The same 28 releases, newest first, in full.
Rendering: gradients keep their colour, scans stop coming out as negatives, and photographs stop disappearing
We benchmarked our renderer against PDFium, pdf.js and MuPDF on 200 real government documents, specifically to find where we were behind. It found eight genuine defects — every one a case where the page looked plausible rather than obviously broken — plus a problem in the benchmark itself that had been making us look worse than we were.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
Compression rebuilt: median government PDF 21% smaller, office document 45%
The compressor was measured against a corpus of real documents and rebuilt around what that measurement showed. It now sizes images by the resolution they are actually printed at rather than their pixel count, and it subsets embedded fonts — which is where most of an office document’s weight turns out to live. Every result is checked by rendering the output and comparing it to the original.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
Eighteen new tools, and the suite reaches fifty
The biggest single addition to the tool suite so far: booklet and poster imposition, page dividing, blank-page removal, grayscale and dark-mode conversion, metadata editing, attachments, headers and footers, table extraction to Excel, Markdown and JSON export, and a document comparison tool. PDF to Excel finally ships for real, and every one of the eighteen runs entirely in the browser.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
The editor now runs on WordPress
A WordPress plugin puts the whole editor on any page with a shortcode or a block, and a new standalone build does the same for any site that has no build step at all. Reading, annotating and signing stay free everywhere; editing asks for a licence, and now says so with a padlock instead of letting you type and then refusing.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
The edit box lines up with the line
Clicking text to edit it opened the typing box a few pixels below the words it replaced — badly enough to notice on documents set in small type, and invisible on the rest. The finished edit always landed correctly; you just could not tell that while you were typing, which is its own kind of broken.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
The slide editor works without a mouse
Every shape and table cell on a slide can now be reached, edited, moved and resized from the keyboard, and announced by a screen reader — the same model the PDF editor got last week. Along the way an automated sweep of the PDF editor’s panels turned up four controls that were unlabelled or too faint, and those are fixed too.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
A typeface of our own, and a long look at fidelity
NamahaPDF now sets its text in Namaha Sans, a typeface we build ourselves. Underneath, we ran the engine over a corpus of a thousand real documents and fixed everything that came back wrong, including one case where editing a protected file could quietly damage it.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.3.0
Accessibility, checked and actually fixed
A free checker that tests any PDF against WCAG 2.1 AA and PDF/UA, and then repairs it, which is the harder half. Every finding cites the standard it comes from, and the repaired file is verified against veraPDF, the ISO reference validator.
SDK: @namahapdf/core@1.0.0 · @namahapdf/react@0.3.3 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.3.0 · @namahapdf/docindex@0.2.0
Ask your document
Chat with a PDF and get answers that cite the page they came from, with the page itself one click away. Or describe an edit in plain words and see exactly what would change before anything is applied. Both run in your browser.
SDK: @namahapdf/core@0.4.0 · @namahapdf/react@0.3.2 · @namahapdf/pptx@0.2.1 · @namahapdf/sheets@0.2.1
Slides and sheets, editable
PowerPoint and Excel files stopped being things we could only look at. Both now open in editors of their own, and edits are written back surgically, so the parts of the file you did not touch come out byte for byte identical.
SDK: @namahapdf/core@0.3.0 · @namahapdf/react@0.3.0 · @namahapdf/pptx@0.1.0 · @namahapdf/sheets@0.1.0
The engine becomes an SDK
Everything powering the site was published for other developers to build on. The first @namahapdf packages went to npm: the engine itself, and a React component that drops a full document editor into someone else’s app.
SDK: @namahapdf/core@0.1.0 · @namahapdf/react@0.1.1
PowerPoint and Excel come to the engine
The engine stopped being PDF-only. It learned to read Office files directly, with no conversion service and no server round trip, which is what later made real slide and spreadsheet editing possible.
Accounts, and a signature that proves itself
Sign a document and have the signature actually mean something: a cryptographic seal any PDF reader can check, so later tampering shows up. Accounts arrived alongside it, and stayed optional for everyday use.
Forms, annotations and redaction
The editor grew past text. Fill in forms the document already has, build new fields, comment and highlight, and redact properly, removing the content rather than drawing a black box over it.
Lines, shapes and letters land where they should
A long round of rendering work. Vector artwork such as charts, logos and diagrams started drawing correctly, and text moved to positioning each letter individually, which is what fixed characters overlapping each other.
Scanned pages become text
Scanned documents stopped being pictures. Text recognition arrived for images and scanned PDFs, including the awkward case where a scan already carries a hidden text layer that is unreadable.
Locked documents, opened
Password-protected PDFs went from "cannot open" to fully supported. Add protection, remove it when you know the password, and, importantly, open the many files that carry restrictions but no password at all.
NamahaPDF 1.0
The first release under the name NamahaPDF, with a new identity and a rebuilt interface. More than a rename: it marked the point where the whole suite ran on our own engine rather than borrowed pieces.
Keeping your fonts your fonts
Edited text used to quietly change typeface. The engine learned to read the fonts embedded in a document and reuse them, so a sentence you change still looks like the sentence next to it.
Click a word, change it
The moment the editor became an editor. Click any piece of text on a page and type. No forms, no overlays, no re-uploading. Getting this right meant knowing exactly which glyph sits under the cursor.
The first page we drew ourselves
Our renderer drew its first PDF page. Instead of handing documents to someone else’s viewer, we now execute the drawing instructions ourselves, which is the only way to know where every word sits well enough to edit it.
A PDF parser of our own
We started reading the PDF format directly: the object tree, the cross-reference tables and the compressed drawing instructions inside each page. Unglamorous, and everything since depends on it.
Compression that actually compresses
Compression stopped being a token gesture. The engine now finds every image in a document, resizes and re-encodes it, and repacks the file structure, with four levels so you can choose between size and quality.
We start writing our own engine
The decision that shaped everything after it. Rather than assembling the site from third-party converters, we began building a document engine of our own, starting with the pipeline that every tool now runs through.
Steadier ground
A consolidation release. The early tools were reliable enough to use but fragile to run, so this one went into making them load properly, fail gracefully and stop depending on a server for work the browser could do.
Images in, text out
Images joined the suite in both directions: turn a folder of photos or scans into a single PDF, or pull the text out of an image and keep it.
PDF to Word, and a dark mode
Conversion started working both ways, and the interface got its first real design pass, including a dark theme that remembers your choice.
The beta: three tools and an idea
The first public build. Three tools, one principle: your documents should be handled in your browser rather than uploaded to someone else’s server. That principle has not moved since.
Every tool on this site runs in your browser, and every release above was built on the same principle. The SDK packages are published on npm, so the dates and versions here can be checked against the registry.