Rhutvi's Cloud Kitchen
A local-first Tauri desktop app that unifies a small cloud kitchen's sales, inventory, purchases, and expenses into one financial picture, with paise-integer money handling, Swiggy commission and inclusive-GST extraction, and a Fluent UI interface packaged as MSIX.
Overview
Rhutvi's Cloud Kitchen is a local-first Windows desktop app built for a small cloud kitchen doing 2-3 orders a day, unifying sales, inventory, purchases, and expenses into a single ledger so the owner can see, without extra work, how much came in, how much went out, what's left in stock, and the day's surplus. Every screen is built around the four things the owner actually does daily. All money is stored as integer paise, never floating point, and Swiggy orders have GST extracted as inclusive (not added on top) plus a manually entered per-order commission, while direct/phone/WhatsApp orders pass through untouched.
Why it was built
Built for a specific cloud kitchen owner (Rhutvi, of Mami Bhas Kitchen) whose finances were being tracked manually with no unified view of gross sales versus what actually landed in hand after GST and Swiggy's commission. The spec was produced from a real interview with the owner, and the live database is seeded with the kitchen's actual 33-dish Swiggy menu and real prices, not placeholder data.
Integer-Paise Money Model
Every monetary value is stored as an integer number of paise (₹200.00 = 20000), never a float, because float rounding was found to produce daily-closing figures that disagree with themselves; a documented rounding rule (round half-up) handles any sub-paise computation.
Inclusive GST + Per-Order Swiggy Commission
GST is extracted from the order total rather than added on top (netOfGst = round(gross / 1.05)), and Swiggy's commission is typed in manually per order since it varies order to order; direct-channel orders skip both deductions entirely.
Separate or Combined Balance Modes
A settings toggle switches between tracking cash and digital (UPI/Swiggy settlement) balances separately, matching a physical drawer count, or as one combined total; switching is presentation-only and recomputes both views from the same transaction ledger with no data migration.
Tech Breakdown
A local-first single-laptop app needs real SQLite access and native packaging without an Electron-sized footprint; ~44 Tauri commands across settings, orders, purchases, expenses, closing, and reports keep all financial logic in Rust rather than duplicated in the frontend.
A shared DataSource interface with a mock (in-memory, used by tests and browser-mode dev) and a Tauri-backed implementation (forwards to Rust) lets the UI be developed and tested without the native backend running.
Gives native-feeling Windows UI (dialogs, dropdowns, tooltips) for free, though its default portal styling required an explicit override after it was found to inflate normally-invisible portal nodes into full-window overlays.
Packaged locally with Microsoft's winapp CLI and a self-signed dev cert for install/testing, matching the path the Store itself will re-sign on real submission, rather than distributing a bare NSIS/MSI installer.
- 1
A folder name containing an apostrophe broke the Windows resource compiler (RC2135) during MSIX builds; the build script now stages the app icon at an apostrophe-free temp path when it detects the problem, rather than requiring a folder rename.
- 2
Fluent UI's portal styling defaulted to copying the app shell's height/overflow/background classes onto every dropdown, dialog, and tooltip portal, silently inflating them into full-window overlays; the passing frontend test suite never touched real layout/paint, so this was invisible until the owner actually clicked through the app.
The MSIX now builds locally but nothing has been uploaded to Partner Center yet: the listing, screenshots, age rating, and a corrected publisher identity all still need to happen before an actual Microsoft Store submission.
Want to know more?
Happy to walk you through the details, just reach out.