Skip to content

Inventory Management System

Desktop inventory application built with Tauri, React, and SQLite for canteen and retail businesses.

2025Tauri, React, TypeScript, Rust, SQLite

Problem

Small canteen and retail businesses needed an offline-capable, lightweight inventory system that runs on their existing Windows machines without requiring a server or internet connection.

Constraints

  • Must run entirely offline without a server or internet connection
  • Must work on Windows 10/11 with minimal system requirements (4GB RAM)
  • SQLite for local persistence, no external database setup
  • Distributable as a standard Windows installer (Inno Setup)

Key Decisions

  1. Tauri over Electron

    Needed a lightweight desktop app, Electron bundles Chromium (~150MB), too heavy for the use case.

    Chose Tauri which uses the system webview (WebView2 on Windows), resulting in ~5MB binary vs ~150MB for Electron.

    Trade-off: Smaller community and ecosystem than Electron, Rust learning curve, but 97% smaller bundle and lower memory usage.
  2. SQLite over a client-server database

    Target environment is a single-machine deployment, no need for network database access.

    SQLite embedded directly in the Tauri Rust backend for zero-config, zero-dependency data persistence.

    Trade-off: No concurrent multi-machine access, but perfect for single-store retail use and no setup burden on the end user.
  3. MUI + Tailwind for UI layer

    Needed rapid UI development with complex form components (date pickers, selects, data tables).

    Combined MUI for complex pre-built components with Tailwind CSS for custom layout and spacing.

    Trade-off: Larger CSS bundle from two styling systems, but significantly faster development with MUI's component library.
Timeline
2025
Stack
Tauri, React, TypeScript, Rust, SQLite, Tailwind CSS, MUI