Project

Grocery PWA

Grocery PWA screenshot 1
Grocery PWA screenshot 2
Next.jsTypeScriptn8nNeon PostgresClaude AITailwind CSS

A voice-first grocery management PWA in daily production use by a family of four. Natural language voice input gets parsed by Claude AI into structured, categorized grocery items. Features multi-user authentication with speaker profiles, real-time inventory tracking with purchase history, category-based views, and a dislike/feedback system. Backend automation via n8n webhooks with Neon Postgres for persistence. Demonstrates end-to-end system design: voice capture, AI processing pipeline, database schema design, and responsive PWA with offline support.

My Thoughts

Why I Built This

My family of four needed a shared grocery list that anyone could add to by speaking. No app installs, no accounts to manage. Just open the browser and talk.

Architecture

Zero-framework PWA: a single HTML file with embedded CSS and JavaScript. Backend runs on n8n workflows connected to Neon Postgres. Voice input uses the Web Speech API with speaker attribution.

Key Engineering Decisions

  1. Zero-framework approach means the app loads instantly and works offline as a PWA. No build step, no JavaScript framework overhead.
  2. n8n backend handles all CRUD, auth, inventory tracking, and purchase history through API endpoints.
  3. Dislike system with reasons lets family members explain why they flagged an item ("nobody is eating them"), turning the app into a household communication tool.