Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Live air quality and outdoor comfort for any city: PM2.5 from community sensors combined with temperature, wind, sea, UV, pollen and ten more signals into one score.
LifestyleTypeScript · AstroGitHub @fortunto2OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Live air quality and outdoor comfort for 62,000 cities. Fourteen environmental signals, not one index. Community sensors corrected against the model where they disagree.
Taken from the repository README
Loading the full README.
Read the full README ↗Live air quality and outdoor comfort for 62,000 cities, at airsignal.app.
Most air quality sites print one index number. A person does not go outside for PM2.5 — they go out into a combination of heat, wind, UV, pollen, sea state and daylight, and one number cannot say "the air is clean but the UV will burn you in twenty minutes", which is the actually useful sentence. So this scores fourteen environmental signals and says which one is costing the points.
The part no other air map does: community sensors cost about fifty euros and read several times high in humidity or beside a road. Where they disagree with the atmospheric model, this site says by how much and resolves it rather than averaging. In Moscow the model said 130 µg/m³, ten devices agreed on 6.7, and the answer is 6.2 — the average would have been 68, and 68 was never true anywhere.
airsignal.app/crew is Crew Air: an hour-by-hour shift plan for an outdoor crew under California's wildfire-smoke rule (Cal/OSHA §5141.1) and heat rule (§3395). It recomputes the EPA NowCast from hourly PM2.5, checks it against the nearest AirNow monitor and NASA VIIRS fires, takes crew reports and sky photos, and prints the record an inspector asks for. Built at the Stanford Cleantech Hackathon, October 2026.
output: "server", on Cloudflare Workerscli/ writes the city and sensor data; the worker writes only what people
send it: crew and air reportswasm_crew_plan)Everything a search engine or an agent needs is in the HTML before any script runs. Every page also answers with Markdown if you ask for it, and there is an OpenAPI document and an A2A endpoint.
cli/main.ts the CLI: seed, expand-cities, ingest, backfill, cpf, integration
cli/upstreams.ts every network call, with the response shape narrowed here and nowhere deeper
db/schema.sql the data model
src/lib/site.ts origin, brand, the 14 signals, bands, URL shapes
src/lib/db.ts the only module that knows D1 exists
src/lib/signals.ts readings → scores, shared by the ETL and the browser
make help lists the commands. CLAUDE.md is the map of the rest, including the mistakes that
shaped it — the ones worth knowing before changing anything are in "Gotchas found the hard way".
AGPL-3.0. Use it, study it, change it, run it, charge for it. If you run a modified version somewhere other people can reach it over a network, section 13 says those people are entitled to the source — which is why the footer of this site links to this repository, and why yours would have to link to yours.
That obligation is the whole reason for the licence. The scoring curves and the merge were derived from measurements volunteers give away for free, and taking that, improving it and keeping the improvements private is the one use this is meant to prevent. Commercial use is not.
The data is not covered by the code licence and carries its own terms — Sensor.Community and OpenStreetMap are ODbL, which is share-alike on derived databases. See NOTICE.