GroceryChop.com

Currently Shipping

AI-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

Frontend
Next.js 14 (App Router), TypeScript, React, Server-Sent Events for streaming
AI Layer
OpenAI function calling, 8-tool orchestration, runtime SQL rewriter
Backend
Custom Python scraping backend, REST APIs, structured ingestion pipelines
Data
PostgreSQL primary store, three-tier Redis cache for hot/warm/cold reads
Performance
SSE streaming for sub-1s first paint, parallel tool calls, per-IP rate limiter
SEO Engine
Auto-generated sitemap, OG images, Article JSON-LD, 17+ long-form posts

Data Scale

100+
US Grocery Chains
50+
Metro Areas
90d
Price History
UPC
+ Fuzzy Matching

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

~30
Daily Active Users
17+
Long-Form SEO Posts
<1s
First-Paint via SSE

SEO content engine auto-generates sitemap, Open Graph images, and Article JSON-LD for every post. Indexing growth tracked weekly in Search Console.

Technologies

Next.js 14TypeScriptReactPythonPostgreSQLRedisOpenAI Function CallingRAGServer-Sent EventsVercelClaude CodeMCP-aware Tooling