πŸͺ™ LEDGR: AI-Powered Expense Tracker | Email-to-Expense Magic with Postmark & Gemini AI
Jackson Kasi

Jackson Kasi @jacksonkasi

About: Self-taught tech enthusiast with a passion for continuous learning and innovative solutions

Location:
India
Joined:
Dec 25, 2020

πŸͺ™ LEDGR: AI-Powered Expense Tracker | Email-to-Expense Magic with Postmark & Gemini AI

Publish Date: Jun 8
21 13

This is a submission for the Postmark Challenge: Inbox Innovators.

What I Built πŸš€

Meet LEDGR - Receipt-Wise Ledger Pro πŸ“§πŸ’° - an AI-powered expense tracking application that transforms the tedious task of manual expense entry into a magical, automated experience!

Tired of manually entering every single expense? Just forward your receipt emails to LEDGR's dedicated address, and watch as Postmark's inbound parsing + Google Gemini AI automatically extract all the details - vendor name, amount, date, and category. It's like having a personal finance assistant that never sleeps!

The best part? You get smart budget alerts sent directly to your email when you're overspending. No more surprises at the end of the month! 🎯

Demo 🎬

🌐 Live Application

Try it yourself: ledger-mu.vercel.app

Test Credentials:

  • Email: jacksonkasi@jacksonkasi.xyz
  • Password: 1855*1855**

Or

Signup

Feel free to explore the dashboard, check out the expense analytics, and see how the system categorizes different types of expenses! The demo data shows real examples of processed receipts. πŸ“Š

πŸ—οΈ How It Works - Architecture Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Email Receipt │───▢│  Postmark        │───▢│  Server Functionβ”‚
β”‚   (Send to      β”‚    β”‚  Inbound Webhook β”‚    β”‚  (Process Email)β”‚
β”‚   app email)    β”‚    β”‚                  β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β”‚                       β”‚                       β–Ό
         β”‚                       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       β”‚              β”‚   AI Processing  β”‚
         β”‚                       β”‚              β”‚   (Gemini AI)    β”‚
         β”‚                       β”‚              β”‚   Extract Info:  β”‚
         β”‚                       β”‚              β”‚   β€’ Amount       β”‚
         β”‚                       β”‚              β”‚   β€’ Vendor       β”‚
         β”‚                       β”‚              β”‚   β€’ Date         β”‚
         β”‚                       β”‚              β”‚   β€’ Category     β”‚
         β”‚                       β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β”‚                       β”‚                       β–Ό
         β”‚                       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       β”‚              β”‚   User-Specific  β”‚
         β”‚                       β”‚              β”‚   Database       β”‚
         β”‚                       β”‚              β”‚   Update         β”‚
         β”‚                       β”‚              β”‚   (Supabase)     β”‚
         β”‚                       β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β”‚                       β”‚                       β–Ό
         β”‚                       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       β”‚              β”‚   Dashboard      β”‚
         β”‚                       β”‚              β”‚   (View & Edit)  β”‚
         β”‚                       β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β”‚                       β”‚                       β–Ό
         β”‚                       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       └─────────────▢│   Budget Alerts  β”‚
                                                β”‚   (Email via     β”‚
                                                β”‚    Postmark)     β”‚
                                                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Enter fullscreen mode Exit fullscreen mode

Code Repository πŸ“

Receipt-Wise Ledger Pro

A smart expense tracking application that automatically processes receipt emails and manages your finances.

Repository: https://github.com/jacksonkasi1/ledger.git

What is this project?

Receipt-Wise Ledger Pro is a web application that helps you track expenses by automatically processing receipt emails sent to a dedicated email address. When you send receipt emails to the configured address, Postmark's inbound webhook captures them and forwards the data to our server function, which uses AI to extract expense information and updates only your personal expense records.

How it works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Email Receipt │───▢│  Postmark        │───▢│  Server Functionβ”‚
β”‚   (Send to      β”‚    β”‚  Inbound Webhook β”‚    β”‚  (Process Email)β”‚
β”‚   app email)    β”‚    β”‚                  β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β”‚                       β”‚                       β–Ό
         β”‚                       β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚                       β”‚              β”‚   AI Processing  β”‚
         β”‚                       β”‚              β”‚   (Gemini AI)    β”‚
         β”‚                       β”‚              β”‚   Extract Info:  β”‚
         β”‚                       β”‚              β”‚   β€’
…

How I Built It πŸ› οΈ

My Journey with Postmark πŸ’Œ

Building LEDGR was an incredible journey that really opened my eyes to the power of email-driven applications! When I first discovered Postmark's inbound email parsing, I knew I had found something special.

The "Aha!" Moment: Most expense trackers require manual entry, but we all get receipt emails anyway. Why not just forward them and let AI do the heavy lifting? That's where Postmark's inbound webhooks became the perfect bridge between email and intelligent processing.

Tech Stack 🧰

  • Frontend: React + TypeScript + Vite βš›οΈ
  • UI/UX: Tailwind CSS + Radix UI for that clean, modern look 🎨
  • Backend: Supabase (Database + Auth + Edge Functions) πŸš€
  • AI Processing: Google Gemini AI (the real MVP for data extraction!) πŸ€–
  • Email Magic: Postmark Inbound + Outbound (the star of the show!) ⭐
  • Deployment: Vercel for seamless hosting 🌐

Implementation Deep Dive πŸ”

1. Postmark Inbound Setup πŸ“¨
Setting up Postmark's inbound processing was surprisingly smooth! I configured a dedicated email address that triggers a webhook to my Supabase Edge Function whenever someone forwards a receipt.

2. AI-Powered Data Extraction 🧠
Here's where the magic happens - when Postmark captures an email, I send the content to Google Gemini AI with a carefully crafted prompt that extracts:

  • Vendor/merchant name
  • Purchase amount
  • Transaction date
  • Expense category
  • Individual items (when available)

3. User-Specific Security πŸ”’
One crucial aspect was ensuring data privacy. The system only processes emails from authenticated users and maps them to their specific accounts. Your expenses stay yours!

4. Smart Budget Alerts 🚨
Using Postmark's outbound API, LEDGR sends personalized budget alert emails when spending exceeds set limits. It's like having a financial guardian angel!

Challenges & Lessons Learned πŸ“š

The Plot Twist: Right before submission, my Postmark account got temporarily restricted! πŸ˜… But this actually became a blessing in disguise - it forced me to build robust logging and manual features that made the app more comprehensive.

Key Learnings:

  • Postmark's reliability is incredible - even during my account hiccup, I could see all the successful processing in the activity logs
  • Email-driven applications open up so many creative possibilities
  • The combination of email parsing + AI creates truly magical user experiences
  • Always build fallback features (the manual expense entry saved my demo!)

What Makes LEDGR Special ✨

πŸ”„ Automatic Processing: Forward email β†’ AI extracts data β†’ Expense logged. That's it!

πŸ“± Progressive Web App: Works seamlessly on desktop and mobile with Dark & Light mood support πŸŒ’

πŸ“Š Smart Analytics: Beautiful charts and insights to understand spending patterns

⚑ Real-time Updates: Thanks to Supabase's real-time features, everything syncs instantly

🎯 Budget Intelligence: Proactive alerts prevent overspending

Future Possibilities πŸš€

The foundation is solid, and I'm excited about what's next:

  • PDF Receipt OCR: Process receipt attachments, not just email text
  • Multi-currency Support: For the global travelers out there
  • Banking API Integration: Automatic transaction imports
  • Team Expense Management: Share receipts and budgets with family/colleagues
  • Tax Preparation Tools: Smart categorization for tax season

Why Email-First Finance? πŸ’‘

Email remains the most universal communication tool - everyone has it, everyone uses it. By leveraging Postmark's robust infrastructure, LEDGR transforms existing email workflows into intelligent financial management. No new habits to learn, no additional apps to remember - just forward and forget!

A Big Thank You πŸ™

Huge shoutout to the Postmark team for creating such developer-friendly tools and hosting this amazing challenge! Building email-driven applications with Postmark was genuinely enjoyable - the documentation is top-notch, and the API is a dream to work with.

This project has convinced me that email-first applications are the future. When you combine Postmark's reliability with modern AI capabilities, you can create truly transformative user experiences! 🌟


Ready to try receipt-free expense tracking? Visit ledger and see the future of personal finance management! πŸ’«

Comments 13 total

  • Ayesha Imran
    Ayesha ImranJun 8, 2025

    Um, this is exactly like the app I made and posted a day ago, and even the name is same wtf????

    • Jackson Kasi
      Jackson KasiJun 8, 2025

      Hey, I understand your concern, but I can assure you that the idea and name for my app were developed independently.

      "LEDGR" is a pretty common word used in the fintech and crypto space, so it’s not something exclusive or unique to either of us. I actually wasn’t aware of your post or your project until now β€” just saw your profile for the first time, so I had no way of knowing.

      It’s totally possible we both landed on the same name or idea around the same time β€” this kind of thing happens often in tech. That said, I’m happy to chat more if you’re open to it. No bad intentions here, just building something I’m genuinely passionate about.

  • Dotallio
    DotallioJun 8, 2025

    I love how you used the email inbox as the entry point - makes it feel frictionless. Have you thought about adding banking API integration next?

    • Jackson Kasi
      Jackson KasiJun 8, 2025

      Thanks! πŸ™Œ Banking API integration is just an idea - honestly, the feasibility is pretty low with all the approval processes and restrictions.

      But the email approach actually works great! We use something similar at one of our project for fleet management system. Touch 'n Go (Malaysia's payment system) doesn't have public APIs, but they send expense emails. So we parse those emails to automatically track driver expenses - works perfectly! 🚚

      Sometimes email parsing is more reliable than waiting for APIs that may never come. Almost every service sends transactional emails anyway! πŸ“§

      Have you worked with banking APIs before? Curious about your experience! πŸ€”

  • Meenakshi Agarwal
    Meenakshi AgarwalJun 8, 2025

    This is a smart idea! Using email to track expenses means people don’t need to change habitsβ€”they just forward what they already get. I really like how it combines real tools like Postmark and Gemini AI to make things easier. The budget alerts and clean design make it even more helpful.

    • Jackson Kasi
      Jackson KasiJun 8, 2025

      Thank you so much! πŸ˜ƒ I really appreciate your thoughtful feedback. My goal was to make expense tracking as easy and natural as possible, so it means a lot to hear that you found the email approach and budget alerts helpful. I’m glad you liked the design too! If you have any more ideas or suggestions, I’d love to hear them. Thanks again for your support! πŸš€

      • Meenakshi Agarwal
        Meenakshi AgarwalJun 9, 2025

        Sure, I'm also now deeply getting into Agentic AI and related stuff, will reach out if something useful I could identify. Thanks and keep this good work up!

        • Jackson Kasi
          Jackson KasiJun 9, 2025

          Thanks! Wishing you the best as you dive into Agentic AI β€” really appreciate your kind words and support!

  • Nevo David
    Nevo DavidJun 8, 2025

    pretty cool tbh - i always end up with a pile of receipts in my inbox, so just forwarding them sounds way less stressful. you think this kind of setup actually changes how people budget or just makes it easier to ignore stuff?

    • Jackson Kasi
      Jackson KasiJun 9, 2025

      Thanks for your question! 😊 Some apps do auto-capture card transactions, so email forwarding might not be needed for everyone. But setting up auto-forwarding is super helpful when card data isn’t picked up or for receipts from different places.

      This method is actually really useful in business too. For example, one of the project, we use a similar approach for our fleet management system. Since Touch 'n Go (Malaysia’s payment system) doesn’t offer APIs, we just parse their expense emails to track driver expenses automaticallyβ€”it works great! 🚚

      So, while it might not change habits for everyone, email parsing is a simple and reliable way to capture expenses, especially when other options aren’t available

  • АнонимJun 9, 2025

    [hidden by post author]

  • John
    JohnJun 10, 2025

    Hi there! grab your guaranteed around $15 in DuckyBSC crypto right now! β€” Hurry up! Reward available after wallet connection. πŸ‘‰ duckybsc.xyz

    • Jackson Kasi
      Jackson KasiJun 11, 2025

      It appears to be spam; please avoid the link.

Add comment