urAfro is the first e-commerce platform empowering indigenous local governments to provide cheap logistics rates for developing countries in Africa
# urAfro
A **mobile-first storefront + commerce app for African micro-merchants** — live in
production at **urafro.com**.
A merchant onboards by phone (OTP), builds a multi-vertical catalogue (inventory +
variants), and gets a customer-facing storefront (search/filter, cart, checkout),
an order console with web-push alerts, a manual customer/payment ledger, HTML
receipts, and delivery. **`CLAUDE.md` is the always-current build stage and living
source of truth — trust it and the code over this file.**
## Delivery — tenant #1 of urAfro Next
urAfro does not run its own dispatch. It is **tenant #1** of **urAfro Next**,
a standalone, monetised last-mile delivery platform, which it consumes through the
public `/v1` API + HMAC webhooks — never a private backdoor. This repo is one slice
of the cross-repo **Gophr-parity fusion** roadmap (board:
github.com); the canonical plan lives in
`urafro-next/docs/gophr-parity/`.
## Stack
- **Next.js 16** (App Router, Turbopack) · **React 19** · **TypeScript** · **Tailwind v4**
- **Supabase** (Postgres + Auth + Storage) · **Vitest** · **Vercel** (project `tinashys-projects/urafro`)
- Design system: ADR-034 "Brand V1" (tokens in `src/app/globals.css`, raw-hex CI gate)
## Develop
```bash
npm run dev # local dev server
npm run typecheck # tsc --noEmit
npm run lint # eslint src
npm run test # vitest (unit); npm run test:all adds integration
npm run build # next build (prod)
npm run gen:next-types # regenerate src/lib/next/api.gen.ts from the vendored openapi/v1.yaml
```
## Layout
```
src/app/ route groups: (auth) (merchant) (public), /store/[slug], /api
src/components/ auth · merchant · public · storefront · ui
src/lib/ supabase clients, validation, next/ (urafro-next /v1 client)
src/config/ constants.ts (app-wide values, single source of truth)
openapi/ vendored urafro-next /v1 contract → src/lib/next/api.gen.ts (generated)
docs/adr/ Arch …