The Problem
In Zimbabwe — and across much of Africa — infrastructure disruptions are a daily reality. Power cuts, water outages, road damage, and flooding affect millions of people every single day. But there is no centralized, real-time way for residents to know what is happening in their neighborhood, report issues quickly, or track whether problems are getting worse.
People rely on WhatsApp groups and word of mouth. It is slow, fragmented, and impossible to act on at scale. Local government and NGOs have no ground-truth data on where infrastructure is failing — or when it is becoming critical.
CrisisMap was built to fix that.
What It Does
CrisisMap is a community-powered crisis reporting platform that lets any resident submit a local incident report in under 60 seconds — and lets everyone else see a live map of what is happening right now.
- 🔴 Live incident map — color-coded pins by severity (red = critical, amber = ongoing, green = resolved)
- 📋 AI-generated summaries — every free-text report is automatically condensed into one clear sentence
- 🚨 Critical Cluster engine — when 5+ reports of the same issue type arrive from the same neighborhood within 1 hour, the system auto-escalates: red banner fires on the dashboard for all users simultaneously, map pin turns critical, admins are notified
- 📊 Trends & Insights page — weekly AI-generated paragraph summarizing the top issues and most-affected neighborhoods, calculated from real data
- 📱 Bilingual — full English and Shona language support
- 🔔 Technician alert system — on-duty engineers receive SMS notifications via Africa's Talking API when a Critical Cluster fires, routed by issue type and neighborhood coverage
- ⚡ Supabase Realtime — new reports appear on the map and feed instantly for all users, no page refresh needed
- 🛠️ Full admin panel — manage reports, send neighborhood alerts, export CSV, manage technicians
Try it live: https://app-binw77nxxgqp.appmedo.com/
What Inspired Me
Zimbabwe's infrastructure challenges are something I live with. The frustration of not knowing whether a power outage is just your house or the whole suburb — and having no way to find out except asking neighbors — is something millions of people experience every day.
I wanted to build something that was genuinely useful. Not a demo. Not a toy. A real tool that real people could open on their phones and immediately get value from.
The hackathon gave me the opportunity to try. MeDo gave me the ability to actually build it.
How I Built It
I built the entire application through conversation with MeDo. I did not write a single line of code manually.
I approached the build in four phases:
Phase 1 — Foundation
A single comprehensive prompt describing every page, the data model, the design system, and all AI features. MeDo scaffolded the entire multi-page application from this one conversation.
Phase 2 — Feature Iteration
Individual follow-up prompts for specific features:
- "Escalate to Critical Cluster when 5 reports hit the same area in an hour"
- "Generate a weekly AI insights paragraph automatically from real database stats"
- "Flag potential duplicate reports when the same issue type is submitted from the same neighborhood within 2 hours"
Phase 3 — Polish
Design and UX refinements for real-world conditions:
- "Make the submission form work on slow 2G/3G connections"
- "Add a Shona language toggle to the navigation"
- "Add skeleton loading states while data fetches"
- "Show an offline banner if the user loses connection"
Phase 4 — Integrations
Connecting external services entirely through conversation:
- "Add Supabase Realtime so new reports appear live for all users simultaneously"
- "Build a technician management system and route SMS alerts via Africa's Talking when a Critical Cluster fires"
- "Deploy three Supabase Edge Functions — send-sms-alert, notify-technicians, and daily-digest"
The Most Impressive Thing MeDo Built
The Critical Cluster auto-escalation system.
I described it in one sentence:
"If 5 or more reports of the same issue type arrive from the same neighborhood within 1 hour, escalate the map pin to Critical Cluster, fire a red banner alert on the dashboard for all users, and notify admins."
MeDo built the entire detection engine, database upsert logic, Supabase Realtime broadcast, animated banner component, admin panel integration, and 30-minute auto-dismiss — all from that single description.
Watching scattered individual reports collapse into a recognized pattern and trigger a live alert for every user simultaneously — that was the moment this stopped feeling like a demo and started feeling like a real system.
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React 18 + TypeScript + Tailwind CSS |
| Database | Supabase (PostgreSQL + RLS policies) |
| Realtime | Supabase Realtime subscriptions |
| Backend logic | Supabase Edge Functions (Deno) |
| Map | Leaflet.js |
| Charts | Chart.js |
| SMS alerts | Africa's Talking API |
| AI features | MeDo-generated Edge Functions |
| Deployment | MeDo (one-click) |
Challenges
1. Getting the Critical Cluster logic right The first iteration used too loose a threshold — 3 reports over 7 days. Through iteration with MeDo I tightened it to 5 reports within 1 hour with ~1km proximity, which produces meaningful escalations without false positives.
2. Duplicate cluster alerts Early versions inserted a new database row every time a cluster gained reports, causing duplicate banner cards on the dashboard. Fixing this required an upsert approach — one prompt to MeDo resolved it completely.
3. SMS delivery Africa's Talking sandbox environment simulates delivery without sending real SMS messages. The full alert infrastructure — three Edge Functions, technician routing, alert logs — is production-ready and pending live API activation.
4. Mobile performance Zimbabwe's mobile infrastructure means many users are on slow connections and older devices. Keeping the submission form lightweight and functional on 2G required deliberate iteration — stripping heavy JavaScript and ensuring the form renders before the map loads.
What I Learned
I came into this as a developer — someone who has spent years writing code manually. What surprised me was not that MeDo could generate code. It was that it could hold the architecture in mind across a dozen conversations, understand context, and make decisions I would have made myself.
The shift was not from coding to not coding. It was from implementation to intention. I spent my time deciding what to build and why. MeDo handled how.
That is a fundamentally different relationship with software development — and it is genuinely powerful.
What's Next
- 🔔 Live SMS delivery via Africa's Talking production API
- 💬 WhatsApp Business API alerts for richer notifications
- 📧 Email digest reports via Resend for NGOs and government
- 🌍 Expansion to other Zimbabwean cities and African urban centres
- 🏛️ Integration with local government response systems
Built for Zimbabwe. Built for Africa. Built for anyone who deserves to know what's happening in their own neighborhood.
#BuiltWithMeDo
Built With
- ai
- alerts
- api
- backend
- chart.js
- charts
- css
- database
- deno
- deployment
- edge
- features
- functions
- leaflet.js
- logic
- map
- medo
- medo-generated
- postgresql
- react
- realtime
- rls
- sms
- subscriptions
- supabase
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.