Inspiration

I needed this app for my own home.

Managing household bills with flatmates is always messy. Invoices arrive at different times, someone pays for internet, someone else pays for water, and keeping track of who owes what in chat groups or spreadsheets is frustrating.

I also had questions about our spending that spreadsheets couldn't answer easily:

  • Are we spending more on electricity than last year?
  • Are we spending too much on internet?
  • Can we predict what we will spend next month or next season?

I wanted answers instantly in my hand, and I wanted my financial data to stay 100% private. A fast, local-first mobile app was the best solution.

What it does

Lamin is a private, local-first mobile app to manage properties, track utility bills, and split expenses:

  • Subsecond Invoice Scanner: Snap a photo or pick a PDF bill. Lamin extracts the amount, vendor, date, and category in under 200ms completely on-device. No cloud lag, no AI API bills.
  • Fair Expense Splits: Assign who is responsible for each bill, split costs between flatmates or tenants, and see exactly who has paid.
  • Spending Analytics & Trends: Compare spending year-over-year (electricity, water, taxes, maintenance) and see where your money goes.
  • 1-Tap Spreadsheet Export: Export your complete financial history to CSV/Excel whenever you need it.
  • 100% Private & Local-First: Your data lives in an on-device SQLite database. It works offline instantly, with optional end-to-end encrypted cloud backup.

How I built it

  • Frontend & App: React Native with Expo and TypeScript, styled with Tamagui for native 60fps iOS performance.
  • Storage: Local SQLite database for instant, zero-latency queries.
  • On-Device OCR: Native Apple Vision text recognition with deterministic regex extractors to achieve subsecond parsing with zero recurring cloud costs.
  • Monetization: RevenueCat integration for Pro subscriptions (cloud sync, unlimited properties, spreadsheet exports).

Challenges I faced

  • Subsecond Parsing Without Cloud AI: Getting accurate invoice data extraction without sending images to slow, expensive cloud LLMs. Building fast, localized regex extractors directly on top of device OCR was a challenge, but it runs in <200ms for free.
  • Split Logic: Creating a clean UI that handles both single-payer bills and custom splits between flatmates without making the form complicated.

What I learned

  • Local-first is unbeatable for UX: Opening an app without waiting for API spinners or network requests feels incredible.
  • You don't always need cloud AI: For structured documents like utility bills, fast on-device OCR and clever parsing beat a slow cloud model every time in speed, cost, and privacy.

What's next for Lamin

  • Predictive Spending Alerts: Warn users when a bill is trending significantly higher than the same month last year.
  • WhatsApp / iMessage Summaries: Generate a quick 1-tap summary card to send to flatmates at the end of the month.
  • Bulk imports: Bulk imports your invoices efortless.
Share this project:

Updates

Submission history