Inspiration
Every major disaster exposes the same failure — not a lack of resources, but a lack of coordination. During the 2004 Indian Ocean tsunami, dozens of NGOs flooded Aceh with water purification supplies while entire communities went without medical care. Victims waited days to be assessed. Donors had no idea if their money actually helped. We asked: what if AI could coordinate the entire relief pipeline in real time?
What it does
ReliefNet is an AI-powered disaster relief coordination platform with 5 specialized agents running on DigitalOcean Gradient AI:
- Intake Agent (Llama 3.1 70B) — Victims describe their needs in any language. The AI triages free-text into structured, actionable requests with urgency scoring in ~10 seconds.
- Matching Agent (Llama 3.3 70B) — Analyzes every NGO's capabilities, inventory, team size, and proximity to optimally pair resources to needs with confidence-scored rankings.
- Coordinator Agent (Llama 3.3 70B) — A conversational AI that answers real-time operational questions — "What's the biggest unmet need?" — with full situational awareness.
- Fund Router — Blockchain-verified fund disbursement so every dollar is tracked from donor to delivery.
- Communication Agent (Mistral Nemo) — Generates multilingual emergency alerts for affected populations.
The platform serves 5 roles — victims, coordinators, NGO admins, donors, and field responders — each with a tailored dashboard. A real-time simulation engine replays historical disasters (2004 Aceh tsunami, 2023 Turkey earthquake, 2024 Japan earthquake, 2025 Myanmar earthquake) so responders can train and coordinators can demo the system with realistic data.
How we built it
- Frontend: Next.js 16 (App Router) + React 19 with ShadcnUI v4, Tailwind CSS 4, and Mapbox GL for the live disaster map
- AI Agents: DigitalOcean Gradient AI ADK framework — 5 Python agents with tool use and a RAG knowledge base of disaster response protocols
- 3-Tier Fallback: Every AI endpoint degrades gracefully: Gradient ADK Agent → Direct Gradient Inference → Mock Response, ensuring the platform always works
- Auth: NextAuth.js v5 with role-based access and demo accounts
- API Layer: tRPC 11 with superjson for type-safe client-server communication
- Database: Drizzle ORM with PostgreSQL
- Real-time: Simulation engine with configurable speed (1x–10x) that generates realistic disaster events
- 11 AI API endpoints powering triage, matching, chat, predictions, gap analysis, area briefing, situation reports, donor impact messaging, and alerts
Challenges we ran into
- Agent response parsing — LLMs sometimes wrap JSON in markdown fences or return inconsistent schemas. We built normalization layers that strip formatting, re-parse, and validate every agent response before it reaches the UI.
- ShadcnUI v4 migration — The new version replaced
asChildcomposition withrenderprops via@base-ui/react, requiring us to patch components and rethink composition patterns. - Multilingual triage — Getting the intake agent to accurately parse urgency and categorize needs from free-text in Indonesian, Arabic, and other languages required careful prompt engineering and structured output schemas.
- Real-time simulation at scale — Coordinating timed event generation, map pin updates, notification feeds, and AI widget refreshes without race conditions or stale data.
Accomplishments that we're proud of
- A victim can describe their crisis in any language and get triaged in 10 seconds — no forms, no dropdowns, no English required
- The matching agent explains why each NGO is recommended, with confidence scores — not a black box
- The 3-tier fallback means the platform never goes down — it gracefully degrades through three AI tiers
- Full donor transparency with blockchain-verified fund tracking from contribution to delivery
- A real-time gap analysis that detects when NGOs are duplicating efforts and recommends reallocation
What we learned
- Prompt engineering is infrastructure — the difference between a good and bad agent response is entirely in the system prompt and output schema design
- Fallback systems are essential — in disaster relief, uptime isn't optional. The 3-tier pattern gave us confidence the demo (and a real deployment) would always work
- Role-based UX matters — the same data needs radically different presentation for a victim, a coordinator, and a donor. One dashboard doesn't fit all.
- Simulation-driven development — building the simulation engine first let us test every feature against realistic disaster data before writing a line of AI code
What's next for ReliefNet
- Live ReliefWeb integration — pull real-time disaster data from the UN's ReliefWeb API for actual ongoing crises
- Mobile-first field responder app — offline-capable PWA for responders with intermittent connectivity
- Multi-disaster coordination — handle multiple simultaneous disasters with cross-disaster resource sharing
- NGO onboarding pipeline — self-service registration with capability verification
- Expanded AI capabilities — predictive logistics (pre-position supplies before a disaster hits) and satellite imagery analysis for damage assessment
Built With
- digitalocean-gradient-ai
- drizzle-orm
- gradient-adk
- llama-3.1
- llama-3.3
- mapbox-gl
- mistral-nemo
- next.js
- nextauth.js
- postgresql
- python
- react
- shadcnui
- tailwind-css
- trpc
- typescript
- zod
Log in or sign up for Devpost to join the conversation.