CASE · Communication · 2024
Towncryer
Real-time communication platform rethinking messaging infrastructure for Africa.
Architecture
Context
Towncryer is a communication system designed around African network realities: intermittent connectivity, low-bandwidth devices, and high message volumes. The goal was a platform that stays usable when the network does not cooperate.
Architecture
- Responsive React and Next.js clients.
- Golang backend services exposing REST APIs.
- Socket.io for real-time delivery and presence.
- JWT and MFA for authentication and account security.
- A billing module with subscriptions, plans, and payment gateway handling.
What I worked on
- Built responsive interfaces using React and Next.js.
- Developed backend services and REST APIs using Golang.
- Delivered end-to-end features across frontend and backend systems.
- Produced technical documentation and collaborated across engineering teams.
What the system taught me
Real-time features are mostly about failure handling. Presence, delivery receipts, and message ordering all degrade under retries and flaky connections, so the client has to be able to recover state without trusting the last packet it received.
- Stack
- ReactTypeScriptGolangGINPostgreSQLSocket.io
- Outcome
- ⇒ Core messaging and presence shipped