<?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: Bishnu Saha</title>
    <description>The latest articles on DEV Community by Bishnu Saha (@backend_null).</description>
    <link>https://dev.to/backend_null</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%2F3989279%2F266e2ed4-919e-47a8-8b51-fc5a0b3984e3.jpg</url>
      <title>DEV Community: Bishnu Saha</title>
      <link>https://dev.to/backend_null</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/backend_null"/>
    <language>en</language>
    <item>
      <title>I Built a Free Expense Tracker Because I Was Terrible With Money</title>
      <dc:creator>Bishnu Saha</dc:creator>
      <pubDate>Wed, 17 Jun 2026 14:26:06 +0000</pubDate>
      <link>https://dev.to/backend_null/i-built-a-free-expense-tracker-because-i-was-terrible-with-money-4jmo</link>
      <guid>https://dev.to/backend_null/i-built-a-free-expense-tracker-because-i-was-terrible-with-money-4jmo</guid>
      <description>&lt;p&gt;I used to check my bank balance at the end of every month and just stare at it.&lt;/p&gt;

&lt;p&gt;Good salary. Nothing saved. No idea where it went.&lt;/p&gt;

&lt;p&gt;I tried spreadsheets. I tried Mint. I tried YNAB. Every app was either too complex, too expensive, or just not something I'd actually open every day.&lt;/p&gt;

&lt;p&gt;So I built my own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Spendly?&lt;/strong&gt;&lt;br&gt;
Spendly is a free, clean monthly expense tracker built for people who just want to know where their money goes — without learning a new system.&lt;/p&gt;

&lt;p&gt;No bank account linking. No subscription. No complexity.&lt;/p&gt;

&lt;p&gt;Just: open it, add an expense, close it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live: &lt;a href="https://spendly.it.com" rel="noopener noreferrer"&gt;https://spendly.it.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;br&gt;
Add and categorize daily expenses in seconds&lt;br&gt;
Set a monthly budget and track it in real time&lt;br&gt;
Visual donut chart — breakdown by category&lt;br&gt;
Cycle history bars — compare spending month over month&lt;br&gt;
Savings goals tracker&lt;br&gt;
Dark mode&lt;br&gt;
Works on any device — no installation needed&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt; — React + Vite, deployed on Vercel&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt; — Node.js + Express + Prisma, deployed on Render&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database&lt;/strong&gt; — PostgreSQL via Supabase&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auth&lt;/strong&gt; — JWT stored in localStorage&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hardest bug I fixed&lt;/strong&gt;&lt;br&gt;
The most frustrating bug was a timezone mismatch in production.&lt;/p&gt;

&lt;p&gt;My cycle helper was using local time methods (new Date(year, month, day)) on the client. But the server runs in UTC. So when I was in IST (UTC+5:30), the client sent a cycleStart ISO string that the server mis-parsed into the previous month — returning zero expenses every time.&lt;/p&gt;

&lt;p&gt;Fix: use UTC methods everywhere (getUTCFullYear, getUTCMonth, Date.UTC()) on both client and server.&lt;/p&gt;

&lt;p&gt;Lesson: always use UTC in production. Local time will betray you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned building this&lt;/strong&gt;&lt;br&gt;
Free tiers (Vercel + Render + Supabase) are genuinely powerful for solo projects&lt;br&gt;
Render cold starts on free tier are real — first load takes 30-50 seconds&lt;br&gt;
Prisma auto-camelCases column names — monthly_budget becomes monthlyBudget in JS&lt;br&gt;
Building for yourself first makes product decisions 10x easier&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's next&lt;/strong&gt;&lt;br&gt;
Mobile app (React Native)&lt;br&gt;
Recurring expenses&lt;br&gt;
Export to CSV&lt;br&gt;
Email summary every month&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://spendly.it.com" rel="noopener noreferrer"&gt;https://spendly.it.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's completely free. No ads. No premium tier. No credit card.&lt;/p&gt;

&lt;p&gt;I'm at about 10 users right now and genuinely want honest feedback — what would make you actually use an expense tracker every single day?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drop a comment — I read every one.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
      <category>react</category>
      <category>sideprojects</category>
    </item>
  </channel>
</rss>
