The Notebook Problem
Every last Saturday of the month, 180,000 Rwandans wake up early and show up. They bring shovels. They bring energy. They give three hours of their weekend to their community — because that is what umuganda is. Mandatory, yes. But also genuinely believed in.
And then they stand around waiting to be told what to do.
Meanwhile, three villages over, a footbridge has been broken for four months. A mother reported it to the cell executive back in February. He wrote it in a notebook. The notebook is on a shelf. The bridge is still broken. Children are still crossing a river every morning to get to school.
This is not a Rwanda problem. This is a systems problem. Two things that should be connected — community needs and community action — have never been connected. Tubyikorere connects them.
What We Built
Tubyikorere (Kinyarwanda: "Let's handle it together") is an AI-powered community governance platform built entirely around Rwanda's existing administrative structure and cultural practices.
Citizens report issues in Kinyarwanda via WhatsApp or a web form. Claude scores severity on a 1–5 scale and categorizes each issue. The cell executive sees a prioritized list — not a notebook, a dashboard. On the Thursday before umuganda, Claude reads the open issue backlog and the expected participant count and generates an optimal work group plan. Group A gets the school road. Group B gets the water pipe. Every person who shows up on Saturday knows exactly where to go and what to do. After the session, Claude writes the official sector report — a process that used to take two hours by hand — in under ten seconds.
The loop closes. The bridge gets fixed.
We built across five distinct user portals:
- Citizens — anonymous, frictionless issue submission
- Village Coordinators — field-first attendance and work recording
- Cell Executive Secretaries — the operational core, AI-assisted
- Sector Officials — cross-cell oversight and report review
- System Admins — Rwanda hierarchy management from province to village
The full Rwanda administrative hierarchy — 5 provinces, 30 districts, 416 sectors, 2,148 cells, 14,837 villages — lives in the database. Every issue, session, and report traces back through the real structure.
Stack: React 19 · Hono · Drizzle ORM · Supabase · Claude API
(claude-sonnet-4-20250514) · Twilio WhatsApp · Railway · Vercel
What We Learned
Claude handles Kinyarwanda better than we expected. Citizens can submit in pure Kinyarwanda — no English required — and Claude categorizes, scores, and summarizes with accuracy that surprised us. The language barrier we were most worried about turned out to be the thing that worked most naturally.
We also learned that the hardest design problem was not technical. It was making a government tool feel human. The citizen submission page is the most emotionally important screen in the app. Someone arriving there has probably watched their problem get ignored before. Getting the confirmation screen right — making them feel actually heard — required more iteration than any technical feature.
Challenges
The five-second constraint. Twilio times out WhatsApp webhooks after five seconds. Claude scoring takes one to three seconds on its own. Add DB writes and network overhead and you are right at the edge. We restructured the webhook to respond to Twilio immediately with an acknowledgment, then complete the Claude scoring and send a follow-up message — keeping the user experience intact while respecting the timeout.
One system, five very different users. A sector official and a village coordinator have almost nothing in common in terms of what they need from this app. Building five portals that share a design system without feeling identical required discipline — every portal had to be designed for its user's actual context. The coordinator uses the app at 8am in a field on a $50 Android. The sector official uses it at a desk reviewing monthly data. Same product. Different reality.
Scope against the clock. Tubyikorere as a full vision is a multi-year infrastructure project. As a hackathon build it is 25 pages, four Claude integration points, a WhatsApp pipeline, and five user portals in under 48 hours. Every feature decision was a cut. We cut everything that was not the loop — report, prioritize, assign, fix, report. If it did not serve the loop, it did not ship.
The Number That Matters
Umuganda has contributed over $60 million to Rwanda's development since 2007. That is 180,000 people, every month, for eighteen years, showing up without a system to tell them where they are needed most.
Tubyikorere is that system.
Built With
- anthropic-sdk
- claude-integration
- drizzle-orm
- hono
- postgresql
- react-19
- shadcn/ui
- supabase-storage-|-rest-api
- tailwind-4
- tanstack
- twilio
- vite
- whatsapp-webhook
Log in or sign up for Devpost to join the conversation.