Skip to content

Appliance Retailer Desktop POS

Offline cash and installment sales with a penalty engine, undoable Excel import and backups.

2026Tauri, React, Rust, SQLite, Zustand

Problem

The store needed a practical desktop tool for inventory and receivables without depending on a cloud backend, server setup, or always-on internet connection.

Constraints

  • Must run locally without a cloud backend or server setup
  • Sales need to update stock, serial numbers, accounts, and payment schedules atomically
  • Installment accounts require penalties, rebates, restructuring, and payment history
  • Nontechnical users need reliable backup, restore, import, and export workflows
  • Desktop distribution should use Tauri installers instead of a heavy Electron package

Key Decisions

  1. Local-first Tauri over web app deployment

    The business needed reliable desktop use without managing hosting, networking, or cloud database access.

    Built a Tauri app with React UI and Rust/SQLite backend commands for all core workflows.

    Trade-off: No built-in multi-branch sync, but installation and day-to-day operation stay simple.
  2. Transactional sales workflow

    A sale touches stock, serial numbers, receivables, payment schedules, audit data, and reports.

    Use SQLite transactions through Rust commands so related updates succeed or fail together.

    Trade-off: More careful backend command design, but fewer partial-state failures in real store use.
  3. Maintenance tools inside the app

    The target users need to handle backups and data exports without developer help.

    Expose backup, restore, reset, PDF/Excel/CSV export, and import flows directly in the desktop UI.

    Trade-off: More surface area to test, but the app is much more operationally useful.
Role
Sole engineer
Timeline
Apr 2026
Stack
Tauri, React, Rust, SQLite, Zustand, Tailwind CSS, Recharts, shadcn/ui