Skip to content

Chatalog

Chatalog is an AI-powered WhatsApp order management system built for Ghanaian small businesses.

Core trick

Claude runs a tool-calling loop over WhatsApp webhook messages, reading and writing Postgres order rows through read and write tools.

Tags

Description

Chatalog is an AI-powered WhatsApp order management system built for Ghanaian small businesses. In Ghana and across West Africa, WhatsApp is the primary commerce channel; customers already message businesses to place orders. Chatalog formalises this: Customers order in natural language via WhatsApp, and Claude runs an agentic tool-calling loop that understands the request, checks the menu, creates the order, and replies naturally, no app download, no account needed. Store owners get a real-time admin dashboard with a Kanban board (new → confirmed → preparing → in transit → delivered), drag-and-drop status updates that instantly notify customers on WhatsApp, a natural language command bar for updating menu items, and automated payment nudges for unpaid orders. The core is an agentic loop: Claude receives a WhatsApp message, calls tools to read/write the PostgreSQL database, and iterates until it produces a final reply. Tools follow a strict read (get_*, list_*) / write (create_*, update_*, cancel_*) convention. Built with FastAPI + asyncpg on the backend and Next.js 16 + Tailwind v4 on the dashboard.
noelzappy/chatalog★ 20 forksPythonCreated Apr 24, 2026 · last push Apr 26, 2026

README excerpt

# Chatalog

AI-powered WhatsApp order management for Ghanaian SMEs.

Customers text a WhatsApp number in natural language — *"I want 2 wings and a Coke, deliver to East Legon, paying with Momo"* — and Chatalog's agentic loop (Claude calling tools against Postgres) takes the order, confirms the total, and replies. Store owners watch orders flow across a Kanban in real time and manage the menu with natural language too.

---

## Architecture

```
                   ┌────────────────────┐
  WhatsApp user ─▶ │ Twilio WhatsApp    │
                   │ Sandbox            │
                   └─────────┬──────────┘
                             │ webhook (form-encoded POST)
                             ▼
                   ┌────────────────────┐
                   │ FastAPI :8000      │
                   │  /webhook/whatsapp │
                   │  /api/orders       │──┐
                   │  /api/menu         │  │
                   │  /api/admin/*      │  │
                   └─────────┬──────────┘  │
                             │             │ HTTP (axios + TanStack Query)
                   ┌─────────▼──────────┐  │
                   │ agents/loop.py     │  │
                   │  Claude tool-use   │  │  ┌──────────────────┐
                   │  loop (max 5)      │◀─┼──│ Next.js :3001    │
                   └─────────┬──────────┘  │  │  Kanban + Menu   │
                             │             │  │  + NL command    │
                             │ asyncpg     │  └───────

Team