Inspiration

What if when I bought a bag of chips, I could know that the money was going towards chips... or if the company was actually investing huge money in political spending? What was I actually paying for by putting my money towards a given company? I wanted to know. The information exists: every corporate PAC files with the FEC, every lobbying contract is disclosed to the Senate, every state publishes campaign-finance records, the FDA and CPSC publish recalls. It's just scattered across dozens of government sites that nobody checks while holding a box of cereal. I wanted it to be easy: type in a company, a candidate, scan a barcode... and have all the information there to consider.

What it does

Scan any product and Shopper Assist shows:

  • Political spending: the maker's corporate PAC giving, lobbying and super PAC money, with the party split, from federal filings and campaign-finance records in 45 states, D.C. and New York City. Every number links back to the source.
  • Safety: a score from government recalls and public ingredient watch lists (Prop 65, IARC, EU CosIng, Health Canada), read against the actual ingredient list.
  • Nutrition: measured against your own targets, not a generic label.
  • Ownership: veteran-, woman- and Black-owned makers and small businesses, from public SAM.gov records.
  • Better alternatives: products in the same category that rate better on the scores you care about, and for housewares and appliances, the comparable makers ranked on political spending.
  • Check a cart: screenshot an Instacart, DoorDash, Amazon or Walmart cart and every item's scores appear at once. The picture is read on the phone and never uploaded.
  • My Shopping Impact: mark what you bought and see where the makers' political money went, and what you steered away from.

You can also look up companies you can't scan (airlines, banks, insurers, gas stations, phone carriers). A Political tab shows officials and candidates at every level, including 9,000 sitting state and local officeholders, and what 25,000 state and local campaigns raised, including public matching funds, from 20 jurisdictions' own filings, and every corporate PAC with where its money goes and how much comes from foreign-owned companies. No account, no ads, no tracking. One subscription with a 7-day trial, run through RevenueCat.

How we built it

I'm not a developer. I built Shopper Assist with Claude Code as the engineer: I decided what the app should do, tested every build on my phone, pulled state campaign-finance exports by hand where no API existed, and reviewed the data. Claude wrote the code.

The app is React Native (Expo) on iOS and Android, with on-device text recognition (Apple Vision, Google ML Kit) for package fronts and cart screenshots. The backend is NestJS with SQLite on Fly.io, pulling from the FEC, the Senate lobbying database, SEC EDGAR, SAM.gov, openFDA, USDA, CPSC, NHTSA and 45 state campaign-finance boards plus D.C. and New York City. Product identity comes from Open Food Facts, which we now hold as a local 1 GB index on the server so a scan never depends on a third-party API being up. Subscriptions are RevenueCat with Apple In-App Purchase and Google Play Billing. Brand-to-parent-company mapping is a hand-curated table of about 600 companies, each verified against live FEC records.

Challenges we ran into

  • Every state does campaign finance differently. Some have APIs, some have CSV exports, some have search pages that time out after a month of data, and a few forbid commercial use outright. Rhode Island took sixteen separate monthly exports by hand.
  • Community product databases are thin for U.S. non-food items. A TV antenna compared against kitchen stoves. We ended up curating comparable makers for 30 categories instead of trusting the tags.
  • App Review. The first submission was rejected over a camera permission button label and a question about widgets. Both fixed in a day, but the waiting is the hard part.
  • Being honest with data gaps. A private company with no PAC on file is not the same as a company we couldn't identify, and the scores had to say so.
  • Matching recall notices to products. A recall for "BUILT" light-up tumblers landed on a Built protein bar, and a fettuccine recall on a Rao's soup. The matcher now demands the brand or maker and the product, as whole words, before a notice touches a page.

Accomplishments that we're proud of

  • Live on the App Store, built by one person, and submitted to Google Play on September 30, one week after the App Store release.
  • Information on a product, along with alternatives which can be adjusted based on what the user cares about.
  • Campaign-finance coverage for 45 states, D.C. and New York City, with the party of every recipient resolved, and what 25,000 state and local campaigns raised, from 20 jurisdictions' own filings.
  • A scan returns in a couple of seconds with sources cited for every number.
  • Shopper photos of unrecognized products get reviewed and contributed back to Open Food Facts, so the public data improves as people use the app.
  • A cart screenshot becomes a scored shopping list in seconds, without the picture leaving the phone.
  • Rosters of 9,000 sitting state and local officials, joined to their state campaign-finance records, so a mayor or governor has a page even when no tracked money reached them.

What we learned

Data quality is the whole product. Most of the work was not features but making sure a number on the screen was true, current and traceable. And that a non-developer can ship a real app when the tools let you say what you want plainly and check the result on a real phone.

What's next for Shopper Assist

Google Play approval, then the remaining 25 states' candidate totals (Wisconsin, New Jersey and Tennessee need new fetchers because their boards cap or restrict exports), the five states with no pass yet (Maine, Montana, Wyoming, Mississippi, South Dakota), and employer-level giving.

Built With

Share this project:

Updates

Submission history