Inspiration Water kills quietly in Kenya. People wake up, walk to the river, fill their jerricans, and go home — not knowing whether what they're carrying will make their children sick. We kept seeing the headlines: cholera outbreaks in Kibera, communities hospitalised after drinking from a contaminated borehole, families with no alternative but to keep using the same source that made them ill last week. The frustrating part? The data exists. Satellites pass over Kenya every few days capturing detailed imagery of every river and water body. Government agencies monitor water quality. Weather systems track rainfall and flood risk in real time. But none of that ever reaches the person actually drinking the water. We built AquaSense because that gap shouldn't exist.

What it does AquaSense puts water safety information directly in your pocket. Open the app and you see a live map of water sources near you — rivers, boreholes, reservoirs — each marked green, amber, or red based on current conditions. Tap any source and you get the full picture: pH levels, flood risk, water availability, and a 7-day trend. Then the AI takes all of that data and tells you, in plain language, exactly what to do — boil it, filter it, avoid it entirely, or it's safe to use. If conditions at a source you rely on suddenly turn dangerous, you get a push notification before you ever open the app. And if your signal drops, AquaSense keeps working — it caches everything locally so you always see something useful, never a blank screen.

How we built it We kept the stack practical and fast to ship:

Frontend: React Native with Expo Go — so any judge could scan a QR code and run the app on their own phone in seconds. Zustand for state, TanStack Query for smart caching, React Native Maps for the map layer. Backend: Python FastAPI — async throughout, backed by SQLite via SQLAlchemy. Lightweight, fast, and easy to run on a laptop with ngrok exposing it to the world. Satellite data: Sentinel-2 imagery via Sentinel Hub. We wrote custom evalscripts to extract NDWI, turbidity proxies, and flood indices from raw spectral bands — B3, B4, B8, B11, B12. Weather: Open-Meteo for rainfall forecasts and river discharge data. Completely free, no rate limits, and surprisingly powerful. AI: Groq running Llama 3 (llama-3.3-70b-versatile). Fast enough to feel instant, smart enough to turn band ratios into sentences a grandmother in Nyeri can act on.

Challenges we ran into The satellite work was harder than expected. Sentinel-2 doesn't hand you a pH reading — you get raw spectral reflectance values and have to derive meaning from them. Writing evalscripts that produce useful water quality proxies from band combinations, under hackathon time pressure, with limited documentation — that was genuinely tough. Groq's rate limits pushed us to rethink our architecture early. We couldn't afford to call the AI on every user request, so we flipped the model: generate recommendations on a 36-hour backend cycle and cache the results. Users read from the cache. It made the whole system more resilient, but it wasn't the obvious first design. Kenya's long rains create real cloud cover problems for satellite imagery. We had to build a complete fallback pipeline — seeded data, stored readings, graceful degradation — so the app never crashes or shows an error wall during the demo or in real use. And the hardest design challenge: how do you display turbidity indices and NDWI values to someone who just wants to know if their water is safe? We kept stripping things back until the answer was always visible in under three seconds.

Accomplishments that we're proud of Honestly? We built a real thing. Not a prototype with hardcoded fake data and a nice UI skin — a genuine end-to-end pipeline pulling live satellite imagery, processing it, running it through AI, and serving it to a mobile app, all in one day. We're proud of the offline architecture. It's easy to build an app that works on fast WiFi. Building one that degrades gracefully in a Nyeri village with intermittent 2G signal is a different problem entirely — and we solved it. We're proud of the AI prompt. Getting Llama 3 to consistently output structured, plain-language, actionable water safety advice from raw environmental data took a lot of iteration. When it works, it really works. And we're proud of the UI. It doesn't look like a hackathon project. It looks like something people would actually trust with their health.

What we learned Satellite data is more accessible than most developers realise — and more powerful. Sentinel-2 is free, global, and updated every few days. The barrier isn't the data; it's knowing which bands to combine and why. That's learnable. Designing for low connectivity isn't a constraint — it's a discipline. Every decision we made for rural Kenyan users made the app better for everyone. Offline-first, cache-first, fallback-first thinking produces more robust software full stop. The most valuable thing AI did in this project wasn't the analysis — it was the translation. The data already existed. What was missing was a way for a non-technical person to understand it and act on it. That's the gap AI actually closes. And we learned that a strong fallback is not a backup plan — it's part of the product. The seeded data, the cached recommendations, the graceful error states: those aren't edge cases. In the real world, they're often the main case.

What's next for AquaSense The immediate next step is getting it on the Google Play Store. Android is where the vast majority of Kenyan users are, and we want AquaSense in hands beyond this room as quickly as possible. The feature we're most excited about is USSD. Smartphones are not universal in Kenya — but GSM phones are. We want to build a USSD interface so that someone without a smartphone can dial a short code, select their area, and get a water safety reading back as an SMS. No data required. No app required. Just information reaching people who need it. From there: formal partnerships with WASREB and WRMA to pull in official government monitoring data alongside our satellite feeds. A community reporting layer so citizens can flag problems on the ground. And expansion — Uganda, Tanzania, Ethiopia — because the water access crisis doesn't stop at Kenya's borders. The goal hasn't changed from the moment we started building: no Kenyan should ever have to guess whether their water is safe.

Built With

Share this project:

Updates