Skip to main content
Projects
Demo availableMultimodal AI / Local-first / Thai/English

Receipt AI Expense Tracker

Manual expense entry is slow and error-prone when receipts mix Thai and English text, inconsistent layouts, and Buddhist Era dates.

Receipt expense tracker dashboard with totals, categories, and receipt history.
Project type
AI engineering
Core stack
Next.js 16, React 19, TypeScript
Delivery
Demo available

Case Study

The problem, implementation decisions, measured evidence, and next improvements.

Overview

A multimodal receipt-to-expense workflow with safe provider routing, human review, local persistence, and analytics.

Problem

Receipt images contain semi-structured financial data that must be extracted, normalized, reviewed, and stored without exposing provider credentials or silently persisting incorrect AI output.

Solution

Built a local-first Next.js application with a capability-aware AI router, structured Zod validation, Buddhist Era date normalization, editable human review, IndexedDB persistence through Dexie, and client-side spending analytics.

Outcome

The full product flow works without a database or account. AI parsing returns review data only; users explicitly confirm each receipt before it enters the local ledger and dashboard. The public deployment uses deterministic mock AI until server-side provider keys are configured.

What It Proves

Multimodal AI product design, Thai/English normalization, schema enforcement, local-first architecture, Next.js, IndexedDB, and testable provider fallback.

Key Features

  • Image-capability filtering prevents receipt images from being sent to text-only providers.
  • Zod validation rejects impossible dates, negative totals, and malformed receipt structures.
  • Reviewed records stay in the browser through a repository abstraction backed by Dexie.

Architecture

  1. 01

    Receipt upload

  2. 02

    Server-side AI router

  3. 03

    Structured extraction

  4. 04

    Zod normalization

  5. 05

    Human review

  6. 06

    IndexedDB repository

  7. 07

    Analytics dashboard

Tech Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Gemini
  • Groq
  • Cerebras
  • Zod
  • Dexie
  • Recharts

Challenges & Trade-offs

  • Buddhist Era dates such as 2568 normalize to Gregorian year 2025.
  • AI parsing never saves automatically; persistence requires explicit user confirmation.
  • Mock mode preserves the full validation and review path without spending provider quota.

Future Improvements

  • Add encrypted export and import for local ledgers.
  • Add duplicate receipt detection and batch upload.
  • Expose field-level confidence and review history.

Repository README, tests, and public deployment reviewed June 14, 2026.