One codebase, two deployments
The same React + Express app ships two ways: as an Electron desktop install that runs fully offline at Gibs, and as a web app on a VPS for Ibrahim Business Manager.
case study · Distribution · fertilizer and FMCG · 2026
My own POS and inventory product. The same code runs online for Ibrahim Business Manager and as an offline desktop install at Gibs Distributor.

The Gibs edition is an offline desktop install — demo on request.
At Gibs Distributor, an FMCG distributor in Sheikhupura, stock lived in ledgers, every sale was a hand-written bill and shop debts were tracked on paper. Closing a day took hours, and there was no quick way to know what was in stock, who owed what, or whether the month had been profitable.
The same React + Express app ships two ways: as an Electron desktop install that runs fully offline at Gibs, and as a web app on a VPS for Ibrahim Business Manager.
Everything is stored in SQLite through sql.js and saved to a single file, so a shop needs no database server and the desktop edition works without internet.
An audit log records who created, edited or deleted orders, stock, payments and cash entries — with the amounts involved.
Stock is held in product batches and drawn down oldest-first. Scripted test suites cover the batch logic, carton and unit pricing, opening balances and double-click protection.
A push to main runs GitHub Actions: it connects to the server, builds, restarts the app under PM2 and fails the deploy if the health check doesn't answer.

Before this, everything was in registers and handwritten bills and it was hard to keep track. Now managing the business is easy — stock, sales and payments are all in one place.