Inspiration
The idea behind Anana existed long before this hackathon.
I wanted to build a personal grocery price memory: something that could remember the products a shopper cares about, compare weekly flyer prices, and answer a deceptively simple question:
Is this actually a good deal?
Earlier versions could ingest flyers and display offers, but the product did not work well enough. Search relied too heavily on product names. Price history could accidentally group items that looked similar but were not economically comparable. Product categories were incomplete or inconsistent. The individual features existed, but the application did not yet have a coherent semantic backbone.
The release of GPT‑5.6 became the turning point.
Over the past two weeks, I used GPT‑5.6 as an engineering and reasoning partner for an intensive audit and reconstruction of the system. Under human direction, it helped us trace problems across the data pipeline, redesign core contracts, implement changes across Python, SQL, Cloudflare, and React, review its own work through independent passes, run tests, diagnose production failures, and verify the deployed result.
GPT‑5.6 did not create the original idea. It helped transform that idea from a promising but unreliable prototype into a working product.
What it does
Anana turns weekly grocery flyers into personalized, explainable price intelligence.
A shopper can search for a specific item or a broader grocery idea—such as milk, grapes, rice, cherries, or bok choy—and see current offers across retailers. Anana separates products into safe comparison groups, normalizes compatible price units, and shows recent advertised-price history when the evidence is trustworthy.
Users can also:
- Search using English or Chinese grocery terms
- Compare current offers across multiple retailers
- See recent lows and usual advertised prices
- Follow groceries they buy regularly
- Set personal target prices
- Discover unusually strong weekly deals
- Save offers to a retailer-grouped shopping list
- Inspect the original flyer image, retailer, dates, and source evidence
Anana does not hide an offer merely because it cannot be compared safely. It keeps the offer visible and explains the uncertainty instead of manufacturing a misleading price comparison.
How I built it
Anana is built around an immutable, provenance-first pipeline:
raw flyer → extracted offer → canonical product → comparable price event
The backend uses Python, FastAPI, SQLAlchemy, and deterministic normalization and query services. The frontend is a React and Vite progressive web app. The production experience runs on Cloudflare Workers with versioned data stored across D1, KV, and R2.
GPT‑5.6 made two major contributions to the project.
1. GPT‑5.6 as an engineering collaborator
During the latest reconstruction, GPT‑5.6 worked across the entire repository rather than generating an isolated feature. It helped us:
- Audit the production data and identify systemic category, search, canonical-product, and price-history defects
- Design explicit contracts for safe historical comparison
- Rebuild production search as a versioned, product-centric D1 read model
- Implement current-offer and history-only search behavior
- Create scope-first search for broad shopper intents
- Add bilingual English and Chinese search parity
- Build publish gates that reject contaminated category or price-history data
- Refine the live PWA and public product demo
- Write and run regression tests, perform independent review passes, and verify production deployments
Working with GPT‑5.6, I shipped more than 120 repository commits in approximately ten days, including over 60 implementation-oriented feature, fix, data, and refactoring commits.
2. GPT‑5.6 as a bounded semantic reasoning system
I also use GPT‑5.6 Sol with high reasoning effort in offline, structured review workflows.
For the category reconstruction, GPT‑5.6 reviewed 1,435 grocery products with zero skipped or failed items. Its output helped distinguish safe product categories and comparison groups from ambiguous products that should remain unclassified.
Model decisions are never accepted blindly. Every review is structured, versioned, traceable, cached in an applied ledger, and checked by deterministic release gates. Ambiguous results fail closed, and no model call runs inside the live search or price-comparison path.
This combination gives us the semantic reach of GPT‑5.6 without making the shopper experience opaque or unpredictable.
Challenges I ran into
The hardest problem was deciding when two grocery prices mean the same thing.
Flyers contain variable-weight products, multi-buy promotions, loyalty prices, mixed product cells, incomplete package sizes, bilingual names, and visually similar products with very different uses. A keyword such as “milk” can refer to ordinary milk, milk powder, condensed milk, milk bread, plant beverages, or even Milk-Bone dog treats.
The previous system often had to choose between noisy recall and overly narrow search.
GPT‑5.6 helped us move beyond one-off keyword patches and reason about the deeper system boundaries:
- Search relevance is not the same as price comparability
- A broad shopper category is not the same as one canonical product
- Two items can belong in the same search result without belonging in the same price-history calculation
- Unknown or ambiguous products should remain visible without being forced into a false category
- AI-generated semantic decisions need deterministic evidence, versioning, and release controls
Another major challenge was preventing powerful model reasoning from becoming uncontrolled data mutation. I solved this by keeping GPT‑5.6 offline, recording its evidence and structured output, and requiring deterministic gates before any reviewed result reaches production.
Accomplishments that I am proud of
My biggest accomplishment is the transformation of Anana’s core product skeleton.
Before the GPT‑5.6 reconstruction, Anana had useful components but lacked consistent semantics. After the reconstruction:
- Search understands both individual products and broader shopper intents
- Current offers and history-only products have distinct, honest behaviors
- Price history uses safe semantic peer groups instead of loose name similarity
- Comparison units and shopper-facing display units are handled separately
- English and Chinese grocery searches share the same production contracts
- Product categories are reviewed through a traceable GPT‑5.6 workflow
- Category, history, search, and publication quality are protected by fail-closed gates
- The live PWA connects search, price trends, watches, targets, deals, and shopping-list planning into one coherent experience
At a key production integration point, 994 tests passed across the system. The rebuilt production search was deployed as a versioned Cloudflare D1 read model with more than 14,000 search documents and full current, historical, and provenance references.
Most importantly, Anana is now a live, working product—not a mockup created only for the hackathon.
What's next for Anana
Next, I plan to expand flyer coverage beyond the Toronto demo, accumulate deeper price history, add receipt-based personal price memory, and introduce proactive deal notifications.
I also want to build a conversational layer where GPT‑5.6 can help shoppers ask natural questions such as:
- “What should I stock up on this week?”
- “Has chicken breast been cheaper recently?”
- “Which watched groceries are below my target price?”
- “Where should I buy the items on my list?”
The answers will continue to come from Anana’s deterministic, provenance-rich grocery intelligence—not from invented model knowledge.
My long-term goal is to make Anana a trusted grocery price memory for households across North America, while demonstrating how GPT‑5.6 can help turn a long-held product idea into a reliable, production-ready system.
Built With
- fastapi
- python
- sqlalchemy
Log in or sign up for Devpost to join the conversation.