0%case-study / production
← Back to projects

04 / Featured product

Involora

A privacy-focused, local-first desktop workspace for quotations, invoices, customers, products, payments, documents, reporting, and daily business operations.

ProductionWindowsmacOSLocal-first
workspace.jpg1920 × 1080
Involora local-first desktop invoicing and business operations workspace

/overview/product.md

Business data under user control.

Involora helps freelancers and small businesses manage the connected records behind quoting, invoicing, payments, customers, products and services, projects, reporting, and document output without making a hosted backend the default owner of their data.

My role spans product planning, information architecture, React and TypeScript UI, Tauri and Rust native development, relational SQLite schema design, migrations, transaction-safe services, PDF generation, localization, licensing, and desktop packaging.

ReactTypeScriptViteTauri 2RustSQLitePDF
// product type
Local-first desktop business application
// engineering focus
Relational data, documents, transactions, backup
// delivery
Windows and macOS application bundles

/architecture/system.map

Local-first by default.

The application keeps business records in a local relational database. UI state and native persistence are separated by typed commands so document workflows and schema changes remain testable and maintainable.

01 / interface

React + TypeScript

Business modules, document editors, settings, themes, localization, autosave status, and reporting.

02 / bridge

Tauri IPC

Typed request and response boundaries connect interface workflows to native data services.

03 / native core

Rust services

Validation, transactions, document operations, licensing, filesystem access, and system integration.

04 / persistence

SQLite + migrations

Relational business records, indexes, migration history, backups, and future sync-aware identifiers.

/engineering/decisions.log

Connected business workflows.

The product treats invoices as part of a wider data model—customers, line items, payments, taxes, inventory, projects, and reporting must remain consistent as records evolve.

01

Relational modelling

Customers, products, services, quotations, invoices, payments, projects, taxes, and settings are linked through a migration-managed SQLite schema.

02

Transaction safety

Multi-record operations use explicit service boundaries and transactions so totals, payment state, and related records change together.

03

Document output

Configurable invoice and quotation templates produce printable and PDF documents from the same validated business data.

04

Autosave feedback

Settings use queued, revision-aware saves with visible unsaved, saving, saved, and failure states instead of silent background writes.

05

Localization & themes

Structured locale files, consistent fallback behavior, and dark/light theme systems support a broader product surface.

06

Privacy and recovery

Business data stays local, protected actions use native capabilities, and backup/restore planning is part of the architecture rather than an afterthought.

/next/connect.sh

Need a local-first business product?

I design desktop applications where data modelling, migrations, transaction safety, document workflows, and maintainable native boundaries work as one system.