Inspiration

Shopping begins long before checkout. We check what is at home, remember what is running low, rebuild shopping lists, compare prices, and find time to visit a store. These tasks are connected, but the tools we use often treat them separately.

We built Agora to bring that context together: a shopping assistant that starts with what you already have and helps you decide what to do next.

What it does

Agora connects household inventory to everyday shopping decisions:

  • Scan and review: Turn photos or videos into proposed inventory items, then review names and quantities before saving.
  • Anticipate needs: Use recorded stock and consumption observations to estimate when items may run out, with visible confidence and explanations.
  • Prepare shopping lists: Automatically maintain lists grouped by saved store while respecting user edits and dismissals.
  • Research wishlist items: Automatically check for prices and display source evidence, freshness, and uncertainty.
  • Plan a trip: Turn a shopping list into a reviewed Google Calendar event.
  • Act through conversation: Ask the assistant to create lists or add items to inventory, shopping lists, and wishlists.

Users remain in control through editable results, explicit approvals for consequential actions, and the ability to stop agent work.

How we built it

We built a native iOS app in SwiftUI, backed by FastAPI and PostgreSQL with TimescaleDB.

Agora supports Gemini and OpenAI-compatible models for recognition and tool-using conversation. Its tools read current household context and save through authenticated APIs, connecting conversational actions to the same data shown throughout the app. We support both types of models to cater to user privacy needs.

Consumption forecasting uses statistical trends across inventory observations, accounting for restocks and incorporating labeled typical-use assumptions when history is limited. Durable background jobs maintain replenishment lists and run price research.

Trust is built into the architecture through household-level database access controls, validated model outputs, retry-safe writes, and explicit Calendar and browser approvals. We also implemented backend spending policies and mandates as groundwork for future payment integration.

Challenges we ran into

A major challenge was making uncertain information useful. Recognition can misread quantities, new accounts have little consumption history, and retailer pages can return incomplete or ambiguous prices. We designed review steps, confidence labels, source tracking, and unresolved states to make those limits visible.

Another challenge was coordinating asynchronous work. Model responses, background jobs, account changes, and interrupted requests can overlap. We added cancellation, duplicate prevention, and recovery behavior so delayed responses and retries do not silently create inconsistent results.

Accomplishments that we're proud of

We connected physical inventory, replenishment, price research, and trip planning into a working product flow.

Automatic lists continue updating without an open app or a chat request, while preserving the user's decisions. The interface exposes the evidence behind recommendations and keeps consequential actions reviewable.

We also invested in integration testing: the automatic-replenishment release passed 693 backend tests in each of the PostgreSQL and TimescaleDB CI suites, alongside native simulator validation.

What we learned

Useful shopping assistance depends on accurate context, reliable persistence, and clear boundaries around what the system knows.

Different tasks also need different techniques: multimodal models help interpret images, statistical methods estimate consumption, and deterministic rules enforce permissions and spending constraints.

Transparency makes the product more useful. Showing an estimate's assumptions or a price's source helps users decide whether to act.

What's next for Agora

  • Household invites so a shared run isn’t one person pretending to be a house
  • Deeper Shop together integration (shared cart / claim / settle) into the Agora experience
  • Stronger on-device capture reliability and clearer review for ambiguous scans
  • Optional real checkout behind mandates — still never for the demo account unless we redesign isolation on purpose

Built With

Share this project:

Updates

Submission history