Requirements
The extension had to keep air-quality data close to where people already spend time: the browser toolbar and current page. Requirements included a popup dashboard, settings page, background refresh, optional overlay, CPCB AQI categories for India, configurable providers, and a privacy model where API keys stay on-device.
Stack choices
A Manifest V3 Chrome extension with vanilla JavaScript was chosen to avoid a runtime build dependency and keep the package self-contained. The background service worker handles scheduled fetch and cache, the popup reads the latest snapshot, the options page validates API configuration, and the content script displays the overlay.
Design system
The design system was deliberately compact and utility-focused: a small popup, direct pollutant breakdown, clear AQI category language, masked settings values, and minimal overlay chrome. That suited a browser extension better than a heavier app-style interface.
MVP definition
The MVP was the full private loop: save settings locally, fetch OpenAQ or OAQ data, normalize measurements, derive indicative AQI when needed, cache the last good snapshot, and render the result in both popup and overlay. Analytics, accounts, and remote sync were intentionally excluded.
Progression
Development started with the air-quality normalization library and CPCB breakpoint tests, then expanded into settings validation, background alarms, popup rendering, and overlay behavior. Browser smoke tests were added to verify the MV3 service worker, local-only credential storage, masked settings, and packaged extension output.