Inspiration

Small businesses, especially mom-and-pop shops, struggle with manual invoice data entry.
They take photos of receipts but then spend hours typing data into spreadsheets.

We wanted to create a solution that's:

  • Privacy-focused (no cloud uploads)
  • Cost-effective (no monthly subscriptions)
  • Easy to use (just drag and drop photos)
  • Built for small businesses (not enterprise complexity)

What It Does

Ledgee extracts invoice data from photos using Chrome's built-in AI (Gemini Nano).
Users simply drag and drop invoice images, and the app automatically extracts:

  • Merchant information
  • Invoice numbers and dates
  • Line items with quantities and prices
  • Totals and tax amounts
  • Payment methods

All data is stored locally in the browser using IndexedDB, ensuring complete privacy.
Users can generate reports, view analytics, and sync data to their personal Google Sheets for backup and further analysis.


How We Built It

  • Frontend: Next.js 14 with TypeScript and Tailwind CSS
  • AI Processing: Chrome's LanguageModel API with Gemini Nano
  • Database: IndexedDB via Dexie for offline-first data storage
  • Charts: Recharts for analytics visualization
  • Google Integration: OAuth 2.0 for Google Sheets and Drive access
  • Deployment: Vercel with static export for offline capability

Key Technical Features

  • Offline-first architecture with IndexedDB
  • Chrome LanguageModel API integration
  • Google OAuth for personal account integration
  • Responsive design for desktop and mobile
  • PWA capabilities for app-like experience

Challenges We Ran Into

  • Chrome AI Integration: Getting Chrome's LanguageModel API to work reliably required extensive testing with different Chrome flags and model downloads.
  • Offline-First Architecture: Building a robust offline system with IndexedDB while maintaining data integrity and performance.
  • Google OAuth Flow: Implementing secure OAuth 2.0 with token refresh and proper error handling.
  • Data Extraction Accuracy: Fine-tuning prompts and data processing to handle various invoice formats and edge cases.
  • Cross-Browser Compatibility: Ensuring the app works consistently across different Chrome versions and configurations.

Accomplishments That We're Proud Of

  • Privacy-First Design: Built a completely offline-capable system that never uploads user data to external servers.
  • Chrome AI Integration: Successfully integrated Chrome's cutting-edge LanguageModel API for local AI processing.
  • Small Business Focus: Created a tool specifically designed for mom-and-pop shops, not enterprise users.
  • Complete Solution: Delivered a full-featured app with analytics, reporting, and Google Sheets integration.
  • Performance: Achieved fast invoice processing and smooth user experience with large datasets.
  • Open Source: Made the entire project open source to help other developers and small businesses.

What We Learned

  • Chrome AI Capabilities: Chrome's LanguageModel API is powerful but requires careful configuration and testing.
  • Offline-First Development: Building for offline-first requires different architectural decisions and testing approaches.
  • Small Business Needs: Understanding the specific pain points of small businesses vs. enterprise users.
  • Privacy by Design: How to build AI-powered tools that respect user privacy and data ownership.
  • OAuth Complexity: The intricacies of implementing secure OAuth flows with proper token management.

Built With

  • chrome-ai
  • nextjs
  • prompt-ai
  • react
  • tailwind
Share this project:

Updates