Inventory as a ledger, not a number in a column. Movements with a reason, stock reserved inside the order transaction, purchase orders through to goods-in, multi-location transfers and a supplier portal. Go or Node backend, your choice.
Coming soon — Q4 2026. Pre-order below at 50% off; nothing is charged until it ships.
Ledger
Every movement, with a reason
Multi-site
Locations and transfers
2
Backend editions
Atomic
Reservation inside the transaction
Announced, not shipped. Pre-order at half price and pay only when it lands.
Details
Version
0.1.0
Last Updated
August 2026
Pricing
Coming soon · Q4 2026Developer
pre-order · 50% off
$329$165
TeamPopular
pre-order · 50% off
$749$375
Extended
pre-order · 50% off
$1599$800
Reserve your copy now — you pay half, and only when it ships.
No card is taken now. We reply from [email protected] and invoice only on release.
Details
Version
0.1.0
Last Updated
August 2026
Pricing
Coming soon · Q4 2026Developer
pre-order · 50% off
$329$165
TeamPopular
pre-order · 50% off
$749$375
Extended
pre-order · 50% off
$1599$800
Reserve your copy now — you pay half, and only when it ships.
No card is taken now. We reply from [email protected] and invoice only on release.
Material UI
Frontend · MUI flavor
17+ production screens
Dark mode + design tokens
DashForge component library
Tailwind CSS
Frontend · Tailwind flavor
Same 17+ screens, utility-first CSS
DashForge/tw tokens — zero MUI dep
Mobile-first, drop-in Tailwind v3
The back-office half of a commerce system: the warehouse, not the shop.
Most stock bugs come from one decision made early — keeping quantity as a number in a column and updating it in place. That works until two orders arrive in the same second, or until someone asks why the count says 14 and the shelf says 11 and nobody can reconstruct what happened.
Inventory Kit treats stock as a ledger. Quantity is derived from movements, every movement carries a reason and a reference, and nothing is ever silently overwritten.
in / out / adjust / reserve / transfer, each with a reason code and a reference to the order, purchase order or count that caused it. Current quantity is a projection, not a stored guess.SELECT … FOR UPDATE. Two customers, one last unit, one winner. The naive version of this is the single most common way a stock system loses money.This is the stock core, not an ERP. It deliberately will not include:
The rule is the same as the other kits: if it makes the application start, it is in; if it is your business domain, it is yours to build — on foundations that are documented and tested.
Same architecture as the other kits, so if you own one you already know this one.
Client — React 19, TypeScript, Vite, in both client/mui/ and client/tailwind/.
Node edition — Express + TypeScript, Postgres, JWT + bcrypt.
Go edition — Go + Gin, Postgres, standalone pkg/rbac, JWT + bcrypt.
Both editions share the same schema, the same API contract and the same SQL migrations — which is exactly why the migrations are plain .sql rather than an ORM's: two backends cannot drift from one file.
Email [email protected] with the edition and tier you want. We reserve it at 50% off the listed price and invoice only when the kit ships. No card now, and if it slips or you change your mind the reservation lapses.
Pre-ordering also gets you the scope document as it firms up, and your input goes into it while the design is still open — which is worth more to us than the deposit we are not taking.
Every stock system starts as a column called quantity and a form that edits it. The rewrite comes when someone finally asks what happened between Tuesday and Friday, and the honest answer is that nobody knows.
Building the ledger version first is not over-engineering. It is the version that still tells you the truth in month eighteen.