
AI-powered management for South African stokvels, members transact entirely over WhatsApp in their own language, every rand is reconciled from source, and records mirror to a read-only Notion workspace for full transparency.
View the product pageThe problem
~95% of stokvels run on paper; treasurer fraud is rampant and members have zero visibility. One fraud incident can destroy decades-old community trust. StokvelOS makes every rand visible and every transaction append-only, with the money math done by deterministic code, never by an AI.
.jpg&w=3840&q=75)
Architecture
A container-level view of the real system, the boundaries, the trust edges, and where intelligence and money actually flow.
Members never leave WhatsApp; Claude classifies each message against the stokvel’s constitution. Every confirmed transaction is written immutably and mirrored to a read-only Notion workspace, "paper can be faked, Notion cannot."
.jpg&w=3840&q=75)
By the numbers
19
tables · 6 schema files
20
rules parsed per constitution
5
automated fraud checks
6
languages live (9 designed)
Stack
Intelligence
A neutral "record-keeper" on Anthropic Claude Sonnet 4.6 with two-block prompt caching, a shared, cached "stokvel brain" plus a small uncached per-member block. It only classifies intent and language and narrates; it logs from_cache and token counts on every turn for built-in cost observability, and never settles a cent itself.
Data model
19 tables across 6 modular schema files · region-pinned jnb1
Key decisions
Architecture Decision Records, the trade-offs made deliberately, in the open.
.jpg&w=3840&q=75)
The hard parts, solved
The ledger never trusts a stored balance: on every contribution it re-derives Σ confirmed contributions − Σ payouts and raises a critical balance_discrepancy alert whenever the derived total diverges from the recorded funds by more than R10 and 1%.
pending_confirmations holds intent, payload and prompt between "Paid R500" and "YES" with a 10-minute expiry; YES/NO is parsed multilingually (yebo · ja · eya · haa … / hayibo · nee · aowa · hapana) before any money moves.
A ubuntu-framed mediator runs a 7-state machine (open → investigating → awaiting proof → reviewing → resolved | escalated) persisted with the full thread, auto-summarises past 8 turns to control tokens, and escalates to the chairperson only when the records genuinely can’t settle it.
Sourced from StokvelOS, README, MASTER_PROMPT, schema files, webhook routes.
.jpg&w=3840&q=75)
Keep exploring