VoicesZA
Civic platform
A public record where South Africans describe what happened to them at a government office — and the accounts add up into campaigns that office has to answer.
- at voices.org.za
- Live
- automated tests
- ~840
- payment rails built
- 2
// The problem
Complaints about public offices vanish into call centres and social media, one at a time. Nothing collects them where the office itself can be held to them, and nothing turns a pattern of the same complaint into pressure.
// What was built
- First-person accounts, each tied to the office responsible, with optional phone verification of the author.
- Escalation: when enough accounts describe the same thing, they become a campaign — petition, pledge or open letter.
- Moderation, office pages, and public statistics about the record.
- Payments for campaigns later on: Paddle for international cards, Payfast for Instant EFT and SnapScan in rand.
// Engineering
- Laravel and Livewire, rendered on the server, fast on cheap phones and slow connections.
- Two payment providers behind one interface; the part that differs is the browser flow (an overlay against a signed redirect), not the server.
- Around 840 automated tests, run by hand before every release; production behind Cloudflare with error tracking.
Built with
- Status
- LIVE PRODUCTION
- What it is
- Civic platform
- Public address
- voices.org.za
- Links
- Visit voices.org.za