Trending
Nigeria: Gombe PDP Politicising Diphtheria Outbreak - APC is trending now Zamfara Records 367 Confirmed Diphtheria Cases, 320 Recover is trending now Africa accounts for 75% of global Mpox cases in July- WHO is trending now Quantum entanglement confirmed in Z bosons at Large Hadron Collider is trending now Rust prevention coating uses nanotech to self-repair and conquer corrosion is trending now 'If I wanted to go to space, I would have stayed at NASA': What's next for Artemis II ast… is trending now After the refereeing case in the Manchester derby, Rooney snaps: "Enough with VAR, it's h… is trending now Spurs' Richarlison posts 'Why?' and a tearful emoji after he is left out of Liverpool Car… is trending now 'Truly incredible!' - Alvaro Morata backs Lamine Yamal for Ballon d'Or glory after witnes… is trending now London misses out to Nairobi in World Athletics bid is trending now BBNaija S11: Abi, Araga Evicted In Week Seven is trending now Peller quickly retraces his steps after comparing Ochacho’s son’s streams to Champz’s num… is trending now Nigeria: Gombe PDP Politicising Diphtheria Outbreak - APC is trending now Zamfara Records 367 Confirmed Diphtheria Cases, 320 Recover is trending now Africa accounts for 75% of global Mpox cases in July- WHO is trending now Quantum entanglement confirmed in Z bosons at Large Hadron Collider is trending now Rust prevention coating uses nanotech to self-repair and conquer corrosion is trending now 'If I wanted to go to space, I would have stayed at NASA': What's next for Artemis II ast… is trending now After the refereeing case in the Manchester derby, Rooney snaps: "Enough with VAR, it's h… is trending now Spurs' Richarlison posts 'Why?' and a tearful emoji after he is left out of Liverpool Car… is trending now 'Truly incredible!' - Alvaro Morata backs Lamine Yamal for Ballon d'Or glory after witnes… is trending now London misses out to Nairobi in World Athletics bid is trending now BBNaija S11: Abi, Araga Evicted In Week Seven is trending now Peller quickly retraces his steps after comparing Ochacho’s son’s streams to Champz’s num… is trending now
XML

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Hey friends! I'm super excited to share a new tool I've been working on that solves a problem I bet many of you have faced: how do you quickly compare two PDF documents to see what changed? Enter PDF Diff!Landing page for PDF Diff

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Hey friends! I'm super excited to share a new tool I've been working on that solves a problem I bet many of you have faced: how do you quickly compare two PDF documents to see what changed? Enter PDF Diff!

Introducing PDF Diff: Compare PDFs Privately in Your Browser
Landing page for PDF Diff allowing you to upload 2 PDFs to compare

Why I Built This

Look, we've all been there. You get two versions of a contract, a proposal, or a license agreement, and you need to figure out what changed between them. Sure, you could upload them to some random website, but do you really want to send your potentially sensitive documents to a server somewhere? I know I don't.

So I built PDF Diff - a completely client-side, privacy-first PDF comparison tool that runs entirely in your browser. No servers. No uploads. No risk.

Privacy First, Always

This is the core principle that drove the entire development: your documents never leave your device. Period.

Everything happens locally in your browser using JavaScript. All the PDF parsing, text extraction, and comparison logic runs on your machine. Once you load the page, you can even disconnect from the internet and keep using it. That's the power of modern web technology, and it's beautiful.

What Can You Do With It?

I packed in a bunch of features to make comparing PDFs as easy and flexible as possible:

Multiple View Modes

Different people need to see changes in different ways, so I built five different view modes:

Side-by-Side View - This is the classic comparison view. Original on the left, modified on the right, with synchronized scrolling. Perfect for getting the full context of both documents.

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Unified View - All changes shown inline with color coding. Green for additions, red for deletions. This is great when you want to see everything in one continuous flow.

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Additions Only - Just show me what's new! This view filters out everything except the added content. Super useful when you're reviewing what someone added to a document.

Removals Only - The opposite - show only what was deleted. Great for catching what might have been taken out of a contract or agreement.

Changes Only - This one's clever - it shows additions and removals side-by-side, grouped by where they appear in the document. You get a focused view of just the changes without any of the unchanged content.

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Real-Time Statistics

As soon as you upload your PDFs, you get instant statistics:

  • How many words were added
  • How many were removed
  • How many stayed the same
  • Overall change percentage

This gives you a quick sense of how significant the changes are before diving into the details.

Multi-Page Support

Documents aren't always single pages! PDF Diff handles multi-page documents with easy page navigation. You can step through page-by-page, or flip on "Show all pages" to see changes across the entire document at once.

Export to PDF

Found something important? Export your comparison as a formatted PDF report that you can save or share. The export includes your selected view mode, so you can generate exactly the report you need.

Dark Mode

Because of course it has dark mode. Your eyes will thank you. 🌙

Introducing PDF Diff: Compare PDFs Privately in Your Browser

Try the Demo

Not ready to upload your own PDFs yet? Hit the "Try Demo" button to see it in action with sample license agreement documents. It's the fastest way to understand how powerful this tool is.

The Technical Bits

For my fellow developers out there, here's what's under the hood:

Modern Stack

I built this with some of my favorite modern web technologies:

  • React 19 - The latest and greatest from the React team. The new concurrent rendering features make the UI incredibly smooth even when processing large documents.
  • TypeScript - Type safety is non-negotiable for me these days. It catches so many bugs before they make it to production.
  • Vite - Lightning-fast build tool that makes development a joy. Hot module replacement is so fast you barely notice it refreshing.
  • PDF.js - Mozilla's incredible PDF rendering engine. This is what powers the PDF parsing and text extraction, and it's rock solid.
  • jsPDF - For generating the export PDFs. Great library, easy to use.
  • diff - The text comparison algorithm at the heart of the whole thing. This library does the heavy lifting of computing what changed.

Architecture Decisions

The entire app is client-side only. No backend, no API, no database. Just static files served from a CDN. This architecture choice has some huge benefits:

  1. Privacy by design - Can't leak data to a server if there is no server
  2. Scales infinitely - Static files are cheap and can handle unlimited traffic
  3. Fast - No network round trips for processing
  4. Simple - No servers to maintain or databases to manage

The comparison logic is surprisingly straightforward - extract text from both PDFs, run a diff algorithm, and render the results. But getting the details right (handling multi-page docs, preserving formatting, making the UI responsive) is where the real work happens.

Built with Modern Tools

I have to give a huge shoutout to the tools that made building this such a smooth experience:

VS Code + GitHub Copilot

I've been using VS Code for years, and GitHub Copilot has become an indispensable part of my workflow. Writing the TypeScript interfaces, React components, and utility functions was so much faster with Copilot suggesting completions and entire functions.

The autocomplete for repetitive patterns (like all those view mode switches) saved me tons of time. And when I was implementing the different view modes, Copilot would often suggest exactly the logic I was thinking about. It's like pair programming with an AI that never gets tired.

GitHub Copilot Cloud Agent

Here's where things get really cool. I used the new GitHub Copilot Cloud agent to help with some of the more complex parts of the build. The agent can understand your entire codebase context and help you make architectural decisions, write tests, and even suggest optimizations.

For example, when I was working on the export functionality, I described what I wanted (a formatted PDF with the comparison results), and the agent helped me figure out the best way to structure the jsPDF calls and format the output. It understood the context of my existing code and suggested changes that fit perfectly with my patterns.

The Cloud agent also helped me optimize the PDF parsing logic for performance. When I noticed larger documents were taking a while to process, I described the problem, and it suggested some clever optimization strategies.

Open Source

The entire project is open source on GitHub. I'm a huge believer in open source, and I wanted anyone to be able to:

  • Verify that the privacy claims are true (inspect the code yourself!)
  • Contribute improvements or bug fixes
  • Learn from the code
  • Fork it for their own needs

Try It Out!

Ready to compare some PDFs? Head over to www.pdf-diff.com and give it a try. Start with the demo if you want to see it in action, or upload your own documents if you're ready to go.

I'd love to hear your feedback! Found a bug? Have a feature request? Want to contribute? Open an issue or submit a PR.

And if you find this useful, give it a ⭐️ on GitHub - it really helps others discover the tool.

What's Next?

I've got a few ideas for future improvements:

  • Support for comparing more than two documents
  • Highlighting specific types of changes (numbers, dates, etc.)
  • Better handling of PDFs with images and complex layouts
  • Browser extensions for quick access

But I want to hear from you - what would make PDF Diff more useful for your workflow?

Wrapping Up

Building PDF Diff has been a fun journey, and I'm proud of how it turned out. It solves a real problem I had, and I hope it helps you too. The combination of modern web technologies, privacy-first design, and powerful developer tools made it possible to build something genuinely useful in a relatively short time.

The web platform has come so far. The fact that we can parse PDFs, compute diffs, and render beautiful UIs entirely in the browser - without any server-side code - is pretty amazing. And tools like GitHub Copilot and the Cloud agent make the development experience better than ever.

Give it a try and let me know what you think!

Cheers,
James

View original source →

Related

More from MotzCod.es Blog