Inspiration

A lower shelf price does not always mean a cheaper grocery trip. A drive across town, an extra stop, or a gas fill-up can erase the savings. We built Stretch to show the cost of getting a specific grocery list home, not just the price on a product page.

What Stretch Does

Start with a grocery list and a location. Stretch finds nearby grocery stores and gas stations, then checks available retailer product sources for matching items. It keeps each price attached to its retailer, store location, source, and time checked. A store with missing prices is not ranked as a cheaper complete basket.

The shopper can compare one-store trips with a Mix & Match plan across up to three stores. Road-route distance and vehicle MPG inform the estimated fuel used on the trip. A selected gas stop and the products for each store carry through to a review screen, where the shopper can see the route and open supported retailer pages.

How we built it

We used Next.js, React, and TypeScript for the app, a FastAPI catalog bridge backed by Supabase, Google Places for nearby stops, and routing services for road distances. The search system uses bounded provider adapters and AI to interpret grocery terms and compare package descriptions. Price math, retailer ownership checks, and completeness rules are deterministic.

Challenges and lessons

Retailers expose different amounts of catalog data, and an online listing does not always prove the shelf price at a particular branch. We learned to treat source coverage as part of the result: show what was checked, preserve timestamps, and leave an unverified price out of a trip total. We also had to make the route cost meaningful without pretending that discovering a gas station provides its pump price.

Built With

Share this project:

Updates

Submission history