← WanshTry the sync

A side project · personal finance

My bank already emails me every rupee. Now something reads them.

Four banks, two inboxes, a salary that lands on the last working day and credit card bills that look like spending. SpendOS reads the alerts, cleans them up and tells me where the money went, without me typing a thing.

The real app is private. Every number on this page is sample data.

October30 Sep to 29 Oct

₹0spent

₹18,400 card bill paid, not counted · ₹799 refunded

  • Food delivery₹6,840
  • Groceries₹5,210
  • Travel₹3,120
  • Bills₹2,890
  • Shopping₹1,960

From inbox to ledger.

Six kinds of bank email. Watch each become one clean row, with transfers paired and the card bill kept out of spending.

Gmailbank alerts · read only
  • HDFCYou have done a transaction on your cardRs.450.00 spent on HDFC Bank Card x1234 at SWIGGY on 14-10-2026 21:42
  • sliceUPI payment successfulYou paid ₹286 to UBER INDIA via UPI. Ref 6281…
  • Union BankAccount debitedA/c XX9876 debited by Rs 5,000.00 via IMPS to slice. Ref 7739…
  • AxisTransaction alertINR 1,120.00 spent on Axis Card no. XX5678 at ZEPTO MARKETPLACE
  • HDFCPayment received on your credit cardPayment of Rs 18,400.00 received towards HDFC Card x1234
  • HDFCRefund processedRefund of Rs.799.00 from AMAZON credited to Card x1234
Runs every 30 minutes on its own
SpendOSOctober · spent ₹0

Press sync and watch six real kinds of bank email become clean rows.

    A month that starts on payday.

    Pick a month.

    October runs 30 Sept to 29 Oct.

    Salary lands on the last working day of the month, so that is when my month starts. Weekends push it back to Friday. A coffee on payday counts toward next month, the way it feels.

    Tested on my real inbox first.

    Only anonymised samples ever made it into the code.

    0real bank emails tested before launch
    0became transactions
    0emails it could not read
    4banks: slice, HDFC, Axis, Union Bank
    ₹0a month to run, free tiers only

    Under the hood.

    • Read only

      Gmail through Composio with read-only tools. Email bodies are not stored, only the parsed fields.

    • Money in paise

      Integers everywhere, days bucketed in IST. One definition of spending, used by every screen.

    • Explains itself

      Every row keeps its category, confidence and a plain reason. A correction offers to become a rule.

    • Locked to me

      Single owner, Face ID passkeys, signed sessions. Installs on the iPhone home screen.

    • Next.js + Supabase

      Server components, Drizzle migrations, Postgres on the free tier, Vercel hosting.

    • On a schedule

      GitHub Actions sync every 30 minutes, a nightly job for reconciling, budgets and digests.

    Built for one person. On purpose.

    I build small tools after the shift. In the day, I book meetings for WizCommerce.