Case Study — Desktop · AI
InteliFactu — Cross-platform desktop invoicing with AI extraction
Built a cross-platform desktop application using Tauri, Rust, and Next.js to process invoice workflows with AI-assisted extraction. Native performance on Windows, macOS, and Linux from a single TypeScript codebase, with local-first data via SQLite.
- Tauri
- Rust
- Next.js
- TypeScript
- React
- SQLite
- AI / LLM
Overview
InteliFactu is a desktop invoicing application built for small businesses and freelancers who deal with high invoice volumes and want to keep their financial data on their own machine. It runs natively on Windows, macOS, and Linux via Tauri, with a Next.js + React frontend and Rust backend.
The differentiator is AI-assisted extraction: drop a PDF or image of an invoice into the app and it parses supplier, amounts, tax breakdown, and line items into structured records ready to be edited and persisted locally.
What I built
- Tauri shell hosting a Next.js renderer process, with Rust commands exposing filesystem, SQLite access, and AI orchestration through a typed IPC layer.
- Local SQLite schema for clients, invoices, line items, tax rates, and supplier records — designed so the entire database lives on the user’s machine, not on a remote server.
- AI extraction pipeline that handles PDF and image inputs, normalizes the extracted fields into the local schema, and presents a structured review step before persistence.
- Cross-platform packaging (Tauri bundle for .dmg, .msi, .deb/.AppImage) so the same codebase ships to every desktop OS without per-platform builds in the source tree.
- Strict Rust/TypeScript boundary discipline — one Tauri command per file, no inline SQL in Rust, prompts and queries loaded with include_str! from dedicated files.
Why this mattered
Invoicing is the kind of workflow where local-first data isn't a nice-to-have but a baseline expectation: the user already trusts their accountant and their filesystem; they don't need another SaaS asking for their tax data. Tauri made it possible to build something that feels like a modern web app — the same React UI, the same TypeScript ergonomics — without the privacy and performance tradeoffs of running everything in a browser tab or Electron shell.
Outcome
InteliFactu validated the stack choice: Tauri + Next.js renderer + Rust commands + SQLite + AI extraction is a viable architecture for a desktop product that needs native performance, offline capability, and modern web UX. The codebase is structured to add new document types and extraction workflows without rewriting the IPC or persistence layer.