<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 이재한</title>
    <description>The latest articles on DEV Community by 이재한 (@_6722922626cdce84110d8).</description>
    <link>https://dev.to/_6722922626cdce84110d8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3753103%2F90f3bf1c-1adc-401d-9b0e-61b57f9e306c.jpg</url>
      <title>DEV Community: 이재한</title>
      <link>https://dev.to/_6722922626cdce84110d8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_6722922626cdce84110d8"/>
    <language>en</language>
    <item>
      <title>I built a browser-based document diff tool — here's how and why</title>
      <dc:creator>이재한</dc:creator>
      <pubDate>Wed, 04 Feb 2026 13:43:51 +0000</pubDate>
      <link>https://dev.to/_6722922626cdce84110d8/i-built-a-browser-based-document-diff-tool-heres-how-and-why-4cjp</link>
      <guid>https://dev.to/_6722922626cdce84110d8/i-built-a-browser-based-document-diff-tool-heres-how-and-why-4cjp</guid>
      <description>&lt;p&gt;The Problem&lt;br&gt;
Developers have git diff. But what about everyone else?&lt;br&gt;
I watched coworkers compare two versions of a report by opening them side by side and reading line by line. Word's Track Changes? Too clunky. Online diff tools? Most charge for PDF support or require uploading files to their servers.&lt;br&gt;
So I built Diffnote — a free, browser-based document comparison tool.&lt;br&gt;
What it does&lt;/p&gt;

&lt;p&gt;Compare TXT, PDF, and DOCX files&lt;br&gt;
Line, word, and character-level diff&lt;br&gt;
Side-by-side and unified view modes&lt;br&gt;
Color-coded highlights for additions, deletions, and modifications&lt;br&gt;
No signup, no installation&lt;/p&gt;

&lt;p&gt;The key decision: 100% client-side processing&lt;br&gt;
Every file is parsed and compared entirely in the browser. Nothing ever hits a server. This was a deliberate choice for both privacy and cost efficiency.&lt;/p&gt;

&lt;p&gt;PDF parsing: pdf.js&lt;br&gt;
DOCX parsing: mammoth.js&lt;br&gt;
Diff engine: Google's diff-match-patch&lt;/p&gt;

&lt;p&gt;The tradeoff is performance on large files — planning to implement Web Workers to handle heavy PDFs without freezing the UI.&lt;br&gt;
Tech Stack&lt;/p&gt;

&lt;p&gt;Next.js 15 (App Router)&lt;br&gt;
TypeScript&lt;br&gt;
Tailwind CSS + shadcn/ui&lt;br&gt;
Zustand for state management&lt;br&gt;
Deployed on Vercel&lt;/p&gt;

&lt;p&gt;What's next&lt;/p&gt;

&lt;p&gt;Share links (Vercel KV)&lt;br&gt;
Dark mode&lt;br&gt;
Export results as HTML/PDF&lt;br&gt;
3-Way Merge for premium tier&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts and feedback!&lt;br&gt;
🔗 &lt;a href="https://diffnote.net/?ref=producthunt" rel="noopener noreferrer"&gt;Try Diffnote&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.producthunt.com/products/diffnote?launch=diffnote" rel="noopener noreferrer"&gt;🚀 Support on Product Hunt&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>typescript</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
