- My role
- Founder and engineer. I designed, built and run it.
- For
- Vularis (Pty) Ltd
- Year
- 2026–present
- Status
- In progress
Problem
South African service and trades businesses quote, sell and get paid inside WhatsApp, by hand. Quotes are typed out, payment details are sent as screenshots, and nobody can see what was sold.
What I built
Chatly is a multi-tenant conversational-commerce platform. A merchant connects their own WhatsApp number. Chatly runs the ordering and quoting conversation on it, takes payment through the merchant’s own payment account, records the sale and gives the merchant a dashboard over all of it. I designed, built and run it under Vularis (Pty) Ltd. It is in active development, at the founder-cohort stage.
- One Cloud Run service (Node.js, Express, TypeScript) serves the WhatsApp webhooks, the API and the merchant dashboard from the same origin. WhatsApp is integrated directly through the Cloud API as an Independent Tech Provider, with no reseller in between.
- Two datastores, split by access pattern. Firestore holds the hot path: tenant credentials, live conversation state and inbound-message idempotency. Postgres is the system of record for orders, customers, organisations and billing.
- One money chokepoint. Every payment, whether from chat checkout, a dashboard link, a PDF quote or a POS QR code, goes through one function. It refuses to create a link unless the merchant has their own Paystack subaccount, so no charge can settle to the platform account. Chatly never holds merchant money.
- Orders are written only by the payment webhook, only as paid or failed, so revenue figures read straight off the orders table.
- Safe under scale-out. Inbound messages are claimed with a Firestore create that fails if the document already exists. Payments are idempotent on the payment reference.
- A deterministic state machine, not an LLM, drives the conversation. Each timeout exists because production showed a customer could otherwise get stuck.
- Multi-tenant authorisation in one place: organisations, merchants and members with roles. Every route declares the capability it needs.
Milestones. Approved through Meta App Review for WhatsApp Business messaging and management. The quote-to-payment flow is proven end to end with a live transaction: a PDF quote and payment link delivered in WhatsApp, the money settled and the order recorded.
Not done yet, on the roadmap: an automated test suite, Cloud Scheduler for time-based automations, Secret Manager before the wider launch, and metrics and uptime checks beyond Cloud Logging and email alerts.
The full design, with 25+ architecture decision records behind it, is in the case study. The source is private.
Architecture
Stack
- Cloud Run
- WhatsApp Cloud API
- Paystack
- Firestore
- Neon Postgres
- Node.js · Express · TypeScript
- Next.js
Links
Restoration log
- Started Chatly under Vularis (Pty) Ltd.

