All work

Retail ERP + AI agent

Mahar Mart

One shop. Everything connected.

A full POS and inventory system running a live shop, with a WhatsApp agent on top.

  • React
  • Node.js
  • SQLite
  • Google Sheets API
  • Tailwind RTL
  • n8n
  • PM2
The messaging agent's n8n workflow: an incoming webhook, voice-note transcription, a text classifier, then an AI agent that answers from the shop's Sheets data.
Actual n8n workflow

Behind the build.

The problem

The owner ran the business out of Google Sheets and was not going to stop. Any system that demanded he abandon Sheets was going to be abandoned instead.

What I built

React frontend, Node.js backend, SQLite, and bidirectional Google Sheets sync so his existing workflow keeps working. Full Arabic RTL admin dashboard in Tailwind. Thermal receipt printing through browser CSS @page rules instead of a native driver. 'Aya', a WhatsApp AI agent with a sub-agent architecture in n8n, answers stock and product questions off the Sheets data.

The result

Live at mahar.gentar.cloud, backend on PM2. Survived a VPS snapshot rollback with invoice data recovered. A mass-deletion bug, where Sheets sync treated the sheet as the absolute source of truth, was fixed with an action-aware webhook pattern that separates upsert from delete.

The Mahar Mart agent handling a customer in Egyptian Arabic: it greets them by name, lists herring, marinade and shrimp, and sends a photo of the packed product.
أهلاً بك يا أستاذ. The agent answers in the dialect customers actually use.