<?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: Patel Devansh</title>
    <description>The latest articles on DEV Community by Patel Devansh (@pda-dp-shop).</description>
    <link>https://dev.to/pda-dp-shop</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%2F3854030%2F6df468e7-fbd1-4e72-bcd3-a5599ce488ad.jpeg</url>
      <title>DEV Community: Patel Devansh</title>
      <link>https://dev.to/pda-dp-shop</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pda-dp-shop"/>
    <language>en</language>
    <item>
      <title>How I Built a Privacy-First Offline PWA Expense Tracker</title>
      <dc:creator>Patel Devansh</dc:creator>
      <pubDate>Tue, 31 Mar 2026 18:25:29 +0000</pubDate>
      <link>https://dev.to/pda-dp-shop/how-i-built-a-privacy-first-offline-pwa-expense-tracker-3kob</link>
      <guid>https://dev.to/pda-dp-shop/how-i-built-a-privacy-first-offline-pwa-expense-tracker-3kob</guid>
      <description>&lt;h2&gt;
  
  
  What is Spendly?
&lt;/h2&gt;

&lt;p&gt;Spendly is an offline-first expense tracker PWA I built. &lt;br&gt;
No server. No cloud. Everything stays on your device.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;Most expense apps send your data to their servers.&lt;br&gt;
I wanted something that works 100% offline with real encryption.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;React + Vite (frontend)&lt;/li&gt;
&lt;li&gt;TailwindCSS (styling)&lt;/li&gt;
&lt;li&gt;Dexie.js (local IndexedDB)&lt;/li&gt;
&lt;li&gt;AES-256-GCM encryption&lt;/li&gt;
&lt;li&gt;WebAuthn (fingerprint/PIN lock)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cool Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;3 Ways to Add Expenses:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual keypad entry&lt;/li&gt;
&lt;li&gt;Barcode scan (Open Food Facts API)&lt;/li&gt;
&lt;li&gt;Bill photo scan (Tesseract.js OCR)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-256-GCM encryption&lt;/li&gt;
&lt;li&gt;PBKDF2 with 600,000 iterations&lt;/li&gt;
&lt;li&gt;Zero data sent to any server&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Live Demo
&lt;/h2&gt;

&lt;p&gt;👉 spendly-24hrs.pages.dev&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;👉 github.com/PDA-DP-Shop/spendly&lt;/p&gt;




&lt;p&gt;Drop a ⭐ if you find it useful!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>javascript</category>
      <category>privacy</category>
    </item>
  </channel>
</rss>
