<?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: Wrk</title>
    <description>The latest articles on DEV Community by Wrk (@wrk0555).</description>
    <link>https://dev.to/wrk0555</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054422%2Fe3e4fbe7-e11a-4491-b814-a1aab11fdc84.png</url>
      <title>DEV Community: Wrk</title>
      <link>https://dev.to/wrk0555</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wrk0555"/>
    <language>en</language>
    <item>
      <title>Most "private" PDF tools still upload your file. I tested one that doesn't — here's exactly how to verify it yourself</title>
      <dc:creator>Wrk</dc:creator>
      <pubDate>Wed, 05 Aug 2026 06:29:44 +0000</pubDate>
      <link>https://dev.to/wrk0555/most-private-pdf-tools-still-upload-your-file-i-tested-one-that-doesnt-heres-exactly-how-to-kci</link>
      <guid>https://dev.to/wrk0555/most-private-pdf-tools-still-upload-your-file-i-tested-one-that-doesnt-heres-exactly-how-to-kci</guid>
      <description>&lt;p&gt;We delete your file after an hour" isn't a privacy guarantee — it's a policy you can't verify.&lt;/p&gt;

&lt;p&gt;Real test: open DevTools → Network tab → use any "private" PDF tool. Watch your file leave your device the second you click compress.&lt;/p&gt;

&lt;p&gt;Built PDF Engineer to fail that test — zero requests, ever, even on 500MB files. Try the DevTools check on it yourself: &lt;a href="https://chromewebstore.google.com/detail/nchciajmojfogknljmfndimemagcgegc?utm_source=item-share-cb" rel="noopener noreferrer"&gt;https://chromewebstore.google.com/detail/nchciajmojfogknljmfndimemagcgegc?utm_source=item-share-cb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What else have you tested that fails?&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>security</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Wrk</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:23:41 +0000</pubDate>
      <link>https://dev.to/wrk0555/-d8i</link>
      <guid>https://dev.to/wrk0555/-d8i</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039" class="crayons-story__hidden-navigation-link"&gt;Why I built a 100% offline alternative to Adobe Acrobat (using WebAssembly)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/wrk0555" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054422%2Fe3e4fbe7-e11a-4491-b814-a1aab11fdc84.png" alt="wrk0555 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/wrk0555" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Wrk
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Wrk
                
              
              &lt;div id="story-author-preview-content-4269332" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/wrk0555" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054422%2Fe3e4fbe7-e11a-4491-b814-a1aab11fdc84.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Wrk&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 30&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039" id="article-link-4269332"&gt;
          Why I built a 100% offline alternative to Adobe Acrobat (using WebAssembly)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/privacy"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;privacy&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/extensions"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;extensions&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Why I built a 100% offline alternative to Adobe Acrobat (using WebAssembly)</title>
      <dc:creator>Wrk</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:21:59 +0000</pubDate>
      <link>https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039</link>
      <guid>https://dev.to/wrk0555/why-i-built-a-100-offline-alternative-to-adobe-acrobat-using-webassembly-3039</guid>
      <description>&lt;p&gt;Let’s be honest: &lt;strong&gt;Most PDF tools are a privacy nightmare.&lt;/strong&gt;&lt;br&gt;
Every time you need to shrink an invoice, sign a contract, or convert a scan, you probably search for a free online tool. You upload your highly sensitive document, wait for it to process, and download the result. &lt;br&gt;
But have you ever stopped to think: &lt;strong&gt;Where does your document go?&lt;/strong&gt;&lt;br&gt;
Even with "auto-delete" policies, your invoices, IDs, and contracts are leaving your computer and sitting on someone else’s cloud server. For corporate workers, this is a massive security violation.&lt;br&gt;
So, I decided to fix this. I built &lt;strong&gt;PDF Engineer Pro&lt;/strong&gt;—a Chrome extension that handles all PDF tasks (compressing, editing, merging, converting, OCR) &lt;strong&gt;100% offline&lt;/strong&gt; inside your browser using local WebAssembly. No servers, no signups, and zero uploads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here is why and how I built it.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Challenge: Stopping the Cloud Upload
&lt;/h3&gt;

&lt;p&gt;As developers, we are taught to push heavy processing to the backend. But document management is one of those areas where the backend is a liability, not an asset.&lt;br&gt;
To make client-side document processing possible, I used WebAssembly to run heavy tasks directly on the user's browser CPU:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Precision Compression&lt;/strong&gt;: Users can input an exact target limit (like "make this PDF under 200KB"). The extension extracts the image layers, downscales them via HTML5 canvas, and compiles them back into the PDF—all in local memory.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Offline OCR (Text Extraction)&lt;/strong&gt;: By packaging Tesseract.js (compiled to WebAssembly), the extension scans image text locally. You can copy text from scans without sending data to cloud vision APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  *   &lt;strong&gt;Direct Text Editing&lt;/strong&gt;: You click and type directly on the page canvas. The extension recalculates the text layout and regenerates the document structure on the fly.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prove it yourself: The Network Tab Challenge
&lt;/h3&gt;

&lt;p&gt;We shouldn't trust privacy policies; we should trust network logs. &lt;br&gt;
I built this so anyone can verify the security:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Chrome DevTools (&lt;code&gt;F12&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;Network&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Compress a 50MB PDF document.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  4. Watch the logs. You will see &lt;strong&gt;zero network traffic&lt;/strong&gt;. 
&lt;/h2&gt;

&lt;h3&gt;
  
  
  💡 The Big Takeaway for Product Makers
&lt;/h3&gt;

&lt;p&gt;Building PDF Engineer taught me that &lt;strong&gt;Privacy-first is a massive feature, not just a policy.&lt;/strong&gt;&lt;br&gt;
When you build tools that respect the user's CPU and keep data isolated, you unlock three huge advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Infinite Scaling&lt;/strong&gt;: Since processing happens on the user's device, my server costs are exactly $0.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;No Queue Times&lt;/strong&gt;: Users don't wait in queues for a server to free up. It's instant.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  3.  &lt;strong&gt;Trust&lt;/strong&gt;: Enterprise and corporate users who are blocked from uploading files to cloud sites can use this tool safely.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdvp0v1ui4fhx2ptu9k12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdvp0v1ui4fhx2ptu9k12.png" alt=" " width="800" height="800"&gt;&lt;/a&gt; Try it out &amp;amp; Ask Me Anything!&lt;br&gt;
PDF Engineer is now live on the Chrome Web Store:&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://chromewebstore.google.com/detail/nchciajmojfogknljmfndimemagcgegc?utm_source=item-share-cb" rel="noopener noreferrer"&gt;Get PDF Engineer&lt;/a&gt;&lt;/strong&gt; &lt;br&gt;
I'd love to hear your feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  How do you currently handle PDF tasks securely?&lt;/li&gt;
&lt;li&gt;  What offline features would make your daily workflow easier?
Drop your thoughts in the comments below! &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>privacy</category>
      <category>extensions</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
