Here is everything in a single, copy-pastable block:

## Inspiration
Most personal finance apps force an uncomfortable compromise: either manually maintain tedious spreadsheets, or hand over sensitive bank credentials and financial logs to third-party cloud servers where personal data is stored, monetized, or vulnerable to breaches. We asked ourselves: Why can't expense tracking be as intelligent as modern AI, yet as secure and private as an offline notebook? We set out to build SpendSense—an application that delivers conversational AI financial insights while ensuring 100% of the user's financial records live exclusively inside their own browser.

## What it does
SpendSense is an AI-powered, privacy-first personal finance tracker and analytical assistant:
- In-Browser Relational Ledger: Runs a local SQLite database directly inside your browser using WebAssembly. All transactions, category definitions, and balance summaries are computed with native SQL queries and saved across sessions via IndexedDB.
- "Ask Your Data" AI Chatbot: Users can chat with their money in natural language (e.g., "How much did I spend on dining out this month?" or "What was my single largest expense?") and get clear, instant answers backed by their actual ledger.
- Proactive Financial Insights: Automatically analyzes spending velocity to surface prioritized savings opportunities, detect overspending anomalies, and generate period summaries.
- Smart Auto-Categorization & Bulk Parsing: Real-time AI categorization recommends categories as you type, and a bulk-paste tool extracts multiple transaction rows directly from raw bank SMS alerts or receipt notes.
- Budgets & Visual Analytics: Dynamic Recharts visualizations track monthly spending trends, category distributions, and income vs. expense ratios, paired with category budget limits and visual progress alerts.
- Data Sovereignty: Easy one-click CSV export and import ensures users always own their data without vendor lock-in.

## How we built it
- Frontend: Built with React 19 and Vite, featuring a responsive, modern dark-mode UI styled with custom vanilla CSS and glassmorphic cards.
- Local Database Engine: Compiled SQLite to WebAssembly (sql.js), enabling client-side relational SQL execution (SELECT, GROUP BY, aggregations) with zero backend database dependencies. Snapshots are persisted to IndexedDB.
- AI Inference: Integrated Groq Cloud REST APIs with ultra-fast LPU inference (utilizing models like openai/gpt-oss-120b, qwen/qwen3.8-27b, and Llama 3.3). We built an intelligent multi-model failover pipeline and an in-app custom API key manager.
- Data Visualization: Integrated Recharts for real-time monthly trendlines, category distribution donuts, and cashflow comparisons.
- Deployment & Networking: Deployed on Vercel with custom rewrite rules for streamlined API routing and SPA fallback.

## Challenges we ran into
- WASM Binary Lifecycle & Persistence: Compiling and serving sql.js WASM binaries cleanly through modern Vite bundling without MIME-type or loading race conditions required careful asset pipeline configuration. Additionally, bridging an in-memory WASM database to IndexedDB snapshots to prevent state loss on page reloads required implementing atomic export/import routines.
- Eliminating AI Math Hallucinations: LLMs are notorious for hallucinating financial arithmetic. Rather than having the AI compute balances, we designed a hybrid deterministic-generative architecture: the browser's SQLite engine runs exact SQL aggregation queries first, and pre-computed summaries are passed to the AI to interpret and articulate into conversational insights.
- API Resilience & Rate Limiting: Free-tier AI endpoints can occasionally throttle or experience tier changes. We built an automated client-side failover chain that gracefully cycles through candidate models if an endpoint is busy or throttled.

## Accomplishments that we're proud of
- Zero-Cloud Ledger Architecture: Achieving full financial ledger capability with zero remote database servers—your financial transactions never leave your local machine.
- Blazing Fast Natural Language Querying: Combining Groq's high-speed inference with local SQL queries provides near-instant conversational responses about personal spending.
- Seamless Local Persistence: Instant startup with pre-seeded demo data that smoothly syncs with IndexedDB without blocking the UI thread.
- Clean, Cohesive UX: Delivering a polished glassmorphism interface that feels like a native desktop finance tool rather than a generic template.

## What we learned
- How to efficiently coordinate WebAssembly binaries (sql.js), in-memory databases, and browser storage APIs (IndexedDB).
- Best practices for designing hybrid AI architectures where deterministic SQL handles computation while LLMs handle natural language comprehension and synthesis.
- Techniques for building bulletproof client-side API fallbacks and error-recovery patterns for production LLM interfaces.

## What's next for SpendSense
- Client-Side OCR Receipt Scanner: Integrating local computer vision / multimodal models to let users photograph receipts and have line items automatically extracted into the ledger.
- Zero-Knowledge Encrypted Cloud Sync: Optional end-to-end encrypted backup (E2EE) allowing users to synchronize their local SQLite database across devices without the server ever being able to read their financial data.
- Predictive Cashflow & Recurring Bill Detection: Time-series forecasting algorithms to alert users ahead of upcoming subscriptions and predict month-end savings balances.
- Dedicated Web Worker Offloading: Moving all SQLite operations and CSV parsing into dedicated background Web Workers for silky-smooth 120fps performance on large multi-year ledgers.
Share this project:

Updates

Submission history