<?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: Tooba </title>
    <description>The latest articles on DEV Community by Tooba  (@tooba_idrees_09).</description>
    <link>https://dev.to/tooba_idrees_09</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%2F3947553%2F4143bb79-73bb-442c-8c83-5db08a1b9eb9.png</url>
      <title>DEV Community: Tooba </title>
      <link>https://dev.to/tooba_idrees_09</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tooba_idrees_09"/>
    <language>en</language>
    <item>
      <title>ScanFlow AI: Build a Private, Browser‑Native Document Scanner That Never Sends Your Data to the Cloud</title>
      <dc:creator>Tooba </dc:creator>
      <pubDate>Sun, 24 May 2026 18:46:04 +0000</pubDate>
      <link>https://dev.to/tooba_idrees_09/scanflow-ai-build-a-private-browser-native-document-scanner-that-never-sends-your-data-to-the-39fc</link>
      <guid>https://dev.to/tooba_idrees_09/scanflow-ai-build-a-private-browser-native-document-scanner-that-never-sends-your-data-to-the-39fc</guid>
      <description>&lt;p&gt;You’d never hand your passport, receipts, or signed contracts to a stranger on the street. So why do we keep trusting random cloud APIs with our most sensitive documents?&lt;/p&gt;

&lt;p&gt;Today I’m introducing ScanFlow AI – a complete document processing pipeline that runs entirely in your browser. Scan, crop, enhance, OCR, and export to PDF, all without a single HTTP upload. Let’s dive into how it works and why you might want to build (or just use) something similar.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Problem with “Smart” Scanner Apps
&lt;/h3&gt;

&lt;p&gt;Most scanning apps or web services do this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You capture an image (camera or upload).&lt;/li&gt;
&lt;li&gt;It’s sent to a server for perspective correction, enhancement, or OCR.&lt;/li&gt;
&lt;li&gt;The result is returned – and your private document now lives on someone else’s disk, often indefinitely.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even with good privacy policies, the attack surface is huge. For developers, it also means server costs, scaling headaches, and compliance nightmares (GDPR, HIPAA, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ScanFlow AI&lt;/strong&gt; solves this by moving everything to the client side.&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fu9eojqr0r1s1fz6g5m8r.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.amazonaws.com%2Fuploads%2Farticles%2Fu9eojqr0r1s1fz6g5m8r.png" alt=" " width="799" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What ScanFlow AI Does (All Local)
&lt;/h3&gt;

&lt;p&gt;The tool gives you the same core experience as popular scanner apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scanning&lt;/strong&gt; – Live camera feed with edge detection &amp;amp; perspective correction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cropping&lt;/strong&gt; – Manual or auto region selection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhancing&lt;/strong&gt; – Brightness, contrast, sharpness, noise reduction, and even binarisation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OCR&lt;/strong&gt; – Extracts text from any image (multiple languages).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF Export&lt;/strong&gt; – One‑click PDF generation from the processed image + optional text overlay.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything happens inside your browser tab. No data leaves your device.&lt;/p&gt;




&lt;h3&gt;
  
  
  Under the Hood: Key Technologies
&lt;/h3&gt;

&lt;p&gt;Here’s what makes local document processing practical in 2025:&lt;/p&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;How ScanFlow AI does it (client‑side)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Camera &amp;amp; canvas&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;getUserMedia()&lt;/code&gt; + &lt;code&gt;Canvas API&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perspective correction&lt;/td&gt;
&lt;td&gt;Custom math + &lt;code&gt;WebGL&lt;/code&gt; shaders (or fallback JS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image enhancement&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Canvas&lt;/code&gt; filters + WASM colour transforms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OCR&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Tesseract.js&lt;/strong&gt; – runs a full LSTM engine in a worker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PDF generation&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;jspdf&lt;/code&gt; + &lt;code&gt;canvas&lt;/code&gt; to embed images/text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Web Workers + SharedArrayBuffer for memory efficiency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Example OCR snippet (simplified):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createWorker&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tesseract.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;worker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;createWorker&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;eng&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;worker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;recognize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;croppedCanvas&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;worker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;terminate&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Extracted text (local only):&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No API key, no network request – just a worker churning on your CPU.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why “Hooked” Developers Love This Approach
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by default&lt;/strong&gt; – Users never question where their receipt or medical form went.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No backend costs&lt;/strong&gt; – Your “server” is the user’s laptop. Scale to millions without paying for OCR API calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline‑capable&lt;/strong&gt; – Service worker + Tesseract models cached once → full functionality without internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance ready&lt;/strong&gt; – Since data never leaves the client, you can skip DPIAs for cloud OCR.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy embedding&lt;/strong&gt; – Drop ScanFlow AI into any web app (React, Vue, vanilla) as a Web Component.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Real‑World Use Cases
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise portals&lt;/strong&gt; – Employees scan ID cards or NDA pages without IT worrying about data leakage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Healthcare dashboards&lt;/strong&gt; – Patient records processed locally – no HIPAA cloud risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progressive web apps&lt;/strong&gt; – Offline document scanner for field workers (inspection reports, delivery proof).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy‑first browser extensions&lt;/strong&gt; – Integrate OCR into Gmail / Drive without sending your emails to a third party.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Demo &amp;amp; Try It Yourself
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ScanFlow AI is live right now at:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://scanflowai.blogspot.com" rel="noopener noreferrer"&gt;scanflowai.blogspot.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Open your browser’s DevTools → Network tab. Capture a document, run OCR, export PDF. You’ll see **zero&lt;/em&gt;* requests to any server (except to load the app itself). That’s the hook.*&lt;/p&gt;




&lt;h3&gt;
  
  
  The Road Ahead
&lt;/h3&gt;

&lt;p&gt;We’re adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;More OCR languages&lt;/strong&gt; (Japanese, Arabic, Hindi) via dynamic Tesseract model loading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HDR‑like enhancement&lt;/strong&gt; using WebGPU compute shaders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF/A‑1b export&lt;/strong&gt; for archival use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;End‑to‑end encrypted share&lt;/strong&gt; (opt‑in, WebRTC‑based) so you can send scanned docs peer‑to‑peer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All staying 100% local unless the user explicitly invites a peer.&lt;/p&gt;

&lt;p&gt;Build Your Own or Just Use Ours&lt;/p&gt;

&lt;p&gt;The entire ScanFlow AI core is available as an &lt;strong&gt;MIT‑licensed library&lt;/strong&gt; – grab it from the repo link on the blog sidebar. Or, if you just want a tool that never phones home, bookmark the website.&lt;/p&gt;

&lt;p&gt;Next time you need to scan a document, remember: &lt;br&gt;
The most private server is the one that doesn’t exist.&lt;/p&gt;

&lt;p&gt;Happy local scanning,&lt;br&gt;&lt;br&gt;
– ScanFlow AI Team&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>github</category>
    </item>
    <item>
      <title>I built a PDF tool that never sees your documents (and no, it's not a subscription)</title>
      <dc:creator>Tooba </dc:creator>
      <pubDate>Sun, 24 May 2026 10:22:16 +0000</pubDate>
      <link>https://dev.to/tooba_idrees_09/i-built-a-pdf-tool-that-never-sees-your-documents-and-no-its-not-a-subscription-39d1</link>
      <guid>https://dev.to/tooba_idrees_09/i-built-a-pdf-tool-that-never-sees-your-documents-and-no-its-not-a-subscription-39d1</guid>
      <description>&lt;p&gt;Here's a scenario you probably know.&lt;/p&gt;

&lt;p&gt;You need to convert a PDF to Word. You find a "free" online tool. You upload your document, wait a few seconds, and download the file.&lt;/p&gt;

&lt;p&gt;Then you spend the next week wondering where your sensitive contract or personal resume just went.&lt;/p&gt;

&lt;p&gt;Most online PDF tools work by uploading your file to a server. That means your document sits on someone else's computer, often without any guarantee of when or if it gets deleted. For anything containing personal data, financial info, or private work, that's a non-starter.&lt;/p&gt;

&lt;p&gt;So I built a different kind of PDF tool.&lt;/p&gt;

&lt;p&gt;Meet PDF Architect. It does two main things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Converts PDFs to editable Word documents while preserving page breaks and formatting.&lt;/li&gt;
&lt;li&gt;Turns static PDFs into interactive fillable forms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the important part is how it works. Everything happens directly in your browser. Your files never leave your device. There are no server uploads, no cloud processing, no temporary storage on some remote machine. Once you close the tab, the document is gone from memory.&lt;/p&gt;

&lt;p&gt;This is possible because the tool uses client-side libraries like pdf-lib and PDF.js. The entire conversion engine runs locally, using your computer's own resources. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero privacy risk.&lt;/li&gt;
&lt;li&gt;No file size limits (your browser is the only constraint).&lt;/li&gt;
&lt;li&gt;Works offline after the first page load.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tool is completely free, with no signup, no watermarks, and no "premium" tier that secretly uploads your data.&lt;/p&gt;

&lt;p&gt;You can try it here: &lt;a href="https://pdfarchitectofficial.blogspot.com" rel="noopener noreferrer"&gt;PDF Architect&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I built this because I was tired of workarounds that compromise privacy. If you regularly handle sensitive PDFs, give it a shot.&lt;/p&gt;

&lt;p&gt;Two questions for you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What's the one feature you wish PDF tools would stop charging for?&lt;/li&gt;
&lt;li&gt;Do you currently use any client-side document tools?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drop a comment. I'm actively building based on feedback.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>I got tired of paying $10/month to remove image backgrounds – so I built it for free</title>
      <dc:creator>Tooba </dc:creator>
      <pubDate>Sat, 23 May 2026 11:49:58 +0000</pubDate>
      <link>https://dev.to/tooba_idrees_09/i-got-tired-of-paying-10month-to-remove-image-backgrounds-so-i-built-it-for-free-4opn</link>
      <guid>https://dev.to/tooba_idrees_09/i-got-tired-of-paying-10month-to-remove-image-backgrounds-so-i-built-it-for-free-4opn</guid>
      <description>&lt;p&gt;Let me guess.&lt;/p&gt;

&lt;p&gt;You have been there.&lt;/p&gt;

&lt;p&gt;You need to remove a white background from a product photo.&lt;br&gt;
Or convert a WebP image to PNG because some random website won't accept it.&lt;br&gt;
Or save a JPG as a smaller WebP for faster loading.&lt;/p&gt;

&lt;p&gt;And every time, you end up on some tool that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Asks for your email&lt;/li&gt;
&lt;li&gt;Limits you to 3 free images&lt;/li&gt;
&lt;li&gt;Then hits you with a "9.99 dollars per month Premium" screen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yeah, no.&lt;/p&gt;

&lt;p&gt;I built GreenConvert, a dead-simple, completely free tool that does two things really well.&lt;/p&gt;

&lt;p&gt;What GreenConvert actually does&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Image format conversion&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;WebP to PNG&lt;/li&gt;
&lt;li&gt;WebP to JPG&lt;/li&gt;
&lt;li&gt;PNG to WebP&lt;/li&gt;
&lt;li&gt;JPG to WebP&lt;/li&gt;
&lt;li&gt;PNG to JPG&lt;/li&gt;
&lt;li&gt;JPG to PNG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just upload. Click convert. Download. No signup.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Background removal (AI powered)&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Remove white, solid, or complex backgrounds&lt;/li&gt;
&lt;li&gt;Works on product photos, profile pictures, logos&lt;/li&gt;
&lt;li&gt;Takes about 2 seconds per image&lt;/li&gt;
&lt;li&gt;Download as transparent PNG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Real examples where I use this daily&lt;/p&gt;

&lt;p&gt;Use case 1: Website product images&lt;br&gt;
Before: Heavy WebP from Canva&lt;br&gt;
After: Convert to JPG for Shopify&lt;/p&gt;

&lt;p&gt;Use case 2: Discord emotes&lt;br&gt;
Before: PNG with white box&lt;br&gt;
After: Remove background to transparent PNG&lt;/p&gt;

&lt;p&gt;Use case 3: Thumbnail for a blog post&lt;br&gt;
Before: Random JPG&lt;br&gt;
After: Convert to WebP for faster loading&lt;/p&gt;

&lt;p&gt;Use case 4: Print a photo&lt;br&gt;
Before: WebP (cannot print)&lt;br&gt;
After: Convert to PNG or JPG&lt;/p&gt;

&lt;p&gt;Why I built it instead of paying&lt;/p&gt;

&lt;p&gt;I am a cheap developer. I refuse to pay subscription fees for simple image utilities.&lt;/p&gt;

&lt;p&gt;So I:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wrapped a free AI background removal model&lt;/li&gt;
&lt;li&gt;Added format conversion using browser APIs&lt;/li&gt;
&lt;li&gt;Hosted it on a free tier (Blogspot actually works fine for this)&lt;/li&gt;
&lt;li&gt;Added zero limits, watermarks, or email gates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it right now&lt;/p&gt;

&lt;p&gt;&lt;a href="https://greenconvertofficial.blogspot.com/" rel="noopener noreferrer"&gt;Green Convert&lt;/a&gt;&lt;br&gt;
No account. No credit card. No "start your free trial" nonsense.&lt;/p&gt;

&lt;p&gt;Two quick questions for you&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What other image format should I add? (TIFF, BMP, GIF)&lt;/li&gt;
&lt;li&gt;Would you use a bulk or batch version (convert 50 images at once)?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drop a comment. I actually read them and build what people ask for.&lt;/p&gt;

&lt;p&gt;P.S. Your wallet can stop bleeding now.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
