Skip to content
D · 02 · TECHNICAL WRITE-UP

Shop Life.

A voice-first family assistant, designed for the car.

Work stays out of the car. That leaves the drive free, and Shop Life uses it for family coordination and personal learning. Talk to it; it handles the calendar, meals and research. Anything that can't be undone waits for a yes in WhatsApp.

01 · THREE USE CASES

Three jobs for the drive.

Each use case lives behind the same voice agent. Intent detection routes the conversation, the relevant subsystem handles it, and WhatsApp surfaces the receipt.

CapabilityWhat it doesWhereFlow
Family calendarNatural-language event creation, conflict detection, and proactive WhatsApp reminders against a shared family calendar.While drivingVoice → parser → Google Calendar API → conflict check → WhatsApp confirm + reminder.
Meal planning + groceryRecipe brainstorming over voice; shopping list generated from the chosen plan; Picnic cart populated automatically.Commute homeVoice → Spoonacular for recipes → list generation → Picnic API cart add → WhatsApp approval gate → checkout.
Research + debateDeep research on any topic over voice, with WhatsApp notification when ready. Once it's in the knowledge base, the assistant can hold a debate with you about it — RAG-backed against the research it just did.Long drives, personal learning timeVoice → research orchestrator → Vertex AI embeddings → KB → debate agent (RAG over the same KB) → voice reply.
02 · STACK

What runs underneath.

LayerDetail
Voice interfaceElevenLabs Conversational AI — inbound + outbound voice. Designed for hands-free use while driving.
Parsing + classificationGoogle Gemini 2.5 Flash — fast intent + entity extraction from the conversation transcript.
Research + reasoningGoogle Gemini 2.5 Pro — the heavier-lift layer for the research subsystem and debate responses.
Embeddings + RAGVertex AI text-embedding-004 — vectorises the research output so the debate agent can retrieve relevant chunks per turn.
BackendPython 3.11 + FastAPI on Google Cloud Run. Docker-built, GitHub-deployed. Secrets in Google Secret Manager.
Data + storageBigQuery as the data warehouse, Cloud Storage for documents.
03 · INTEGRATIONS

The four APIs it relies on.

Each integration points at something the household already uses: the family calendar, the family WhatsApp chat, and Picnic, which delivers the household's groceries.

  • Google Calendar API — Family calendar read/write. The source of truth for what's already booked.
  • WhatsApp Business API (via PyWa) — Asynchronous approval surface + proactive reminders.
  • Spoonacular API — Recipe data for the meal-planning conversations.
  • Picnic API — Grocery cart automation. The shopping list lands in the cart.
04 · NOTABLE DESIGN CHOICES

The non-obvious decisions.

Voice in, WhatsApp out
Voice is the right input mode for the car. It's the wrong review mode — you can't proofread a shopping list out loud. So the voice agent prepares and the WhatsApp thread approves. Calendar invites and Picnic checkouts both wait for a yes there; nothing that touches someone else's day gets committed without one.
Made for the commute
The system is designed for commute time, a stretch of the day that was already there, so it doesn't eat into focused work hours.
Same stack as this site
ElevenLabs Conversational AI + Gemini + Cloud Run is the same family the rutgertuit.nl site sits on, so the auth, the secret management and the deployment pattern were already in place.
WHY THIS EXISTS

Most family coordination is invisible labour. It lands on whoever has the bandwidth to keep track of it. AI is useful when it takes over that tracking and leaves the decisions themselves with the family: which meal to cook, which afternoon to free up. That's the line Shop Life tries to hold. Under the hood it borrows the multi-agent split that Luminary leans on hardest: the reasoning logic stays fixed, while the family's preferences come in as config.

Read the source on GitHub →