GroceryChop.com
Currently ShippingAI-Powered Grocery Price Comparison Platform
Feb. 2026 – Present
Overview
GroceryChop is a production AI-powered grocery price comparison platform serving live users today. Shoppers can compare prices across 100+ US grocery chains in 50+ metro areas, view 90-day price histories, and chat with ChopBot — an AI shopping assistant that grounds every response in live data, not training-set memory.
Built solo as founder and full-stack engineer. Currently serving ~30 daily users while I iterate on AI features and an SEO content engine.
ChopBot Architecture
ChopBot is built on OpenAI function calling with 8 custom tools wired directly to the live Postgres database. Instead of stuffing prompts with stale data, the model decides which tools to invoke and orchestrates them in a loop — a RAG-style pattern grounded in live data.
A runtime SQL rewriter translates the model's tool arguments into safe, parameterized queries against the production schema. Server-Sent Events stream tokens back to the browser for sub-1s first paint while tool calls resolve in parallel.
Request Flow
┌──────────────┐
│ User │
└──────┬───────┘
│ query
▼
┌──────────────────────┐
│ Next.js 14 (SSE) │
│ TypeScript / React │
└──────┬───────────────┘
│
▼
┌──────────────────────────────┐
│ ChopBot Orchestrator │
│ OpenAI function calling │
└──────┬───────────────────────┘
│ tool calls (parallel)
▼
┌────────────────────────────────────┐
│ 8 Custom Tools │
│ search · compare · history · ZIP │
│ + product / unit / list / filters │
│ ▼ │
│ Runtime SQL Rewriter │
└──────┬───────────────────┬─────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ PostgreSQL │ │ Redis │
│ 100+ chains│ │ 3-tier cache│
│ 50+ metros │ │ │
└─────────────┘ └─────────────┘ChopBot's 8 Tools
Each tool has a typed JSON schema, deterministic arguments, and a direct path to live data. The model picks tools dynamically based on the user's question and chains them when needed.
multi_chain_search()Search products across all 100+ grocery chains by name, brand, or category.
cross_chain_price_compare()Compare current prices for the same product across multiple chains.
price_history_90d()Return a 90-day price history for any product or chain.
find_store_near_zip()ZIP-based store locator returning chains and addresses near the shopper.
product_details()Lookup full product spec, units, pack size, and UPC matches.
unit_price_normalize()Normalize prices to per-unit so comparisons across pack sizes are fair.
list_builder()Build a multi-item shopping list and price it across chains.
category_filter()Filter and surface deals by category, sale flag, or dietary tag.
Production Stack
Data Scale
Live pricing ingested daily via a custom Python scraping backend. UPC + fuzzy product matching reconciles SKUs across chains so the same product is comparable everywhere.
Daily Dev Workflow — Claude Code
I ship daily using an agentic development workflow with Claude Code. It plans, reviews, and executes alongside me — driven by repo-level context, custom slash commands, and structured prompts.
- CLAUDE.md context — repo-wide conventions, architectural rules, and ChopBot tool conventions live alongside the code so the agent stays grounded in current state.
- Slash commands — custom workflows for repeatable tasks (new tool scaffolding, scraper additions, SEO post drafting).
- Structured prompts — planning → review → execute loops with explicit acceptance criteria, not freestyle prompting.
- MCP-aware tooling — designed with Model Context Protocol patterns in mind so internal tools can be exposed cleanly.
Results
SEO content engine auto-generates sitemap, Open Graph images, and Article JSON-LD for every post. Indexing growth tracked weekly in Search Console.