Skip to main content

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
Native (Tauri)Runtime
Windows / macOS / LinuxPlatforms
Local-first (SQLite)Data

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.

Start with the right context

I am open to Staff / Senior Staff product roles and long-term contracting engagements. The useful first message is different for each.

Hiring team

Send the role, level, location constraints, interview process, and compensation range if available.

Client engagement

Send the product context, current system, timeline, team shape, and where ownership is missing.