Mnadhem
An operations hub built for how Tunisian retail actually works
- Role
- Full Stack Developer
- Period
- 2026 — Present
- Stack
- Next.js · TypeScript +4
Most inventory software assumes a business that banks everything, buys from suppliers who invoice, and sells through one channel. Much of Tunisian retail works differently. Mnadhem is built for how these businesses actually run.
01The problem
These shops run on a spreadsheet, a notebook and a group chat. Stock and cash only get reconciled at the end of the week, when it's too late to act. Imported tools don't fail because of language. Their data model assumes card payments, invoiced suppliers and a single sales channel.
02Approach
The cash ledger is the source of truth. Every sale, supplier payment, return, delivery fee or owner withdrawal is a ledger entry, and inventory is calculated from those entries, so the numbers reconcile on their own. Fast entry comes first: recording a sale takes one screen, because nobody will use a tool that's slower than their notebook.
- Double-entry cash ledger, with inventory calculated from it
- Multi-channel sales: shop floor, social media DMs, delivery partners
- Supplier accounts that handle partial, informal and out-of-order payments
- Role-based access for owners, shop managers and stockkeepers
03Architecture
Next.js App Router with server components for every page that reads data, so list views send almost no JavaScript to the browser. NestJS runs one module per domain (ledger, inventory, catalogue, identity) on PostgreSQL. Ledger records are never edited: a mistake is fixed with a reversing entry, so the history behind any number can always be traced.
- In active development as a personal project, not yet released
- Owner dashboard designed around the two daily questions: what's in stock, and what's owed
- Owned end to end: research, data modelling, API and interface
Dieture Website
The storefront for Qatar's leading healthy meal-subscription service
Working on something similar? I would like to hear about it.
Start a conversation