Inspiration

Every year, tens of millions of consumer products are recalled for fire, burn, and choking hazards — but retailer notifications are inconsistent and fragmented across Amazon, Target, Walmart, and in-store purchases. SaferProducts.gov lets you search if you already know what to look for. Most people don't — and they almost certainly own at least one recalled product without knowing it.

We built RecallNet because your shopping history should protect you, not sit forgotten in a PDF export.

What it does

RecallNet is a proactive recall intelligence graph for consumers:

  • Upload purchase history via barcode scan, manual entry, bulk CSV, or free-text list
  • Match each product against the live CPSC SaferProducts.gov API (no fake seed data)
  • Alert with explainable confidence scores (UPC exact match, brand/name match)
  • Quantify remedy eligibility and dollar value (e.g. $459.97 claimable on our demo cart)
  • Visualize a personal Safety Graph linking you → products → active recalls
  • Share an anonymous household safety report

Live demo: 3 real STOP USE recalls — Cosori air fryer (fire), Arizer vaporizer (fire/burn), BABESIDE doll (choking).

How we built it

Layer Technology
Frontend Next.js 14 on Vercel (App Router, serverless API routes); UI prototyped with v0.app
Database Amazon DynamoDB — 4 tables, 4 GSIs, Terraform IaC
Recall data CPSC SaferProducts.gov REST API (live)
Infra Terraform (DynamoDB, IAM least-privilege, optional S3)

Amazon DynamoDB schema:

  • recallnet-products + UpcIndex GSI — O(1) barcode lookup
  • recallnet-ownership-events + ProductOwnersIndex GSI — recall → owners fan-out
  • recallnet-recall-events + ProductRecallsIndex + ActiveRecallsIndex GSIs
  • recallnet-user-recall-status — materialized alert projections

Ownership and recall events are append-only streams; dashboard alerts are a materialized projection updated when new recalls publish or users upload purchases.

Monetization (Track 1 — B2C): Freemium — free live CPSC alerts; Premium ($4.99/mo) for multi-home/family monitoring and push notifications; affiliate revenue on replacement purchases; B2B API for insurers/retailers.

Challenges we ran into

  • CPSC data quality: Hazard fields are sometimes corrupted — we validate against recall context and fall back to official descriptions.
  • Name-only matching: Products without UPCs (Cosori, BABESIDE) required linking user items to CPSC catalog productIds, not creating orphan records.
  • Eligibility windows: CPSC encodes sale periods as prose ("sold from June 2018 through December 2022") — we parse these into structured windows instead of treating the recall announcement date as the purchase start.
  • Serverless persistence: In-memory state doesn't survive Vercel cold starts — production requires real Amazon DynamoDB (confirmed via /api/health).

Accomplishments that we're proud of

  • 100% live CPSC data — every demo alert comes from SaferProducts.gov, verifiable via source links
  • End-to-end demo journey — upload → 3 STOP USE alerts → $459.97 remedy → Critical safety score with factor breakdown
  • Explainable matching — confidence scores and plain-language Recall Explanation (no black-box LLM as primary matcher)
  • Production-grade data model — event-sourced DynamoDB with GSI fan-out, not a CRUD toy

What we learned

  • DynamoDB GSIs turn "notify all owners of product X" from O(all users) into O(owners) — the core scale story for recall fan-out
  • Parsing government API prose (sale windows, hazards) is as hard as the matching logic itself
  • For safety products, defaulting to "you may be eligible" when CPSC gives no sale window is better than hiding a fire hazard behind UNKNOWN

What's next for RecallNet — Recall Intelligence for Your Purchases

  • Email/SMS push when new CPSC recalls match owned products
  • Amazon/Target order OAuth import
  • FDA and NHTSA recall streams
  • Mobile app with barcode scan
  • Premium tier launch (multi-home monitoring)

Built With

Share this project:

Updates

Submission history