cd ../projects

projects/kuyumapp.mdx·2026-06·Solo — Design & Engineering

KuyumApp

An offline-first POS and transaction management desktop app for gold jewelry retail — replacing paper ledgers, running in production.

ReactTypeScriptTauriRustSQLiteViteshadcn/uiTailwind CSS

// highlights

  • Gold product transactions across multiple categories with commission management
  • Role-based access control with full audit logging
  • End-of-day PDF reports with day-locking for immutable records
  • Integer-based money and gold storage, soft deletes, and automated stamped SQLite backups
  • In production at a real shop — parallel-run pilot validated against the paper ledger daily

Problem

Gold jewelry shops still run on paper ledgers. Every sale, purchase, and commission is written by hand, end-of-day totals are calculated manually, and records can be lost, altered, or simply misread. A cloud POS is a poor fit: the shop needs to keep operating when the internet doesn't, and the business data is too sensitive to hand to a third-party server.

KuyumApp is a desktop cash register and transaction management application built to replace that ledger — fully offline, no server required.

Approach

The app is built end-to-end in TypeScript — React with Vite, shadcn/ui, and Tailwind CSS — inside a Tauri native shell, with a local SQLite database and Rust for hardware integration. Everything runs on the shop's own machine; there is no backend, no account system, no network dependency.

Core capabilities:

  • Transactions — gold product sales and purchases across multiple product categories, with per-transaction commission management
  • Access control — role-based permissions, so staff and owner see and do different things, with every action captured in an audit log
  • End-of-day reporting — daily summaries exported to PDF, with day-locking: once a day is closed, its records become immutable

Financial integrity

A cash register's data has to be trustworthy, so integrity is designed in rather than bolted on:

  • Integer-based storage for money and gold amounts — no floating-point rounding errors in financial records
  • Soft deletes — nothing is ever destroyed; deletions are flagged and kept in the audit trail
  • Automated stamped SQLite backups — the database is snapshotted automatically, so any state can be recovered

Production pilot

KuyumApp is deployed at a single location — the family gold jewelry business — in a parallel-run pilot: staff use the app alongside the existing paper ledger, and outputs are validated against real daily records to surface bugs and edge cases before full cutover.

The shop's machine is a 2013 Mac. Legacy hardware compatibility issues were resolved, and the lightweight Tauri build stays performant on decade-old hardware.

Roadmap

  • Automated gold price ingestion, so daily rates no longer need manual entry
  • Voice-based transaction entry for hands-busy counter work
  • Commercial rollout to additional shops as isolated offline instances

Learnings

Building for a real business is a different discipline from building coursework. Users don't read documentation, hardware is old, and financial data must be beyond doubt — which is why the integrity features (integer money, day-locking, audit trails) ended up shaping the architecture more than any UI decision. Running the pilot in parallel with the paper ledger turned the shop itself into the test suite.