Bygga
Type the product name from the box. Bygga shows every assembly step in 3D, with the parts, screws and tools for each one, and reads it out loud.
Identify your public water system by address, review the contaminants it reports with full provenance, and match the exact NSF-certified filters proven to remove them.
LifestyleTypeScript · HTMLGitHub @Oak-MainOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Tap Water Quality Tracker per zip code.
Translation pending
Loading the full README.
Read the full README ↗A deterministic, address-level Public Water System (PWS) lookup and NSF/ANSI-verified filtration matching backend, built exactly to the Strategic Evaluation and Build Plan: WaterQualityLens.
The service accepts a US residential address and returns the supplying public water system, the contaminants detected there that exceed public-health goals, and the specific retail filter SKUs that are independently certified to neutralize those exact contaminants — never brand-level or fear-based claims.
This tool aggregates municipal engineering data and hardware certifications. It does not diagnose exposure risks, predict toxicological outcomes, or offer medical advice. (§13 non-dismissible disclaimer.)
| Concern | Technology | Notes |
|---|---|---|
| API + orchestration | Cloudflare Workers | src/index.ts — fetch / scheduled / queue handlers |
| Primary datastore | Cloudflare D1 (edge SQLite) | PWS boundaries, SDWIS data, curated SKU/cert moat |
| Cache | Cloudflare KV | geocode + full-lookup + SDWIS payload caching |
| Background jobs | Cloudflare Queues | asynchronous alert delivery |
| Scheduling | Cron Triggers | weekly SDWIS ingestion + daily alert scan |
The whole system is read-heavy and deterministic — no per-query LLM inference — so it runs within Cloudflare's free tier at launch scale (§15).
address ──▶ geocode C(lat,lon) ──▶ TEMM 3-tier resolve PWSID ──▶ SDWIS profile
│
unified JSON ◀── set-cover filter match (D ⊆ ⋃ N_c) ◀───────┘
src/services/spatial.ts)Strict, highest-fidelity-first hierarchy. The first tier that resolves wins, and the numeric confidence is emitted verbatim to the UI to manage legal expectations.
| Tier | Test | Confidence | UI treatment |
|---|---|---|---|
| 1 — Explicit | point ∈ verified utility service polygon | 1.0 | Explicit Boundary |
| 2 — Matched | point ∈ TIGER place polygon matched to a utility proxy | 0.85 | Matched Proxy |
| 3 — Modeled | Haversine d to nearest modeled centroid, d < R_model | 0.50 | Modeled Radius → yellow warning banner + lab-test advice |
src/services/setcover.ts)Let D = detected contaminants exceeding health guidelines and N(f) = the
union of contaminants a SKU is verified to reduce under a health standard.
A SKU qualifies iff:
D ⊆ ⋃_{c ∈ C_f} N_c
| Method & path | Purpose |
|---|---|
POST /api/lookup { address, zip?, dwelling_type?, nocache? } | Primary MVP lookup → §22 output contract |
GET /api/lookup?address=…&nocache=1 | Same, via query string (nocache=1 bypasses KV) |
GET /api/lookup?zip=48503 | Coarse ZIP fallback via SDWA_GEOGRAPHIC_AREAS registry |
GET /api/pws/:pwsid | Programmatic PWS entity page data (+ SEO indexable gate, §9) |
GET /api/contaminants / GET /api/contaminants/:code | Contaminant glossary entities |
GET /api/filters / ?deceptive=1 | Filter Certification Registry; flags 42/372-only deceptive SKUs (§9) |
POST /api/auth/register · POST /api/auth/login | V1 accounts |
GET/POST/DELETE /api/addresses · PUT /api/addresses/:id/alerts | Saved addresses + alert opt-in (V1) |
GET /api/vault/report · POST /api/vault/lab-results[/import] · POST /api/vault/cartridges | Premium Household Water Vault |
GET /api/health · POST /api/admin/ingest · POST /api/admin/alerts | Ops |
POST /api/lookup response shape (§22 output contract){
"query": { "address": "...", "normalized_address": "...", "dwelling_type": "SINGLE_FAMILY" },
"coordinate": { "lat": 43.0125, "lon": -83.6875 },
"match": { "pwsid": "MI0002360", "tier": "TIER_1_EXPLICIT", "confidence": 1.0,
"tierLabel": "Explicit Boundary", "requiresLabTestWarning": false },
"utility": { "pwsid": "MI0002360", "name": "City of Flint", "state": "MI", ... },
"detected_contaminants": [ { "code": "PB90", "name": "Lead", "value": 27, "unit": "ug/L",
"mcl": 15, "exceeds_health_goal": true, "sample_date": "2026-05-15", ... } ],
"active_violations": [ ... ],
"recommended_filters": [ { "brand": "Frizzlife", "model": "M800 Under-Sink RO",
"certified_standards": ["58"], "neutralizes": ["PB90"],
"full_coverage": true, "score": 1.55, "affiliate_url": "..." } ],
"nitrate_warning": null, // set to RO-only guidance when nitrate/nitrite detected
"multi_system_warning": false, // true when a ZIP/address maps to >1 water system
"multi_system_count": 1,
"data_freshness": { "sdwis_fetched_at": "2026-07-01T00:00:00Z", "generated_at": "..." },
"disclaimers": [ "...medical...", "...plumbing...", "...affiliate..." ],
"meta": { "cache_hit": false, "engine_version": "1.0.0", "resolution": "TEMM" }
}
This is the beginning of the README. Read the rest at the original. Read the full README ↗