AghaNwi Docs

How AghaNwi works, who it's for, how to onboard a real business, and where to look when things go sideways. Living doc; updated as features ship.

What is AghaNwi

AghaNwi is a composable trust + proof platform for Cameroon and the diaspora. It holds money safely until work is proven done, keeps a real record of everything that happens (photo, time, place, receipt), lets owners see and run their business from anywhere including from abroad, and moves every payment, mobile money or cash, through one accounted ledger so nothing quietly disappears.

The same engine fits the smallest phone repair kiosk and the biggest supermarket. The phone shop in Bonamoussadi, your mother's clothes store in Bamenda, a landlord's building, an importer's container, a peer seller on Buyam Sellam, and a corporate employer all run on the same core. Each one just gets a different setup.

The five primitives

  1. Escrow. Buyer's or tenant's money is held by the platform and released only when work or delivery is proven. If not, money goes back.
  2. Proof engine. Every important action carries photo + time + place + receipt.
  3. Remote owner dashboard. See money in, money out, who did what, what is left, from anywhere.
  4. Accountable agents. Local helpers (caretaker, seller, rider, inspector) are tracked and paid through the platform, not in skimmable cash.
  5. Mobile money + cash, both accounted. MTN MoMo and Orange Money plus cash sales with receipts and till reconciliation. Cash cannot quietly disappear.

Languages

AghaNwi ships in English, French, and Cameroonian Pidgin (PCM) from day one. Every UI string in all three. Owners pick a primary locale per tenant; individual workers can override on the device.

The mobile app and kiosk auto-detect the device language and fall back to English. Switch language at any time from the language toggle in the top-right.

Pick a business template

Every new tenant picks one of six templates at sign-up. The template seeds the right modules, locations, and roles.

TemplateBest for
retail_shopStandalone shops, kitchen wares, electronics, clothing
marketplaceMulti-seller arcades, big markets, food courts
propertyDiaspora-owned buildings, rentals, caretakers
importer_wholesaleContainer importers, consignment to local agents
servicesRepair shops, beauty, tutoring, professional services
employer_onlyCompanies that just want clock-in + payroll + proof

Fill the AI questionnaire

At onboarding the owner answers about ten short questions in their language. These seed your tenant AI's knowledge base so it can answer real questions like "what are your opening hours?", "what's your return policy?", or "who do I call when the rent is late?". You can extend the answers at any time from /admin/ai.

Name your tenant AI

Every tenant's AI carries the owner's name. KitchenDelights' AI is "Sidonie", because that's the owner. A diaspora landlord's AI might be "Mama Bih". This is the rule, not a setting. Tenants feel the app was built only for them.

Payment rails

AghaNwi treats cash and mobile money as equal first-class rails. The escrow ledger is the same. The receipts are the same. The audit trail is the same.

Install the kiosk on a tablet or device

  1. Open kiosk.aghanwi.com in Chrome on the device.
  2. Add to home screen (or "Install app" from the address bar menu). The kiosk works fully offline after first load.
  3. From the platform admin, register the device in kiosk_devices with a clear name (e.g. "Bonamoussadi gate kiosk"). Note the device code.
  4. Set the device code as VITE_KIOSK_DEVICE_CODE and the tenant as VITE_KIOSK_TENANT_ID in the kiosk's .env.

Set the WiFi anchor

The kiosk verifies it is physically on the right WiFi before accepting a clock-in. Add the office router's uppercase BSSID (MAC) to locations.wifi_bssids for that location. The kiosk reads /kiosk-config.json at boot; you can have a small native helper write the observed BSSID on each boot, or set VITE_KIOSK_EXPECTED_BSSID at build time. If no anchor is configured, kiosk falls back to anchor-disabled mode so it still works while you set things up.

How offline works

The kiosk PWA caches its shell on first load (service worker via vite-plugin-pwa). Every clock-in is written first to an IndexedDB queue. A background sync loop fires every 15 seconds, and on the online browser event, replays queued punches to the API. Workers see a small "N actions waiting to send" banner while the queue is non-empty.

Browse and buy on the mobile app

Open app.aghanwi.com or install the app from the App Store / Google Play (coming soon). The Browse tab loads live categories straight from your tenant's catalog.

Buyam Sellam (sell anything)

Buyam Sellam is the peer-to-peer lane. Anyone can list. Four sale kinds:

Stolen phones have nowhere to hide: every listed phone's IMEI is checked against the platform-wide blocklist before publish. Vouches add a trust signal. Boosts let sellers buy more reach.

Tech stack

SurfaceStack
DatabaseSupabase (Postgres 17), RLS on every tenant table
APINode 20+, Fastify, TypeScript strict
MobileExpo SDK 52, React Native 0.76, expo-router, i18next
KioskVite + React + vite-plugin-pwa, IndexedDB queue
Marketing site (this one)Static HTML, Netlify
PaymentsFlutterwave (mobile money), cash with till reconciliation

Get help

Issues, questions, feature requests: GitHub issues on the private repo (request access) or email tsi.angwafor@tatech.dev.