Inspiration
I've been tracking family expenses in a Google Sheet since I started earning money. With the advent of AI and deep reasoning models and as a seasoned software engineer, I figured: What is the future of expense trackers?
Most expense trackers feel like forms — you pick from dropdowns, enter numbers, hit save. But that's not how we think about money. We say "100 bucks for dinner yesterday" or "I'm paying 12,000 euros in 10 monthly installments." I wanted to build something that just understands that.
What it does
ExpenseCal is a natural language financial tracker and forecasting tool. You type expenses and income like you'd tell a friend — "5 coffees at 3 EUR each this morning" or "Monthly rent of 1500 USD starting today" — and it automatically extracts amounts, currencies, dates, quantities, installments, and recurring schedules.
Beyond tracking cash flow, there's an Inventory module that tracks physical assets you own (vintage guitars, watches, collectibles) with AI-powered valuation. Combined, you get your true net worth: what's flowing through your accounts plus what you actually own.
How I built it
The app is a Next.js 16 project with a React frontend using HeroUI components and Tailwind CSS. The backend uses PostgreSQL with Sequelize ORM. Natural language parsing is powered by Gemini 3 AI (LLM integration) that extracts structured financial data from free-form text — amounts, currencies, dates, installment schedules, and recurrence rules. Authentication is handled through Stack Auth. The architecture follows clean patterns: centralized routing, context controllers for state management, and a modular API structure.
Challenges I ran into
The Inventory valuation feature required orchestrating multiple AI steps in sequence. When you add an item like "1965 Fender Stratocaster sunburst, bought in 2018 for $12,000," the system needs to:
- Parse the natural language description to extract details (brand, model, year, condition)
- Generate an intelligent search strategy — what marketplaces to search, what query terms to use
- Execute focused web searches via Tavily to find current listings and sold prices
- Have the LLM analyze the search results and extract actual price points
- Calculate a price range with confidence levels based on how many data points were found
Making this pipeline reliable was tricky. Different items need different search strategies (vintage guitars vs. luxury watches vs. electronics). Price extraction from web snippets is messy — you're parsing "$2,500" from one source and "asking price: 2.5k" from another. And the system needs to gracefully handle low-confidence results by asking for clarification ("What year was it made?").
Accomplishments I'm proud of
The Inventory valuation genuinely works. You paste a list of things you own — "Vintage Rolex Submariner from grandfather," "MacBook Pro M3 Max purchased last month," "Eames lounge chair, original Herman Miller" — and the system immediately triggers background searches across the web to find current market values.
Within seconds, each item has an estimated price range with sources linked. The valuations update the item's worth automatically, so your net worth dashboard reflects real market data, not guesses. The whole flow is fire-and-forget: add your assets in natural language, and the AI handles the rest in the background.
What I learned
Gemini 3 AI is incredibly powerful for eliminating friction in data entry, but it needs guardrails. Users need to see what was parsed (amount, date, currency) so they can catch errors. I also learned that multi-currency support is essential for anyone with international expenses — and that handling recurrence rules (weekly, monthly, quarterly, yearly, with end dates or occurrence counts) is its own rabbit hole of edge cases. Hence the "cal" in ExpenseCal.
What's next for ExpenseCal
The Inventory module is the big next step — tracking physical assets with AI-powered valuation by searching marketplaces for current prices. I'm also building toward deeper AI integration: asking questions like "How much did I spend on food last month?" or "When can I afford a vacation?" and getting real answers from your data.
The goal is a complete personal finance picture: cash flow + assets + intelligent insights.
Built With
- gemini
- gemini3
- litellm
- nextjs
- openrouter
- tailwindcss
- tavilysearch

Log in or sign up for Devpost to join the conversation.