AWS Builder Center

A Day with Saans: An Air-Quality App for Indian Cities That Tells You What to Do, Not Just What the AQI Is

Follow one winter day to see how Saans turns forecasts, weather, fire data and health guidance into simple decisions for families and city officials across Indian cities, built serverless on AWS.

Most air-quality apps answer one question: how bad is the air right now?
But that's rarely the question people actually have. On a smoggy winter morning in an Indian city, people want to know: Should I go for my walk? Will it get worse tonight? Which route home is less hazy? Is my mother, who has asthma, okay today?
We built Saans (Hindi for "breath") to answer those questions. It's an air-quality companion for Indian cities that turns monitor readings, forecasts, weather, fire data and health guidance into simple decisions, for families and for the officials who manage a city's air. We built it for Environmental Hacks in the Air track, and it runs fully serverless on AWS.
Rather than tour the app menu by menu, this post follows one day with Saans, because that's the clearest way to see what it does and why.

The problem: a number isn't a decision

Four ways an AQI number on its own lets people down, and how Saans answers each one.
An AQI number fails people in four ways:
  1. It isn't local. It comes from the nearest monitoring station, which may be kilometres from your street.
  2. It comes too late. Stagnant air and smoke from upwind fires build up overnight. People find out after they've been breathing it.
  3. It doesn't say what to do. An AQI of 320 means something very different for a healthy student than for an elderly person with COPD.
  4. Sometimes it's missing. During Diwali 2025 in Delhi, only 9 of the city's 39 monitors reported continuously through the 36-hour peak, according to a Hindustan Times analysis cited by Envirocatalysts .
This matters at a huge scale. The State of Global Air 2025  report links air pollution to about 2 million deaths in India in 2023. Every feature in Saans exists to close one of these four gaps.

A day with Saans

Each feature in Saans is built around a question people actually ask during the day.

Before the day starts: Saans gets to know you

The first time you open Saans, it asks a few quick questions: what to call you, your age group, how much time you spend outdoors, your home environment, and whether you have a condition such as asthma or a heart or lung problem. There's no account to create, and the answers stay in your browser.
Saans uses them to choose the right kind of advice. An outdoor worker, a commuter, a child, an older adult and someone with asthma will each see different suggestions on the same day, in the same city.

7:00 AM: "Can I go for my walk?"

The Today screen answers this first. It shows an indicative AQI for your location, the pollutant that matters most right now, a short forecast, and steps matched to your profile, such as "wait until the afternoon" or "wear a well-fitted N95 if you must go out."
Saans is careful about what it claims. Its AQI follows the CPCB method on model data corrected with nearby monitors, and it's always labelled indicative, never presented as the official CPCB reading. Estimates come with a range instead of a falsely precise number.

8:30 AM: "Why is it so bad today?"

Overview: the current estimate with its range, the next 48 hours, and a plain-language explanation of the coming spike.
Overview shows a 48-hour hourly forecast, and the part people like most sits just below it: "Why the line jumps." Whenever the forecast shows a spike or a dip, Saans explains it in one sentence using weather data, for example:
Spike: a shallow mixing layer traps pollution near the ground; light winds don't flush it out.
When the weather doesn't explain a spike, Saans says "likely local sources or model noise" instead of inventing a reason. That honesty is deliberate.
Overview also shows the last 30 or 90 days of history, with each unusual day explained the same way, and you can download the data as CSV.
The last 90 days of PM2.5 alongside ventilation (how well the air is mixing), with spikes and dips explained from weather data.

10:00 AM: "What is this pollution doing to me?"

The Health section ranks today's pollutants from worst to least. Tap one to see where it affects the respiratory system, its short- and long-term effects, how today's level compares with WHO guidelines, and practical indoor tips for that specific pollutant. The lung illustration is educational; it highlights areas associated with a pollutant, not an injury. Saans never diagnoses, and every health screen says so.

12:00 PM: "Can I trust this reading?"

Airspace shows nearby monitoring stations on a map with their latest readings and how fresh the data is. Tap a station in the list and the map flies to it. Search any place in India, or share your location if you choose to.

5:30 PM: "Which way should I drive home?"

In winter haze, it's hard to tell which route is worse. The Trip planner compares up to three driving routes by estimated PM2.5, visibility, hazy kilometres and travel time, and shows how well each route is covered by real monitors. It can also compare departure times over the next day, so you can see whether leaving an hour later means cleaner air. When routes are similar, it recommends the faster one, because less time on the road also means less exposure.

9:00 PM: "Will it get worse overnight?"

If you opt in, Saans sends email alerts for your location, either hourly or only when conditions change. You confirm your email once, and every alert includes an unsubscribe link.

Any time: just ask

Tap Ask Saans and type a question in English or Hindi, like "Aaj subah walk pe jaun?" It answers using live data, CPCB guidance and your profile, with sources. The advice itself comes from reviewed rules; a language model only helps with the wording, so it can't invent health advice.

One question a day

Saans also asks one air-awareness question each day, in English or Hindi, and keeps a streak going, like the daily puzzles people already enjoy on other apps. You can practise past questions without affecting your score. A little learning every day sticks better than one long article.

The same data, for the city

Air quality isn't only a personal problem, so Saans has a second view. Switch to Government and the same data starts working for local officials.
Area Watch: where the air is coming from, how well it's mixing, and an hour-by-hour outlook.
Area Watch shows the wind direction, temperature, humidity, mixing height and the ventilation index (mixing height × wind speed). When ventilation falls below about 6,000 m²/s, Saans labels the air "Stagnant": pollution has nowhere to go. That one label explains a lot of bad-air days.
NASA FIRMS fire hotspots and the upwind zone they could send smoke from.
Below it, a map shows NASA FIRMS fire hotspots with their intensity, plus the upwind zone they could send smoke from. The upwind zone is a heuristic, not a validated smoke model, and the app says so clearly.
For Delhi, the government view also ranks wards by forecast air quality for the next 24 hours, using a graph neural network trained on CPCB station data. Each ward comes with a range, to help prioritise inspections, water sprinkling and construction checks. Officials can also preview a bilingual advisory for subscribers in an affected area; in this prototype it's clearly labelled as simulated.

Under the hood

Saans runs fully serverless on AWS, so it costs almost nothing when nobody is using it.
  • AWS Amplify Hosting serves the web app, which can also be installed on a phone like an app.
  • Amazon API Gateway and AWS Lambda combine forecasts, monitor data, weather, fire data and routes into simple responses.
  • Amazon DynamoDB caches responses with an expiry time, so we don't repeatedly call external data providers, and stores alert subscriptions.
  • Amazon EventBridge Scheduler, AWS Step Functions and Amazon SNS send alert emails in batches, with retries if something fails.
  • Amazon Bedrock can power Ask Saans, with rule-based answers as a fallback so it always responds.
  • AWS Systems Manager Parameter Store keeps API keys encrypted on the server, never in the browser.
  • Amazon Location Service supports place search, Amazon CloudWatch monitors the system, and AWS SAM defines the backend as code.
Data comes from Open-Meteo (weather, mixing height, history), NASA FIRMS (fire hotspots), OpenAQ (monitors), OpenStreetMap (maps) and OSRM (routes).

What makes Saans different

Most AQI appsSaans
One number from the nearest stationA local estimate with an honest range
Current air onlyA 48-hour forecast with every spike explained
The same message for everyoneAdvice based on your profile and health
English onlyEnglish and Hindi
No help when you travelA trip planner with the cleanest time to leave
Built for citizens onlyCitizen and government views from the same data

Honest limits

Saans is a prototype, and we've tried to be upfront about what it can't do yet. Its AQI is indicative, not official. Forecasts and route scores are estimates, and a forecast grid can't capture every street. The smoke zone is approximate, the ward forecast currently covers Delhi only, and the health guidance is educational, not medical advice.
Next, we want to extend the ward forecast to more cities, validate our data across India, and have the health guidance reviewed by clinicians.

Try Saans

  • App: https://saans.d15ru3xz2jcz4c.amplifyapp.com/
  • Code: https://github.com/MAsTeRlssPd/hawa_hawai
If you live in a city where the air turns grey every winter, spend a day with Saans and tell us whether it helped you decide what to do.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article