Case Study — Desktop predecessor · AI
InteliFactu — AI invoice extraction, multi-tenant AI invoice SaaS
InteliFactu today is a multi-tenant SaaS that turns supplier PDFs into booked accounting entries. Its current platform runs an OCR and LLM invoice pipeline; an earlier desktop version used a cross-platform Tauri, Rust and Next.js application with AI-assisted extraction, configured for Windows, macOS and Linux from one Rust and TypeScript source tree, with local data in SQLite.
- Tauri
- Rust
- Next.js
- TypeScript
- React
- SQLite
- AI / LLM
Overview
This case study covers the retired desktop predecessor of InteliFactu, which now runs as a multi-tenant web product; the desktop app is what the architecture below describes. It was an 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. Its Tauri packaging targeted Windows, macOS, and Linux, with a Next.js + React frontend and Rust backend.
The desktop code included OpenAI extraction prompts and local invoice records. The successor SaaS has the documented PDF/OCR pipeline, structured extraction, and accounting-system integration.
What I built
- Tauri shell hosting a Next.js renderer process, with Rust commands exposing filesystem, SQLite access, and AI orchestration through the Tauri IPC boundary.
- 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 prompts for invoice data, with local company, provider, and invoice records accessed through Rust commands and dedicated SQL files.
- Cross-platform packaging configured for every desktop target Tauri bundles (.dmg, .msi, .deb/.AppImage) from one source tree, with the updater plugin wired in.
- SQL organized as one file per query, with separate extraction prompts under the Rust backend source tree.
Why this mattered
The desktop design kept the database on the user’s machine and used web UI technology inside Tauri. AI extraction was a separate part of the workflow; local database storage does not mean model requests stayed on the device.
Outcome
The desktop predecessor combined a Next.js renderer, Rust commands, SQLite, and extraction prompts in a Tauri application. It was later retired during the move to the multi-tenant web product. The desktop code included multi-platform bundle configuration and the updater plugin.