<?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: Zengkkj</title>
    <description>The latest articles on DEV Community by Zengkkj (@zengkkj).</description>
    <link>https://dev.to/zengkkj</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%2F3837565%2Fc8e32cda-f1c8-40a0-9fee-91447f561ed8.png</url>
      <title>DEV Community: Zengkkj</title>
      <link>https://dev.to/zengkkj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zengkkj"/>
    <language>en</language>
    <item>
      <title>Crow Docs v22: Fixing 12 bugs across an offline-first PDF toolkit</title>
      <dc:creator>Zengkkj</dc:creator>
      <pubDate>Thu, 02 Apr 2026 22:46:37 +0000</pubDate>
      <link>https://dev.to/zengkkj/crow-docs-v22-fixing-12-bugs-across-an-offline-first-pdf-toolkit-cgm</link>
      <guid>https://dev.to/zengkkj/crow-docs-v22-fixing-12-bugs-across-an-offline-first-pdf-toolkit-cgm</guid>
      <description>&lt;p&gt;What is Crow Docs?&lt;/p&gt;

&lt;p&gt;Crow Docs is a free, open-source, browser-based document toolkit. Merge, split, compress, sign, translate, OCR, compare, booklet, metadata editing, Markdown-to-slides, image-to-PDF, PDF-to-audio, PDF-to-PPTX — it does a lot.&lt;/p&gt;

&lt;p&gt;The key detail: everything runs 100% client-side. No file uploads. No server processing. Your documents never leave your device. It's a PWA, so it works offline too.&lt;/p&gt;

&lt;p&gt;The email that started everything&lt;br&gt;
A user wrote in with two issues: "the PPTX export doesn't open in PowerPoint" and "GIFs in my PDF don't animate."&lt;/p&gt;

&lt;p&gt;Fair feedback. But instead of patching just those two things, I decided to audit every tool in the app. What I found was humbling — 12 bugs across the entire toolkit, some hiding in plain sight for months.&lt;/p&gt;

&lt;p&gt;The 12 bugs (and why they existed)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;PDF to PPTX wouldn't open in PowerPoint — Google Slides is forgiving about missing OOXML structure. PowerPoint is not. Added proper theme, clrMap, txStyles, grpSpPr transforms, and docProps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;QR codes wouldn't scan — Custom inline QR encoder had subtle bugs. Replaced with the battle-tested qrcode-generator library.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compare PDFs showed NaN — ImageData dimensions mismatch when PDFs had different page sizes. Fixed by normalizing to same-size canvas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Booklet page ordering was wrong — Saddle-stitch imposition algorithm had incorrect formula for inner sheets. Corrected: outerLeft = total-1-s*2, outerRight = s*2, innerLeft = s*2+1, innerRight = total-2-s*2.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Markdown to Slides splitting failed — Regex didn't handle whitespace around --- or Windows \r\n line endings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Translate PDF lost paragraphs — join(' ') instead of join('\n'). One character, all paragraphs gone.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PDF metadata keywords stored incorrectly — Saved as single-element array instead of splitting by comma.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sign PDF crash — No null check on canvas element before drawing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organize PDF used generic filename — Now preserves the original filename.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GIF in PDF — no warning — PDFs don't support animation. Added toast notification explaining the limitation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OCR errors showed "undefined" — Six catch blocks used e.message without fallback. Fixed with e?.message || String(e).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Header/footer regex typo — /^Página?/ matched "Págin" instead of "Página". Fixed to /^P[aá]gina/i.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lessons learned&lt;br&gt;
PowerPoint doesn't forgive. Google Slides will render a half-valid PPTX. PowerPoint will reject it. Test against the strictest consumer.&lt;/p&gt;

&lt;p&gt;Users find what tests don't. A real person trying to open your file in their specific environment — that's where edge cases live.&lt;/p&gt;

&lt;p&gt;Self-hosting dependencies pays off. Every library lives in /libs/. No CDN calls. The offline story is bulletproof because there are zero external runtime requests.&lt;/p&gt;

&lt;p&gt;Tech stack&lt;br&gt;
Vanilla JS. No frameworks, no build step. The heavy lifting comes from: pdf-lib, jsPDF, PDF.js, Tesseract.js, JSZip, mammoth, docx, and qrcode-generator.&lt;/p&gt;

&lt;p&gt;Try it, break it, tell me&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>pwa</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Crow Docs Evolving: Stability, UX, and a New Community Channel 🚀</title>
      <dc:creator>Zengkkj</dc:creator>
      <pubDate>Mon, 30 Mar 2026 22:02:41 +0000</pubDate>
      <link>https://dev.to/zengkkj/crow-docs-evolving-stability-ux-and-a-new-community-channel-4omb</link>
      <guid>https://dev.to/zengkkj/crow-docs-evolving-stability-ux-and-a-new-community-channel-4omb</guid>
      <description>&lt;p&gt;Crow Docs Evolving: Stability, UX, and a New Community Channel 🚀&lt;br&gt;
Hi everyone!&lt;/p&gt;

&lt;p&gt;I’m dropping by to share a general update on the Crow Docs project. The focus of the latest updates was ensuring a solid foundation, fluid navigation, and—most importantly—opening a direct channel to hear from those using the tool.&lt;/p&gt;

&lt;p&gt;For those who aren’t familiar, Crow Docs is a suite of PDF and OCR tools that runs 100% client-side, prioritizing privacy above all else (no server uploads, ever!).&lt;/p&gt;

&lt;p&gt;🛠️ What’s New?&lt;br&gt;
Interface Refinement: We’ve implemented UX improvements and optimized loading speeds for a much smoother experience. Less friction, more productivity.&lt;/p&gt;

&lt;p&gt;Deep Bug Squashing: We did a thorough "fine-tooth comb" sweep! We fixed instabilities and minor rendering glitches that were popping up in specific browser environments.&lt;/p&gt;

&lt;p&gt;Suggestions Box: We now have an official channel! Want a new feature or found something weird? Your feedback now has a dedicated home at the bottom of the page.&lt;/p&gt;

&lt;p&gt;Project Support: I've added a section for anyone who wants to support the development and help keep the project's infrastructure standing.&lt;/p&gt;

&lt;p&gt;💡 Why the Community Focus?&lt;br&gt;
This project is driven by real-world usage. Adding the Suggestion and Support buttons at the footer was the best way I found to turn Crow Docs into something built by many hands.&lt;/p&gt;

&lt;p&gt;🔗 Explore it now:&lt;br&gt;
If you need fast, secure, and privacy-focused PDF tools, take a look:&lt;/p&gt;

&lt;p&gt;👉 crowdocs.com.br&lt;/p&gt;

&lt;p&gt;What feature would you like to see in a 100% browser-based document tool? Let me know in the comments or use the new suggestion box on the site!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Crow Docs v2.0 — High-Speed OCR, Markdown to Slides, and 100% Client-Side Privacy 🚀</title>
      <dc:creator>Zengkkj</dc:creator>
      <pubDate>Sat, 28 Mar 2026 23:52:24 +0000</pubDate>
      <link>https://dev.to/zengkkj/crow-docs-v20-high-speed-ocr-markdown-to-slides-and-100-client-side-privacy-50cf</link>
      <guid>https://dev.to/zengkkj/crow-docs-v20-high-speed-ocr-markdown-to-slides-and-100-client-side-privacy-50cf</guid>
      <description>&lt;h1&gt;
  
  
  Crow Docs v2.0 — New Tools, Supercharged OCR, and Bug Fixes
&lt;/h1&gt;

&lt;p&gt;Hey everyone! &lt;/p&gt;

&lt;p&gt;I'm excited to share a massive update for &lt;strong&gt;Crow Docs (v2.0)&lt;/strong&gt;. If you're looking for a document utility suite that actually respects your data, this is for you.&lt;/p&gt;

&lt;p&gt;The core philosophy remains: &lt;strong&gt;100% Client-Side Processing&lt;/strong&gt;. &lt;br&gt;
No uploads, no servers, no registration. Your documents never leave your computer. 🔒&lt;/p&gt;

&lt;p&gt;Here is what’s new in this version:&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 New Features &amp;amp; Improvements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🎨 Markdown → Slides (New!)
&lt;/h3&gt;

&lt;p&gt;Convert your Markdown files into professional PDF presentations instantly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customization:&lt;/strong&gt; Themes (Dark, Light, Blue, Green, Gradient).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layouts:&lt;/strong&gt; 16:9 or 4:3 aspect ratios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readability:&lt;/strong&gt; Fully configurable font sizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔍 Supercharged OCR
&lt;/h3&gt;

&lt;p&gt;We’ve overhauled the character recognition engine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Parallel Processing:&lt;/strong&gt; Faster multi-page recognition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Auto-Rotation:&lt;/strong&gt; Automatically detects and corrects page orientation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Language Support:&lt;/strong&gt; New support for Japanese, Korean, Chinese, Arabic, Russian, Hindi, Turkish, Polish, Dutch, and multi-language combinations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📄 Improved Workflow
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DOCX Preview:&lt;/strong&gt; View your Word documents directly in the browser before converting to PDF.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progress Bars with ETA:&lt;/strong&gt; Real-time tracking so you know exactly when your task will be finished.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Validation:&lt;/strong&gt; Instant validation of file types and sizes before processing starts.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🐛 Bug Fixes &amp;amp; Stability
&lt;/h2&gt;

&lt;p&gt;We’ve addressed several key issues to make the experience smoother:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PDF → Word:&lt;/strong&gt; Fixed the bug that limited conversions to the first page. Large documents now convert completely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word → PDF (Academic Standards):&lt;/strong&gt; Fixed the &lt;strong&gt;ABNT NBR 14724&lt;/strong&gt; formatting issues. Margins (3/2/3/2 cm), Arial 12pt, 1.5 spacing, and 1.25cm paragraph indents are now perfectly applied.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigation:&lt;/strong&gt; Fixed scroll hijacking. When returning from a tool, the site now keeps your exact scroll position on the main page.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎨 New Visual Identity
&lt;/h2&gt;

&lt;p&gt;Crow Docs has a fresh new look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exclusive Logo:&lt;/strong&gt; A new "Crow" icon that adapts to your theme (White for Dark Mode, Black for Light Mode).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent Branding:&lt;/strong&gt; New favicon and OpenGraph images for better social media sharing.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Try it out
&lt;/h2&gt;

&lt;p&gt;The project is free and built for the community. If you need to handle sensitive documents without the risk of cloud uploads, check it out:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://crowdocs.com.br" rel="noopener noreferrer"&gt;crowdocs.com.br&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What do you think of these new features?&lt;/strong&gt; If you have any suggestions for future tools or improvements for the "Crow", let me know in the comments! 👇&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>privacy</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🚀 Crow Docs Update: Client-side PDF processing is getting even more powerful</title>
      <dc:creator>Zengkkj</dc:creator>
      <pubDate>Mon, 23 Mar 2026 19:24:30 +0000</pubDate>
      <link>https://dev.to/zengkkj/crow-docs-update-client-side-pdf-processing-is-getting-even-more-powerful-9k6</link>
      <guid>https://dev.to/zengkkj/crow-docs-update-client-side-pdf-processing-is-getting-even-more-powerful-9k6</guid>
      <description>&lt;p&gt;Hello, Dev Community!&lt;/p&gt;

&lt;p&gt;I’ve been working on Crow Docs, a "Swiss Army Knife" for PDF manipulation that runs entirely in your browser. Today, I’m excited to share some major updates and a few technical challenges I've solved.&lt;/p&gt;

&lt;p&gt;What is Crow Docs?&lt;br&gt;
If you missed the previous posts, Crow Docs is an open-source alternative to tools like SmallPDF or ILovePDF. The main difference? Zero uploads. Everything happens on the client-side using the user's hardware. Your sensitive documents never leave your machine.&lt;/p&gt;

&lt;p&gt;🆕 What’s New?&lt;br&gt;
We’ve just integrated three high-demand features:&lt;/p&gt;

&lt;p&gt;🎧 PDF to Audio (TTS): Using the Web Speech API to turn static documents into accessible "podcasts". Perfect for studying on the go.&lt;/p&gt;

&lt;p&gt;📄 Resume Builder: A streamlined, schema-based generator to create clean, professional CVs without formatting headaches.&lt;/p&gt;

&lt;p&gt;🌍 PDF Translator: Breaking language barriers by integrating translation logic directly into the document workflow.&lt;/p&gt;

&lt;p&gt;🛠️ The Tech Stack &amp;amp; Challenges&lt;br&gt;
Building these features without a backend for processing is a fun challenge. We are leveraging:&lt;/p&gt;

&lt;p&gt;pdf-lib &amp;amp; pdf.js for core manipulation.&lt;/p&gt;

&lt;p&gt;Web Workers to ensure the UI doesn't freeze during heavy processing.&lt;/p&gt;

&lt;p&gt;Local Storage/IndexedDB for state management without tracking.&lt;/p&gt;

&lt;p&gt;The biggest hurdle? Memory management. Processing a 100MB PDF strictly in RAM requires some creative "chunking" to keep the browser happy.&lt;/p&gt;

&lt;p&gt;Why go Client-Side?&lt;br&gt;
In an era of data breaches, privacy isn't just a feature; it's a requirement. By keeping the logic in the browser, we eliminate server costs (yay, free hosting!) and, more importantly, we guarantee user privacy by design.&lt;/p&gt;

&lt;p&gt;Check it out here: &lt;a href="https://crowdocs.com.br/" rel="noopener noreferrer"&gt;https://crowdocs.com.br/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d love to hear your thoughts on the performance of these new tools. If you’re a fellow dev, what’s the most annoying thing you’ve faced when working with PDF libraries in JS?&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>pdf</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I built a free PDF toolkit that runs 100% in your browser — no uploads, no sign-ups</title>
      <dc:creator>Zengkkj</dc:creator>
      <pubDate>Sat, 21 Mar 2026 20:09:01 +0000</pubDate>
      <link>https://dev.to/zengkkj/i-built-a-free-pdf-toolkit-that-runs-100-in-your-browser-no-uploads-no-sign-ups-h32</link>
      <guid>https://dev.to/zengkkj/i-built-a-free-pdf-toolkit-that-runs-100-in-your-browser-no-uploads-no-sign-ups-h32</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;We've all been there:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to merge a PDF → site asks you to create an account&lt;/li&gt;
&lt;li&gt;Need to compress → limited to 2 free files&lt;/li&gt;
&lt;li&gt;Need to sign → $15/month subscription&lt;/li&gt;
&lt;li&gt;And worst of all: your sensitive documents get uploaded to unknown servers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I got tired of this and built something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet Crow Docs 🐦
&lt;/h2&gt;

&lt;p&gt;A complete PDF toolkit with &lt;strong&gt;25+ tools&lt;/strong&gt; that runs entirely in your browser. Your files never leave your device.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://crowdocs.com.br" rel="noopener noreferrer"&gt;crowdocs.com.br&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What can it do?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;Merge PDF&lt;/strong&gt; — Combine multiple PDFs&lt;/li&gt;
&lt;li&gt;✂️ &lt;strong&gt;Split PDF&lt;/strong&gt; — Extract specific pages&lt;/li&gt;
&lt;li&gt;🗜️ &lt;strong&gt;Compress PDF&lt;/strong&gt; — Reduce file size&lt;/li&gt;
&lt;li&gt;🖼️ &lt;strong&gt;JPG to PDF&lt;/strong&gt; — Convert images&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;PDF to Image&lt;/strong&gt; — Export pages as JPG/PNG&lt;/li&gt;
&lt;li&gt;💧 &lt;strong&gt;Watermark&lt;/strong&gt; — Add text or image watermarks&lt;/li&gt;
&lt;li&gt;✍️ &lt;strong&gt;Sign PDF&lt;/strong&gt; — Draw or type your signature&lt;/li&gt;
&lt;li&gt;🔏 &lt;strong&gt;Redact PDF&lt;/strong&gt; — Black out sensitive info&lt;/li&gt;
&lt;li&gt;🔢 &lt;strong&gt;Page Numbers&lt;/strong&gt; — Add numbering&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Protect/Unlock PDF&lt;/strong&gt; — Password management&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;Create Booklet&lt;/strong&gt; — Print-ready imposition&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;PDF to Word/Excel&lt;/strong&gt; — Convert formats&lt;/li&gt;
&lt;li&gt;...and 10+ more tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why is it different?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Crow Docs&lt;/th&gt;
&lt;th&gt;iLovePDF&lt;/th&gt;
&lt;th&gt;SmallPDF&lt;/th&gt;
&lt;th&gt;Adobe&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;✅ Always&lt;/td&gt;
&lt;td&gt;❌ Limited&lt;/td&gt;
&lt;td&gt;❌ Limited&lt;/td&gt;
&lt;td&gt;❌ Paid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No sign-up&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No upload&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Works offline&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy&lt;/td&gt;
&lt;td&gt;✅ Local&lt;/td&gt;
&lt;td&gt;☁️ Cloud&lt;/td&gt;
&lt;td&gt;☁️ Cloud&lt;/td&gt;
&lt;td&gt;☁️ Cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pure HTML/CSS/JS&lt;/strong&gt; — single file application&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pdf-lib&lt;/strong&gt; — PDF manipulation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pdf.js&lt;/strong&gt; — PDF rendering&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;jsPDF&lt;/strong&gt; — PDF creation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Pages&lt;/strong&gt; — hosting with global CDN&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PWA&lt;/strong&gt; — installable, works offline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zero backend. Zero database. Zero tracking.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Everything is processed using JavaScript APIs directly in your browser:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You select a file → it stays on your device&lt;/li&gt;
&lt;li&gt;JavaScript processes it locally using Canvas API + PDF libraries&lt;/li&gt;
&lt;li&gt;You download the result → nothing was ever uploaded&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's that simple. No server needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned building this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The browser is incredibly powerful for document processing&lt;/li&gt;
&lt;li&gt;pdf-lib can handle most PDF operations without a server&lt;/li&gt;
&lt;li&gt;Canvas API + pdf.js can render and manipulate PDF pages pixel by pixel&lt;/li&gt;
&lt;li&gt;A single HTML file can replace dozens of SaaS tools&lt;/li&gt;
&lt;li&gt;Privacy and functionality don't have to be opposites&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;&lt;a href="https://crowdocs.com.br" rel="noopener noreferrer"&gt;https://crowdocs.com.br&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Available in English and Portuguese with automatic language detection.&lt;/p&gt;

&lt;p&gt;I'd love your feedback! What tools would you like to see added?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built with ❤️ and JavaScript. No servers were harmed in the making of this product.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
