Pantry
Your kitchen, sorted. A voice-first, multi-surface smart grocery management platform for South African households.
Executive Summary
The Problem
SA families juggle Woolies for premium items, Checkers Sixty60 for quick top-ups, and Makro for bulk buys. Grocery lists live across WhatsApp groups, Notes apps, and fridge whiteboards. Items get forgotten, food gets wasted (R400-R600/month per household), and budgets spiral.
The Solution
Pantry is a voice-first household grocery brain that passively tracks what you have, predicts what you need, and coordinates shopping across every household member and surface: mobile app, Google Nest Hub, WhatsApp, and web dashboard.
Key Numbers
How It Works
🧾 Passive Capture
Receipt scanning, delivery history integration, and predictive consumption modelling mean the system learns what you buy without you logging anything.
🎙 Voice-First
"Hey Google, tell Pantry we're out of milk." Kids, the domestic worker, grandma: everyone can talk to it. No app install needed.
💬 WhatsApp Bot
Grace already WhatsApps what's running low. Pantry just makes that message structured, trackable, and actionable.
📱 Multi-Surface
Melisa gets the full dashboard. Thabo gets a WhatsApp shopping list. Kids shout at the Nest Hub. Everyone uses what works for them.
Target User
Melisa, 38, Sandton. Marketing manager, two kids, domestic worker three days a week. Monthly grocery budget R8,000-R12,000. Shops at Woolies, Checkers Sixty60, and Makro. Uses iPhone, Google Nest Hub, and WhatsApp for everything. She doesn't want another app to manage: she wants the house to just tell her what it needs.
What's in This Report
👥 Personas
5 detailed household personas with interaction models
🚩 User Journeys
Per-persona, per-surface journey maps
📡 Passive Capture
6 data capture methods scored for SA feasibility
🎙 Voice Design
Google Nest Hub voice interaction scripts
🎨 UI Mockups
Mobile, Nest Hub, WhatsApp, Dashboard
🏆 Competitor Analysis
30+ products across 5 categories
🇿🇦 SA Ecosystem
Retailer landscape, loyalty programmes, delivery
📊 Market Sizing
TAM/SAM/SOM with ZAR figures
💰 Business Model
Revenue strategy and pricing
Persona Profiles
These personas represent the real people in a South African household who interact with Pantry, each with different needs, tech comfort levels, and motivations. Built from qualitative insights about middle-to-upper-income SA families managing groceries across Woolies, Checkers, Pick n Pay, and local delivery services.
| Attribute | Detail |
|---|---|
| Household | Partner (Thabo), two kids (Lerato, 11 and Sipho, 7), domestic worker (Grace) three days a week |
| Monthly grocery budget | R8,000 - R12,000 |
| Tech comfort | High. Uses iPhone, Google Nest Hub in the kitchen, WhatsApp for everything |
| Primary stores | Woolies (fresh, premium items), Checkers Sixty60 (quick top-ups), Makro (bulk monthly) |
Goals
- Never run out of essentials (milk, bread, eggs, kids' lunchbox items)
- Reduce food waste: she throws away R400-R600 of expired food monthly and feels guilty about it
- Control the budget without micromanaging every purchase
- Delegate grocery tasks to Thabo and Grace without endless WhatsApp back-and-forth
Frustrations
- "I only realise we're out of milk when someone complains at breakfast."
- "Grace tells me we need things, but by the time I order, I've forgotten half the list."
- "I have three different shopping lists going: Notes app, WhatsApp group, and the fridge whiteboard."
- "Checkers Sixty60 is great for speed, but I overspend because I can't remember what we already have."
Interaction Model: Melisa is the approver and orchestrator. She reviews suggested lists, sets budget limits, and delegates shopping tasks. She wants dashboard-level visibility (web/mobile) and quick voice check-ins via the Nest Hub. She should never have to manually enter items.
| Attribute | Detail |
|---|---|
| Tech access | Lerato has a hand-me-down tablet (supervised). Sipho has none. Both use the Google Nest Hub. |
| Grocery role | Consumers and requesters. They eat the food and ask for more. |
Goals
- Get their favourite snacks without having to nag Mom repeatedly
- Report what's finished in a way that actually reaches the shopping list
- Sipho: just wants his yoghurt and doesn't care how it appears
- Lerato: starting to help with meal planning for school lunches
Frustrations
- "Mom said she'd buy more Frosties but she forgot again."
- "I told Grace we need juice but nothing happened."
- Lerato is old enough to be frustrated that her requests get lost in the household noise
Interaction Model: Kids interact exclusively through voice (Google Nest Hub) and possibly a simple visual display. Zero app, zero login, zero effort. Their requests go into a pending queue that Melisa can approve or dismiss.
| Attribute | Detail |
|---|---|
| Tech comfort | Very high. Android user, but prefers not to install "yet another household app" |
| Grocery role | Occasional shopper, braai master, beer and snack buyer |
| Monthly personal grocery spend | R1,500 - R2,500 |
Goals
- Help out when asked without having to learn a complex system
- Pick up items on the way home when Melisa sends a list
- Keep his braai supplies stocked (charcoal, boerewors, Mrs Ball's chutney)
Frustrations
- "Melisa sends me a WhatsApp list while I'm driving and I can't read it properly."
- "I bought 2% milk instead of full cream and you'd think I committed a crime."
- "I don't mind helping, but I don't want to install an app I'll use twice a month."
Interaction Model: Thabo's primary interface is WhatsApp. He receives assigned shopping lists with specific brands, sizes, and store suggestions. He can check items off in-chat, snap a photo of the receipt, and he's done.
| Attribute | Detail |
|---|---|
| Tech comfort | Moderate. Uses WhatsApp and Facebook on a budget Android phone. |
| Data constraints | Limited mobile data (buys R50-R100 bundles). Wi-Fi access at Melisa's house. |
| Language | Fluent in Zulu and English. Prefers English for text, comfortable with either for voice. |
Goals
- Report what's running low quickly and reliably
- Not get blamed when items run out
- Keep things simple: she has enough to manage
Frustrations
- "I WhatsApp Melisa when the Sunlight dish soap is almost finished, but she reads it hours later."
- "Sometimes I tell her three things and she only buys one."
- "I can't use too much data on apps."
Interaction Model: Grace needs two channels: voice via Google Nest Hub (fastest while working in the kitchen) and WhatsApp for confirmation. The system must support Zulu voice input and low-data interactions.
| Attribute | Detail |
|---|---|
| Tech comfort | Low. Basic smartphone, uses WhatsApp (voice notes only). |
| Language | Primarily Zulu, conversational English |
| Grocery role | Temporary household member who changes consumption patterns significantly |
Goals
- Cook for the family using her own recipes (often requiring ingredients not usually stocked)
- Not feel like a burden when requesting special items
Frustrations
- "I need umfino (wild spinach) and Melisa doesn't know where to get it."
- "These gadgets don't understand me when I speak."
Interaction Model: Gogo is an edge-case user who reveals system flexibility. Her interaction is almost entirely through voice (Zulu preferred) or through Grace/Lerato as intermediaries.
Persona Comparison Matrix
| Dimension | Melisa | Kids | Thabo | Grace | Gogo |
|---|---|---|---|---|---|
| Primary surface | Mobile app + Web dashboard | Voice (Nest Hub) | Voice + WhatsApp | Voice (Zulu) | |
| Role | Approver, orchestrator | Requester, consumer | Delegated shopper | Inventory scout | Temporary member |
| Tech comfort | High | Medium (voice-native) | Very high | Moderate | Low |
| Key need | Control + visibility | Zero-effort requests | Frictionless task completion | Reliable reporting | Inclusion + flexibility |
Design Implications from Personas
Voice-first is non-negotiable. Three of five personas interact primarily through voice. The system must work well even if the app is never opened.
WhatsApp is the universal fallback. Every adult in the household already uses it. Building on WhatsApp reduces adoption friction to near zero.
Multi-language support is essential. Zulu voice recognition is not optional. It's required for Grace and Gogo, who are critical household contributors.
No persona should need to install an app. Only Melisa needs the full app experience. Everyone else should work through existing channels.
Data usage matters. Grace's data constraints mean WhatsApp interactions should be text-light, image-free, and optimised for low bandwidth.
The household is the user. Pantry must model a household with shifting membership, different permission levels, and varied interaction preferences.
User Journey Maps
Each journey maps a real scenario from a persona's perspective, showing touchpoints across surfaces, emotional states, and where Pantry adds value compared to current workarounds.
Journey 1: Melisa's Weekly Top-Up via Checkers Sixty60
Persona: Melisa | Frequency: 2-3x per week | Surfaces: Mobile app, Web dashboard, Nest Hub
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Morning check | Melisa asks "Hey Google, what do we need?" while making coffee | Nest Hub (voice) | Reads back prioritised list: "You're probably out of milk and eggs. Grace reported you're low on Sunlight. Sipho asked for yoghurt yesterday." | Informed, in control |
| Review | Opens Pantry app on phone during commute to review full list | Mobile app | Shows categorised list with confidence levels, estimated costs, and suggested store (Checkers Sixty60 for speed, Woolies for fresh) | Confident |
| Edit | Removes Sipho's request for sweets ("nice try"), adds avocados | Mobile app | Updates list, recalculates estimated total (R380) | Amused, efficient |
| Order | Taps "Send to Checkers Sixty60" button | Mobile app | Deep-links to Sixty60 with pre-populated cart (or copies list to clipboard if API isn't available) | Satisfied |
| Delivery | Receives Sixty60 delivery at home | None (passive) | Auto-detects order confirmation email, updates inventory: milk, eggs, yoghurt now "in stock" | Effortless |
| Feedback loop | Grace unpacks groceries, notices avocados are not ripe enough | Nest Hub (voice) | Grace says "The avocados need a few days." System notes this for future produce timing. | Heard |
Journey 2: Grace Reports What's Running Low
Persona: Grace | Frequency: Each workday (Mon, Wed, Fri) | Surfaces: Nest Hub (voice), WhatsApp
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Morning routine | Grace arrives, starts cleaning. Notices the dish soap is nearly empty. | Physical (observation) | None yet | Responsible |
| Voice report | "Hey Google, tell Pantry: Sunlight almost finished, and we need rice" | Nest Hub (voice) | Confirms: "Got it, Grace. I've added Sunlight dish soap and rice to the list." | Efficient, acknowledged |
| Midday check | While cooking lunch, notices the cooking oil is low | Nest Hub (voice) | Adds to list. Now shows 3 items from Grace today. | Thorough |
| WhatsApp confirmation | Receives WhatsApp message from Pantry bot | "Hi Grace, today you reported: Sunlight dish soap, White Star rice 2kg, Sunfoil cooking oil 750ml. These are on Melisa's list." | Reassured, documented | |
| End of day | Grace leaves for the day knowing her reports are captured | None | Melisa sees Grace's reports on her dashboard with timestamps | Professional, valued |
Journey 3: Sipho Wants More Yoghurt
Persona: Sipho (7) | Frequency: Ad hoc | Surface: Nest Hub (voice only)
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Discovery | Sipho opens the fridge, sees the last yoghurt | Physical | None | Worried |
| Request | "Hey Google, tell Pantry we need more yoghurt!" | Nest Hub (voice) | "Okay Sipho, I'll let Mom know you want more yoghurt. I think you mean the Woolies strawberry one?" | Empowered |
| Confirmation | "Yes!" | Nest Hub (voice) | "Done! It's on the list. Mom will decide when to order it." | Happy, heard |
| Behind the scenes | Melisa gets a notification | Mobile app | Shows: "Sipho requested: Woolies Low Fat Strawberry Yoghurt 6-pack (R42.99)" with approve/dismiss buttons | (Melisa: amused, in control) |
Journey 4: Thabo Picks Up Groceries on the Way Home
Persona: Thabo | Frequency: 2-4x per month | Surface: WhatsApp
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Trigger | Melisa assigns shopping task: "Thabo, can you grab these on the way home?" | Mobile app (Melisa) | Generates a curated list for Thabo, optimised for his usual store (Checkers Rosebank) | (Melisa: delegating) |
| Receive list | Thabo gets WhatsApp message from Pantry bot | "Hi Thabo, Melisa asked you to pick up: Full cream milk 2L (NOT 2%, the blue one), Free range eggs x18, Woolies sourdough bread. Closest store: Checkers, Rosebank Mall" | Clear, no ambiguity | |
| Shopping | Thabo shops, checks items off in WhatsApp | Interactive checklist. Taps/replies to mark items as found. | Efficient | |
| Substitution | Sourdough is sold out. Thabo replies "they don't have it" | "No worries. Skip it or grab the Checkers ciabatta instead? I'll let Melisa know." | Supported, not stressed | |
| Checkout | Thabo pays, snaps a photo of the receipt | WhatsApp (photo) | Processes receipt photo, updates inventory. "Got it! R187.50 at Checkers Rosebank. Inventory updated." | Done, easy |
Journey 5: Monthly Makro Bulk Shop
Persona: Melisa + Thabo | Frequency: Monthly | Surfaces: Web dashboard, Mobile app
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Planning | Melisa reviews the monthly shopping plan on her laptop | Web dashboard | Auto-generated list based on: consumption history, current stock predictions, and items flagged low during the month. Shows estimated total: R4,200. | Prepared |
| Budget review | Compares to budget, removes non-essentials, adds Gogo's items | Web dashboard | Budget tracker updates in real time. Flags items over historical price. Visitor mode activated for Gogo. | In control |
| Shopping | Melisa and Thabo go to Makro together | Mobile app | Store-optimised list sorted by Makro's layout. Checklist mode for quick item marking. | Efficient |
| Checkout | Makro mCard scanned at till | Passive | Auto-imports purchase data. "Monthly shop complete: R4,087. Under budget by R113." | Accomplished |
Journey 6: Gogo Arrives for a Two-Week Stay
Persona: Gogo + Melisa | Frequency: Several times per year | Surfaces: Voice (Nest Hub), Mobile (Melisa)
| Phase | Action | Surface | Pantry's Role | Emotion |
|---|---|---|---|---|
| Arrival | Melisa tells Pantry: "Gogo is visiting for two weeks" | Mobile app / Voice | Activates visitor mode. Adjusts consumption predictions upward. Suggests stocking traditional ingredients. | Welcoming |
| First morning | Gogo wants phutu for breakfast, needs maize meal | Nest Hub (voice, Zulu) | Gogo: "Ngidinga impuphu" (I need maize meal). System responds in Zulu: "Ngizokufaka ohlwini, Gogo." | Included, comfortable |
| Melisa reviews | Sees Gogo's requests on her app | Mobile app | Shows "Gogo requested: Iwisa maize meal 5kg, dried sugar beans" tagged as visitor items. | Thoughtful |
| Departure | Gogo leaves after two weeks | Mobile app | Deactivates visitor mode. Reverts consumption predictions. "Gogo's visit added R1,200 to grocery spend." | Back to routine |
Cross-Journey Patterns
| Pattern | Observation | Design Implication |
|---|---|---|
| Multi-source list assembly | The shopping list is never built by one person. It's assembled from Grace's reports, kids' requests, predictive signals, and Melisa's additions. | The list is a living document with attributed sources and confidence levels. |
| Approval gates | Melisa always reviews before anything is ordered. She's the household "admin". | Permission model: anyone can add, only Melisa (and optionally Thabo) can approve/order. |
| Context-appropriate surfaces | Voice when hands are busy, WhatsApp when mobile, web for planning. | Each surface optimised for its context. Never force a user to switch surfaces. |
| Confirmation loops | Every input gets a confirmation: voice gets audio, WhatsApp gets text, app shows real-time updates. | Build trust through reliable feedback. "The system heard me" is baseline. |
| Store awareness | Different items come from different stores. Woolies for fresh, Makro for bulk, Checkers for speed. | Store-aware list generation and routing. Don't suggest buying 10kg rice on Sixty60. |
Passive Data Capture Strategy
The core problem Pantry solves is knowing what's in the household without anyone having to manually log it. This section maps every realistic data capture method, scores it for feasibility in the SA market, and recommends a phased rollout.
1. Receipt and Invoice Parsing (Items In)
| Aspect | Detail |
|---|---|
| How it works | Photo of till slip, email receipt forwarding, or direct API integration with retailer loyalty programmes |
| SA feasibility | High. Woolies, Checkers, and Pick n Pay all issue detailed digital receipts via their apps and loyalty programmes |
| Data quality | Excellent: SKU-level detail, exact quantities, prices, store, date, and time |
| User effort | Low to zero. Email forwarding rules or API integration require one-time setup. |
SA-Specific Implementation
- Checkers Sixty60 / Woolies Dash: Order history is available via their apps. API integration gives exact item data for delivery orders.
- Email receipt parsing: Woolies and Checkers both email receipts to loyalty members. A forwarding rule handles this passively.
- Till slip OCR: Fallback for in-store purchases. SA till slips are standardised enough for reliable OCR.
- Makro card: Makro's mCard tracks purchases. Bulk items can be auto-imported.
Confidence: 9/10 This is the primary "items in" signal.
2. Voice Reporting via Smart Speaker (Items Running Low)
| Aspect | Detail |
|---|---|
| How it works | Household members tell the Google Nest Hub when something is running low or finished |
| SA feasibility | High. Google Nest Hub is available in SA. English voice recognition is solid. Zulu support is emerging. |
| Data quality | Good for "items out" signals. Fuzzy: "the crunchy cereal" needs product resolution. |
| User effort | Minimal. Speaking is faster than typing. |
Voice Capture Scenarios
- Direct report: "Hey Google, tell Pantry we're out of milk"
- Fuzzy request: "Hey Google, tell Pantry we need more of Sipho's yoghurt" (resolves to Woolies low-fat strawberry yoghurt 6-pack based on history)
- Grace's report: "Hey Google, tell Pantry: Sunlight almost finished, need rice, and eggs" (batch input)
Confidence: 8/10 Voice is the most natural "items out" signal.
3. Predictive Consumption Modelling (Estimated Depletion)
| Aspect | Detail |
|---|---|
| How it works | System learns consumption rates from purchase history. If 2L milk is bought every 4 days, it predicts when milk will run low. |
| SA feasibility | High. Requires only purchase history data, which comes from receipt parsing. |
| User effort | Zero. Fully passive once purchase data flows in. |
How the Model Works
- Baseline period: 4-6 weeks of purchase data to establish consumption cadence per item
- Categorisation: Items classified as staples (regular cadence), occasionals (irregular), or one-offs
- Depletion estimate: "You bought 2L full cream milk 3 days ago. Based on your pattern, you'll need more in about 2 days."
- Correction loop: Voice reports calibrate the model. If milk ran out a day early, the consumption rate adjusts.
Confidence: 7/10 The "smart" layer that makes Pantry feel proactive.
4. Barcode and Camera Scanning (Optional, Active)
Confidence: 5/10 Optional, not core. Nice for power users, but the system must work well without it. Never gate core functionality behind barcode scanning.
When Scanning Makes Sense
- Initial pantry setup: One-time scan of everything in the pantry to bootstrap the system
- Unpacking after a big shop: Scanning items while unpacking the monthly Makro haul
- Discard scanning: Scan the barcode on an empty container before throwing it away
5. Smart Device Integration (Future)
Confidence: 2/10 Park this for v3+. SA's infrastructure and price points don't support this yet. Focus on software-first solutions.
6. WhatsApp Micro-Reports (Items Out, Low-Friction)
| Aspect | Detail |
|---|---|
| SA feasibility | Very high. WhatsApp is universal in SA. Zero app install needed. |
| User effort | Minimal. Same action Grace is already doing, just to a different contact. |
Grace's Workflow: Current vs. Pantry
| Current | With Pantry |
|---|---|
| WhatsApps Melisa: "The Sunlight is almost finished and we need rice" | WhatsApps Pantry bot: same message. Bot parses it, adds to list, confirms back. |
| Melisa reads it hours later, forgets half | Items appear on Melisa's dashboard immediately, flagged as "reported by Grace" |
| No record, no tracking | Grace gets confirmation: "Added: Sunlight dish soap, White Star rice 2kg" |
Confidence: 9/10 This is the killer feature for the SA market.
Recommended Layered Capture Strategy
| Priority | Method | Signal Type | Phase | User Effort |
|---|---|---|---|---|
| 1 | Receipt/invoice parsing | Items In | MVP | One-time setup |
| 2 | WhatsApp micro-reports | Items Out / Running Low | MVP | Near zero |
| 3 | Voice reporting (Nest Hub) | Items Out / Running Low | MVP | Minimal |
| 4 | Predictive consumption model | Estimated Depletion | v1.1 | Zero (passive) |
| 5 | Barcode scanning | Items In / Items Out | v1.1 | Active (optional) |
| 6 | Smart device integration | Real-time inventory | v3+ | Zero (hardware) |
Data Confidence Framework
High confidence (green): Receipt-confirmed purchase + within predicted consumption window. "You bought 2L milk 2 days ago. Likely still have some."
Medium confidence (amber): Purchase confirmed but nearing predicted depletion. "You might be running low on eggs."
Low confidence (red): Past predicted depletion date with no repurchase signal. "You're probably out of bread."
Unknown (grey): No data. Item hasn't been tracked yet or was purchased at an untracked store.
Voice Interaction Scripts
These scripts define how Pantry sounds and behaves on the Google Nest Hub. Voice is the primary interface for three of five personas (Kids, Grace, Gogo), making these interactions critical to product success.
Voice Design Principles
Warm, not robotic. Pantry sounds like a helpful household member, not a call centre IVR.
Brief by default. Responses are short. Detail is available on the Nest Hub screen or by asking follow-up questions.
Forgiving. Fuzzy language ("the crunchy cereal", "Sipho's yoghurt") is resolved using purchase history and household context.
Speaker-aware. Recognises household members by voice (Google Voice Match) and adjusts behaviour: kids' requests go to approval queue.
Multilingual. English and Zulu supported. Responds in the language spoken to it.
Non-blocking. Never asks more than one clarifying question. If unsure, make the best guess and confirm.
Script 1: Adding Items to the List
Scenario A: Simple single item (Grace)
Grace: "Hey Google, tell Pantry we need more rice."
Pantry: "Got it, Grace. I've added White Star rice, 2 kilo bag, to the list. Is that right?"
Grace: "Yes."
Pantry: "Done. It's on Melisa's list."
System resolves "rice" to the household's usual brand and size from purchase history.
Scenario B: Multiple items (Grace, batch report)
Grace: "Hey Google, tell Pantry: we need Sunlight, eggs, and the blue milk."
Pantry: "Adding three items: Sunlight dish soap, eggs eighteen pack, and full cream milk two litres. All on the list."
Batch input is critical for Grace's workflow. "Blue milk" resolved to full cream from purchase history.
Scenario C: Fuzzy request (Sipho)
Sipho: "Hey Google, tell Pantry I want more of the crunchy cereal!"
Pantry: "Hey Sipho! I think you mean Kellogg's Crunchy Nut. I'll ask Mom to add it to the list."
Kids' requests are routed to Melisa's approval queue, not added directly.
Scenario D: Zulu input (Gogo)
Gogo: "Hey Google, tshela iPantry ngidinga impuphu ne-sugar beans."
Pantry: "Kulungile, Gogo. Ngifake impuphu ne-sugar beans ohlwini."
Responds in the language spoken. Zulu product names mapped to store product catalogue.
Script 2: Checking What's Needed
Morning check (Melisa)
Melisa: "Hey Google, ask Pantry what we need."
Pantry: "You've got 7 items on the list. Top priority: milk and eggs are probably out. Grace reported you're low on dish soap and rice. Sipho wants yoghurt. Want me to read the full list?"
Melisa: "No, that's fine. Send it to my phone."
Pantry: "Sent. You can review it in the app."
Quick status check (anyone)
Thabo: "Hey Google, ask Pantry: do we have milk?"
Pantry: "Probably not. You bought milk 4 days ago and usually run out after 3. It's already on the list."
Predictive status based on consumption modelling. Honest about uncertainty.
Budget check (Melisa)
Melisa: "Hey Google, ask Pantry how much we've spent this month."
Pantry: "So far this month, you've spent R6,340 on groceries. That's about R1,600 under your R8,000 budget with 10 days left."
Financial data only shared with Melisa and Thabo (voice-matched).
Script 3: Removing and Modifying Items
Melisa: "Hey Google, tell Pantry to remove the sweets from the list."
Pantry: "Done. I've removed the jelly sweets that Sipho requested."
Melisa: "Hey Google, tell Pantry to switch to Tastic rice from now on."
Pantry: "Noted. I'll default to Tastic rice for future orders. Want me to update the current list too?"
Melisa: "Yes."
Pantry: "Done. Tastic rice 2 kilo bag is now on the list."
Brand preferences are persistent. Once set, the system remembers for future voice-to-product resolution.
Script 4: Delegating Shopping Tasks
Melisa: "Hey Google, tell Pantry to send the milk, eggs, and bread to Thabo."
Pantry: "Sending those three items to Thabo on WhatsApp now. He'll get them with store suggestions and brand details."
Melisa: "Hey Google, tell Pantry to order the top-up list on Sixty60."
Pantry: "I've prepared a Checkers Sixty60 order with 5 items, estimated total R340. Check the app to confirm and place the order."
Voice can initiate an order but cannot complete it. Final checkout always requires visual confirmation.
Script 5: Proactive Notifications (System-Initiated)
Triggered by the system, not the user. They appear as gentle nudges on the Nest Hub screen.
Pantry (screen): "Heads up: you're probably running low on milk and eggs. Add to list?"
Melisa: "Hey Google, yes, add them."
Pantry: "Added milk and eggs to the list."
Proactive alerts are visual-first (screen card), not voice-first. Nobody wants their kitchen speaker randomly announcing grocery needs.
Pantry (to Melisa): "Gogo is coming next week. Based on her last visit, you might want to stock up on maize meal, cooking oil, and dried beans. Want me to add them?"
Script 6: Error Handling and Edge Cases
Grace: "Hey Google, tell Pantry we need... [unclear]"
Pantry: "Sorry Grace, I didn't catch that. Could you say it again?"
One retry, then offer alternatives: "You can also WhatsApp me the items if voice isn't working."
Melisa: "Hey Google, tell Pantry to add milk."
Pantry: "Milk is already on the list, added by Grace this morning. Want me to increase the quantity?"
Lerato: "Hey Google, tell Pantry to order chips on Sixty60."
Pantry: "I can't place orders, Lerato, but I've added chips to the request list. Mom will see it and decide."
Kids can request, never order. The system recognises the voice and applies appropriate permissions.
Voice Personality Guidelines
| Trait | Do | Don't |
|---|---|---|
| Tone | Warm, helpful, like a friendly family member | Robotic, overly formal, condescending |
| Brevity | "Milk added." / "Got it, Grace." | "I have successfully added full cream milk, 2 litres, to your household shopping list." |
| Certainty | "You're probably low on eggs" (honest) | "You are out of eggs" (can't know for sure) |
| Names | Use first names when voice-matched: "Got it, Grace" | Generic: "Item has been added to the list" |
| Kids | Friendly, encouraging: "Great idea, Sipho!" | Same formal tone as adults |
| Language | Match the speaker's language (English or Zulu) | Always respond in English regardless of input |
Multi-Surface UX Framework
Pantry lives across four distinct surfaces, each optimised for different contexts, personas, and tasks. This framework defines what each surface does, what it doesn't do, and how they work together as a coherent system.
The Four Surfaces
| Surface | Primary Personas | Context | Core Capability |
|---|---|---|---|
| Google Nest Hub | Grace, Kids, Gogo, Melisa | Kitchen, hands busy, quick interactions | Input (add items, report stock), quick status checks |
| WhatsApp Bot | Grace, Thabo, Melisa | On the go, at the store, asynchronous | Task delegation, shopping lists, confirmations, receipt capture |
| Mobile App (PWA) | Melisa, Thabo | Commute, couch, quick review moments | List management, approvals, ordering, notifications |
| Web Dashboard | Melisa | Evening planning, laptop | Analytics, budget tracking, monthly planning, settings |
Permission Model Across Surfaces
| Action | Melisa | Thabo | Grace | Kids | Gogo |
|---|---|---|---|---|---|
| Add items to list | Direct | Direct | Direct | To approval queue | Direct |
| Remove items | Yes | Yes (own) | No | No | No |
| Approve requests | Yes | Yes | No | No | No |
| Place orders | Yes | Yes (with limit) | No | No | No |
| View budget | Yes | Yes | No | No | No |
| Assign tasks | Yes | No | No | No | No |
| Change settings | Yes | Limited | No | No | No |
Progressive Disclosure by Surface
| Level | Nest Hub | Mobile | Web | |
|---|---|---|---|---|
| Glanceable | "5 items needed" | "3 items to pick up" | Badge count on icon | KPI cards |
| Summary | Voice readback of top items | Text list with brands | Categorised list view | Dashboard overview |
| Detail | N/A (go to mobile) | N/A (go to mobile) | Item cards with source, confidence, price | Full analytics, trends |
| Deep analysis | N/A | N/A | N/A | Historical trends, budget modelling |
Notification Routing
Not every notification goes to every surface. Route by relevance and context:
| Event | Nest Hub | Mobile Push | Web | |
|---|---|---|---|---|
| Item running low | Screen card (silent) | No | Yes (Melisa) | Dashboard badge |
| Item reported "out" | Voice confirmation | Confirmation to reporter | Yes (Melisa) | Activity feed |
| Shopping task assigned | No | Yes (to assignee) | Yes (to assignee) | No |
| Budget threshold (80%) | No | No | Yes (Melisa) | Alert banner |
| Deal on frequent item | Screen card (silent) | No | Optional | Specials section |
Offline and Degraded Mode
SA's connectivity can be unreliable (load shedding, network issues). Each surface must handle degradation:
| Surface | When Offline | When Back Online |
|---|---|---|
| Nest Hub | Queues voice commands locally: "Saved. I'll sync when we're back online." | Syncs queued items, resolves product names |
| Messages queue in WhatsApp's own delivery system | Bot processes messages in order received | |
| Mobile (PWA) | Full list management offline (cached data). Shows "last synced" timestamp. | Two-way sync with conflict resolution |
| Web | Read-only cached view. Shows "offline" banner. | Full refresh on reconnect |
Cross-Surface Design Principles
Start Anywhere, Finish Anywhere. Grace reports "need rice" on the Nest Hub. Melisa reviews it on her phone. She assigns it to Thabo on WhatsApp. He snaps the receipt. No surface is a dead end.
Consistent Data, Adapted Presentation. The same shopping list appears on every surface, but formatted for the context: voice summary, checklist format, interactive cards, or full analytical table.
UI Mockups
Interactive mockups across all four Pantry surfaces: mobile app, Google Nest Hub, WhatsApp bot, and web dashboard.
Mobile App Mockups: Four core screens for the Pantry mobile app, designed for one-handed use while cooking, shopping, or managing the household. Dark mode default with warm, kitchen-friendly colours. All prices in ZAR, all stores South African. View full mobile mockups
The mobile app includes four key screens: Dashboard (quick-glance overview with budget tracker, alerts, and list preview), Pantry Inventory (full inventory with confidence-based stock indicators), Shopping List (grouped by store with price comparison), and Receipt Scan (camera-based OCR with SA retailer matching).
Dashboard
Budget status bar (R3,420 / R5,000), needs-attention alerts (eggs out, milk running low), this week's list preview (12 items, est. R684), and quick actions (voice add, scan, full list).
Pantry Inventory
Category tabs (All, Fridge, Pantry, Cleaning, Frozen). Colour-coded stock indicators: green (well stocked), amber (running low), red (out of stock). Search and filter, pull-to-refresh.
Shopping List
Grouped by store (Woolworths 5 items R198.95, Checkers 4 items R245.96, PnP 3 items R152.97). Price comparison chips, swipe-to-check-off, estimated total with budget remaining.
Receipt Scan
Camera viewfinder with alignment guide. Auto-detects retailer (Woolworths, Checkers, PnP). Parsed items with confidence scores, edit-before-confirm flow, running total calculation.
Google Nest Hub Mockups: Three key screens for the Nest Hub (landscape, 1024x600). Designed for arm's-length reading with large type and high contrast. View full Nest Hub mockups
Ambient Display
Always-on kitchen companion showing items running low (eggs out, milk ~1 day left), today's meal plan, and household status metrics (78% stocked, R3.4k spent, 12 items on list).
Voice Response Cards
Confirmation cards when adding items ("Added Full Cream Milk 2L, Woolworths R32.99") and summary cards for list queries ("13 items, R717 est., 3 stores"). Auto-dismiss after 10 seconds.
Family Scoreboard
Gamified household tracking with leaderboard (Thandi 2,450pts, Sipho 1,820pts), achievements (Budget Boss, Zero Waste), and household stats (waste score 92, R240 saved).
WhatsApp Bot Mockups: Four conversation flows showing natural language interaction, inline actions, and smart formatting. View full WhatsApp mockups
Quick Add Flow
"Running low on milk" triggers smart matching (Full Cream Milk 2L, R32.99 at Woolworths). Quick reply buttons: Looks good, Change to low-fat, Buy at Checkers, Remove.
Weekly Summary
Sunday evening overview: spending this week (R1,180), pantry status (78%, 4 running low), next week's draft list (13 items, R684 est.), smart suggestions (switch chicken to Checkers, save R12).
List Approval
Store-grouped list (Woolworths 5 items R198.95, Checkers 4 items R245.96, PnP 3 items R152.97). Natural language edits: "Remove the washing powder and add dishwashing liquid". New total recalculated instantly.
Exception Alerts
Proactive notifications: usage alerts (Jungle Oats finished 2 weeks early), price alerts (Woolworths chicken up 15%, Checkers alternative saves R12), budget warnings (80% of monthly budget hit).
Web Dashboard Mockups: Four full-width desktop screens showing Pantry's command centre for household analytics, historical trends, and family management. Built for focused evening sessions on a laptop. View full dashboard mockups
Analytics Dashboard
Spend by category (fresh produce R2,340, cleaning R890, pantry staples R1,560), store comparison bar chart (Woolworths R3,200, Checkers R2,100, PnP R1,480), waste tracking score (92/100), and monthly budget progress (R6,780 of R8,500).
Historical Trends
Month-over-month spending line charts, category breakdown over 6 months, seasonal patterns with annotations (December spike R12,400), price tracking per item, and year-over-year savings calculation (R4,200 saved).
Family Management
Member profiles with role-based permissions (Melisa: Admin, Thabo: Editor, Gogo: Voice Only), activity feed, device management (3 active: iPhone, Nest Hub, WhatsApp), and notification preferences per member.
Inventory Overview
Full pantry grid with stock levels, expiry tracking (3 items expiring this week), category filters, search, bulk actions, and smart reorder suggestions based on consumption velocity.
Design System
Pantry's visual language is warm, practical, and kitchen-inspired. It avoids the cold, corporate feel of typical SaaS tools and instead feels like a trusted household companion. The palette draws from natural, earthy tones: terracotta, warm sand, sage green, and deep charcoal.
Colour Palette
Two modes: dark (default) and light. Dark mode uses deep, warm backgrounds that feel cosy on kitchen countertops and bedside tables. Light mode flips to clean, airy surfaces for daytime use.
#1a1614
#2a2320
#c4653a
#d4915a
#7a9e7e
#e8c468
#c45c5c
#f0e6d3
Typography
Inter is the primary typeface: clean, highly legible, and excellent at small sizes on mobile screens.
Design Principles
01. Kitchen-counter ready. Every screen should feel at home on a kitchen counter, bedside table, or in a busy parent's hand. Large touch targets, high contrast, glanceable information.
02. Smart defaults, easy overrides. The system should predict what you need, but never lock you in. One tap to approve, two taps to change.
03. Voice-first, screen-supported. Every action should be possible by voice alone. The screen adds context and confidence, not complexity.
04. Budget-aware always. ZAR pricing is never an afterthought. Running totals, store comparisons, and budget alerts are embedded in every flow.
05. Familiar, not foreign. Reference South African brands, stores, and shopping habits. Woolies, Checkers, Pick n Pay. Not Walmart, not Tesco.
Component Patterns
Status Badges
Device Frames
Mockups use consistent device frames: 375 x 812px for mobile (iPhone viewport), 1024 x 600px for Google Nest Hub, and standard chat-width for WhatsApp.
Competitor Landscape Analysis
Pantry enters a fragmented market with no single product combining inventory tracking, voice-first interaction, and SA grocery integration. Below is a comprehensive mapping of the competitive landscape across five categories.
1. SA Grocery Delivery Apps
The SA on-demand grocery delivery market is dominated by Checkers Sixty60, which holds over 80% market share among higher-income households.
| Platform | Strengths | Gaps | Delivery Fee |
|---|---|---|---|
| Checkers Sixty60 | Market leader (80%+ share). 694 locations. 60-min delivery. 47.7% sales growth (FY2025). | No inventory tracking. No voice integration. No cross-store shopping. | R36 (free on R500+) |
| Woolies Dash | Premium product range. 130 sites + 1 dark store. 40% YoY growth. | No inventory management. No voice ordering. Higher delivery fee. | R45 |
| Pick n Pay asap! | 600 locations. 48.7% online growth (FY2025). Re-platformed app with AI features. | No pantry tracking. No voice assistant. App still maturing. | R35 |
| OneCart | Multi-store shopping (Woolworths, Dis-Chem, Pick n Pay, Makro) with one delivery fee per mall. | No inventory features. Limited brand awareness. | Varies |
| SPAR2U | 525 stores. 380% volume growth YoY. | Late entrant. Less established UX. No smart features. | Varies |
2. Grocery List and Inventory Apps
These apps solve list management and sharing but none offer deep SA store integration, voice-first design, or passive inventory tracking.
| App | Strengths | Gaps | SA-Specific? |
|---|---|---|---|
| AnyList | Top all-rounder. Real-time syncing. Recipe organisation. | No SA store integration. No passive tracking. | No |
| OurGroceries | Simple shared lists. Google Assistant integration. | No inventory tracking. No SA store data. | No |
| Bring! | Visual, icon-based (great for non-tech-savvy users). | No inventory management. No SA retailers. | No |
| Listonic | Smart suggestions from past habits. Voice input. | No pantry tracking. No SA-specific data. | No |
3. Smart Kitchen / Connected Appliances
| Product | Strengths | SA Relevance |
|---|---|---|
| Samsung Family Hub | AI Vision Inside, expiry tracking, shopping list. R40,000+. | Available but very niche. High price limits adoption. |
| LG InstaView ThinQ | AI camera for food recognition. Knock-to-see-inside. | Limited SA availability. Premium pricing. |
4. Voice Assistants + Grocery
| Platform | Strengths | SA Relevance |
|---|---|---|
| Google Shopping List | Voice-add via Nest Hub. Lists in Google Keep. Free. | Google Nest Hub is available in SA. This is the voice platform Pantry should build on. |
| Alexa Shopping List | Voice-add via Echo. Alexa+ adds agentic grocery shopping. | Low. Echo has limited SA penetration. No local grocery partners. |
Competitive White Space: Where Pantry Wins
No existing product combines these four capabilities:
- Passive inventory tracking that knows what you have at home
- Voice-first interaction via Google Nest Hub for hands-free kitchen use
- SA grocery ecosystem integration with Checkers, Woolworths, Pick n Pay
- Intelligent replenishment that learns household patterns
Pantry's moat is the integration layer: connecting what you have, what you need, and where to buy it, all optimised for the South African market.
SA Grocery Ecosystem Deep Dive
South Africa's grocery retail sector is highly concentrated among four major chains, each with distinct digital capabilities, loyalty programmes, and delivery infrastructure. Pantry must integrate deeply with this ecosystem to deliver value.
1. Major Retailer Digital Capabilities
Checkers / Shoprite Group (Sixty60)
| Dimension | Details |
|---|---|
| Delivery | Checkers Sixty60: 60-minute delivery from 694 locations. 80%+ of addressable online market. 47.7% sales growth FY2025. |
| Loyalty | Xtra Savings: Free tier with personalised deals. Plus: R99/month for unlimited free deliveries, double deals, 10% off one shop per month. |
| Delivery Fee | R36 (from July 2025). Free on R500+ orders. Free with Xtra Savings Plus. |
| Integration | No public API. Product catalogue accessible via web scraping. Deep linking into app for checkout possible. |
Woolworths (Woolies Dash)
| Dimension | Details |
|---|---|
| Delivery | Woolies Dash: on-demand from 130 sites + 1 dark store. 90%+ of customer base. 40% YoY growth. |
| Loyalty | WRewards: Vouchers, promotional pricing, credit card linking. Strong brand loyalty among LSM 8-10. |
| Delivery Fee | R45 (from November 2025). Premium positioning matches brand. |
| Integration | No public API. WRewards card linking could surface personalised pricing. Deep linking into Woolworths app. |
Pick n Pay (asap!)
| Dimension | Details |
|---|---|
| Delivery | PnP asap!: on-demand from 600 locations (expanded from 47 in mid-2025). Also on Mr D app. 48.7% online turnover growth FY2025. |
| Loyalty | Smart Shopper: Points-based, digital signup, in-app tracking. Historically largest SA grocery loyalty programme. |
| Delivery Fee | R35. Pre-authorisation model: charged only for delivered items. |
| Integration | Re-platformed app may be more integration-friendly. Mr D platform (Naspers) has API infrastructure. |
2. Price Comparison
| Factor | Checkers | Woolworths | Pick n Pay |
|---|---|---|---|
| Positioning | Value-to-mid. Aggressive promotions. | Premium. Higher prices, quality perception. | Mid-range. Competitive pricing. |
| Delivery Fee | R36 (or free) | R45 | R35 |
| Subscription | Xtra Savings Plus: R99/mo | None | None |
| Online Markup | Generally matches in-store | Slight premium on some items | Generally matches in-store |
3. Loyalty Programme Landscape
| Programme | Members | Key Benefits | Pantry Value |
|---|---|---|---|
| Xtra Savings | 30M+ cards | Personalised deals, Plus tier R99/mo | Surface personalised deals, alert to Plus savings based on order frequency |
| WRewards | 5M+ members | Vouchers, promotional pricing | Show WRewards pricing, remind users to redeem vouchers before expiry |
| Smart Shopper | 10M+ members | Points on purchases, digital tracking | Track points earned, suggest spend thresholds for bonus points |
4. Integration Strategy
Phase 1 (MVP)
Web scrape product catalogues for matching and price comparison. Deep link to retailer apps for "Order Now" handoff. Allow users to link loyalty card numbers.
Phase 2 (Growth)
Pursue formal API partnerships (likely starting with PnP via Mr D/Naspers). Enable in-app ordering. Integrate real-time stock availability.
Phase 3 (Scale)
Become a super-aggregator: one basket, best price across stores, split orders. Negotiate affiliate/commission arrangements.
Market Sizing Analysis
This analysis sizes the opportunity for Pantry in the South African market, using a top-down TAM/SAM/SOM framework with locally relevant data points.
1. TAM / SAM / SOM
2. Target Demographics: LSM 8-10 Urban
| Characteristic | LSM 8 | LSM 9 | LSM 10 |
|---|---|---|---|
| Monthly Income | R13,200 - R19,000 | R19,000 - R25,000 | R25,000+ |
| Smartphone | 85%+ | 95%+ | 98%+ |
| Online Shopping | Growing adoption | Regular | Frequent |
| Est. Households | ~1.5M | ~800K | ~500K |
3. Online Grocery Adoption
| Metric | Value |
|---|---|
| E-commerce penetration | 49% (2025), forecast 60% by 2028 |
| Online grocery market | R80B projected by 2026 |
| Growth rate | 25-35% CAGR (5-7x faster than overall grocery) |
| Checkers Sixty60 growth | 47.7% sales growth FY2025 |
| Key drivers | Convenience, load shedding, safety concerns, COVID habit persistence |
| Key barriers | Delivery fees, can't select own fresh produce, data costs, payment trust |
4. Growth Projections
| Metric | Year 1 | Year 2 | Year 3 | Year 5 |
|---|---|---|---|---|
| Registered Households | 25,000 | 120,000 | 400,000 | 1,000,000 |
| Paid Subscribers | 2,500 (10%) | 18,000 (15%) | 80,000 (20%) | 250,000 (25%) |
| ARPU (blended) | R70/mo | R75/mo | R80/mo | R85/mo |
| Total Revenue | R2.6M/yr | R24.2M/yr | R116.8M/yr | R405M/yr |
5. Market Tailwinds and Risks
Tailwinds
- Online grocery growing 25-35% CAGR
- Subscription conditioning (Xtra Savings Plus, Uber One, Netflix)
- Smart speaker growth in SA homes
- No local competitor combines inventory tracking with delivery integration
- Food waste awareness is growing
Headwinds
- Retailers could build similar features into their own apps
- Price sensitivity and cost-of-living pressures
- Data costs for always-on app usage
- No public APIs from SA retailers
- Behavioural change required for habit formation
Feature Prioritisation Matrix
Every feature scored on four dimensions: user impact, development effort, technical risk, and SA market fit. Features are grouped into MVP, Phase 2, and Future.
| Feature | Impact | Effort | Risk | SA Fit | Score | Phase |
|---|---|---|---|---|---|---|
| Voice-first grocery list Add, remove, check items via Google Nest or phone mic |
5 | 3 | 2 | 4 | 4.0 | MVP |
| Receipt scanning (OCR) Snap till slips from Woolies, Checkers, Pick n Pay |
5 | 3 | 3 | 5 | 4.0 | MVP |
| Manual pantry management Search, tap-to-add, quantity adjust |
4 | 2 | 1 | 5 | 4.0 | MVP |
| WhatsApp bot "What do I need?" / "Add milk" via WhatsApp |
4 | 3 | 2 | 5 | 3.8 | MVP |
| Budget tracking (basic) Monthly spend from receipts, category breakdown, ZAR |
4 | 2 | 1 | 5 | 3.8 | MVP |
| Family/multi-user management Shared household list, role-based access |
4 | 2 | 1 | 4 | 3.8 | MVP |
| Delivery history integration Pull order history from Woolies Dash, Checkers Sixty60 |
4 | 3 | 4 | 5 | 3.3 | Phase 2 |
| Predictive consumption ML-based "you'll run out of eggs by Thursday" |
5 | 4 | 3 | 4 | 3.3 | Phase 2 |
| Smart scale / mat integration Weight-based pantry tracking via Bluetooth scales |
5 | 4 | 4 | 3 | 3.0 | Phase 2 |
| Auto-ordering from retailers One-tap reorder via Sixty60 or Woolies Dash |
4 | 4 | 5 | 5 | 3.0 | Phase 2 |
| Camera-based tracking Fridge/pantry cameras via computer vision |
5 | 5 | 5 | 2 | 2.3 | Future |
| NFC/RFID tagging Tap-to-track individual items |
3 | 4 | 4 | 2 | 2.0 | Future |
((Impact + SA Fit) / 2) - ((Effort - 1) * 0.15) - ((Risk - 1) * 0.2). This deliberately biases toward features that solve real problems for SA families.
MVP Rationale
MVP: Data-Entry Friction
The MVP focuses on reducing data-entry friction through three complementary input channels: voice (fastest for known items), receipt scanning (bulk capture after shopping), and WhatsApp (accessible anywhere, no app install).
Phase 2: Intelligence
Phase 2 adds intelligence and automation. Predictive consumption needs purchase history, which the MVP builds over time. Auto-ordering depends on retailer partnerships.
Future: Camera Tracking
Camera-based tracking is the dream, but: high hardware cost, privacy concerns, and computer vision models still struggle with SA-specific products.
Passive Tracking Technology Review
The core challenge: how does Pantry know what is in your kitchen without you manually logging every item? We evaluated nine technology approaches against feasibility, cost for SA households, privacy implications, and readiness for the South African market.
| Technology | Feasibility | Cost (SA) | Privacy | SA Readiness | Overall | Verdict |
|---|---|---|---|---|---|---|
| Receipt OCR | 5/5 | 5/5 | 5/5 | 5/5 | 5.0 | MVP |
| WhatsApp Business API | 4/5 | 4/5 | 4/5 | 5/5 | 4.3 | MVP |
| Google Home APIs | 4/5 | 4/5 | 4/5 | 3/5 | 3.8 | MVP |
| Predictive ML | 3/5 | 4/5 | 5/5 | 3/5 | 3.5 | Phase 2 |
| Email/Order Parsing | 4/5 | 5/5 | 3/5 | 4/5 | 3.5 | Phase 2 |
| Smart Scales | 3/5 | 2/5 | 5/5 | 2/5 | 3.0 | Phase 2 |
| Weight Sensors | 2/5 | 1/5 | 5/5 | 1/5 | 2.0 | Future |
| Camera / CV | 2/5 | 1/5 | 1/5 | 1/5 | 1.3 | Future |
| NFC / RFID | 2/5 | 2/5 | 5/5 | 1/5 | 2.0 | Future |
Receipt OCR (MVP Priority)
How it works: User photographs their till slip. OCR extracts store name, item list, quantities, prices, and date. Items matched against a product database.
SA-Specific Considerations
- Woolworths receipts are well-structured, clean thermal print. Easiest to parse.
- Checkers/Shoprite use abbreviated product names (e.g., "CHK HM MLK 2L"). Requires SA-specific abbreviation dictionary.
- Pick n Pay receipts vary by store generation. Newer stores have QR codes linking to digital receipts.
Tech: Google Cloud Vision API or Azure Computer Vision. Estimated cost: ~R0.03 per receipt.
WhatsApp Business API (MVP Priority)
Why non-negotiable for SA: 96% of SA smartphone users are on WhatsApp. Minimal data usage (~1KB per text). Domestic workers and extended family far more likely to use WhatsApp than download a new app.
Tech: WhatsApp Business Cloud API (Meta-hosted). First 1,000 service conversations free per month, then ~R0.50 per conversation.
Google Home APIs (MVP Priority)
SA context: Google Nest devices available via Takealot and Incredible Connection. Nest Mini ~R900, Nest Hub ~R2,500. Google Assistant supports SA English accent recognition. Competitor Alexa has almost no SA presence.
Tech: Google Home APIs platform with fulfillment via webhook. For Nest Hub visuals, use Interactive Canvas.
Risk: Google has a history of deprecating platforms (Conversational Actions sunset 2023). Build abstractions.
Predictive Consumption ML (Phase 2)
Approach: Moving average of purchase intervals per item. SA-specific patterns: braai season (Sep-Mar), back-to-school (Jan), load shedding periods. Minimum 3 purchase cycles per item before predictions activate.
Why Phase 2: The MVP must build the data foundation first. Predictions only become valuable after 8-12 weeks of purchase data.
Recommended Technology Stack
MVP Stack
Google Cloud Vision (OCR), WhatsApp Business Cloud API, Google Home APIs, Firebase/Supabase (backend), React Native or Flutter (mobile)
Phase 2 Additions
Python ML pipeline (scikit-learn), Gmail API (email parsing), BLE SDK (smart scale integration), custom product matching model
Future Exploration
Edge AI / TensorFlow Lite (camera), custom hardware (smart shelf)
Integration Architecture
Pantry connects multiple input surfaces (voice, camera, WhatsApp, manual) to a unified pantry state, then pushes that state out to multiple output surfaces. This architecture prioritises offline resilience, SA retailer compatibility, and low-cost scaling.
System Architecture Overview
| Layer | Components |
|---|---|
| Input Channels | Google Nest Voice, WhatsApp Bot, Receipt Scanner, Mobile App, Smart Scale |
| API Gateway | Pantry API Gateway (Auth, Rate Limit, Routing) via REST + WebSocket |
| Core Services | Pantry State (CRUD + sync), NLP Engine, OCR Pipeline, User/Household management, Prediction engine |
| Data Layer | PostgreSQL (items, users, history), Redis (cache, sync), Object Storage (receipts, photos), SA Product DB |
| External | Woolworths, Checkers, Pick n Pay (web scraping/future API), Google (Home APIs, Cloud Vision), Meta (WhatsApp API) |
Retailer Integration (Phased)
Phase 1: Read-Only (MVP)
Receipt Photo → OCR Engine → Product Matcher → Pantry DB. No retailer integration needed: we read receipts, not APIs. Build SA abbreviation dictionary from 500+ receipts.
Phase 2: Email Parsing
Sixty60/Dash/ASAP emails → Email Parser → Item Extractor → Pantry DB. More reliable than OCR (structured HTML vs. faded thermal paper).
Phase 3: Direct (Partnership)
Pantry App → Pantry API → Retailer API → Delivery. Direct ordering, real-time stock. Revenue share 2-5% on orders. Viable at 50,000+ active households.
Cross-Surface Data Flow
| Surface | Sync Method | Latency | Offline Support |
|---|---|---|---|
| Mobile App | WebSocket + local SQLite | < 500ms | Full offline queue, sync on reconnect |
| Web Dashboard | WebSocket | < 500ms | Read-only cache |
| Google Nest | Webhook (server push) | 1-3 seconds | Nest handles connectivity internally |
| Webhook (event-driven) | 1-5 seconds | WhatsApp queues messages during offline | |
| Smart Scale | BLE to app, then API | 5-30 seconds | Scale buffers readings locally |
Infrastructure
| Component | Service | Monthly Cost (ZAR) |
|---|---|---|
| API Server | Cloud Run (auto-scaling) | R500 - R2,000 |
| Database | Cloud SQL (PostgreSQL) | R1,200 - R3,500 |
| Cache | Memorystore (Redis) | R800 - R1,500 |
| OCR API | Cloud Vision | R300 - R1,000 |
| WhatsApp API | Meta Cloud API | R0 - R2,000 |
| Total (1,000 households) | R3,000 - R10,500/month |
Multi-Surface Strategy
Pantry lives across five surfaces, each optimised for a different moment and context. The key insight: no single surface handles every grocery management scenario. SA households are multi-device, multi-person, and multi-context.
📱 Mobile App
Primary surface. Receipt scanning, barcode scanning, full pantry management, push notifications, offline mode, budget reports, smart scale pairing.
When: Shopping, scanning receipts, on the go
🏠 Google Nest Hub
Kitchen companion. Hands-free voice, ambient display, visual pantry summary, proactive reminders, multi-user voice recognition.
When: Cooking, hands dirty, quick checks
💬 WhatsApp Bot
Universal access layer. Zero app install, zero-rated data, receipt photo processing, voice note transcription, group chat integration.
When: Anywhere, anytime, domestic workers, extended family
💻 Web Dashboard
Planning and analytics. Full spending analytics, price trend charts, store comparison, bulk editing, household settings, data export.
When: Weekly planning, budget review
Sync Matrix
| Capability | Mobile | Nest Hub | Web | |
|---|---|---|---|---|
| Pantry inventory | ✅ | ✅ | ✅ | ✅ |
| Shopping list | ✅ | ✅ | ✅ | ✅ |
| Receipt scanning | ✅ | ❌ | ✅ | ❌ |
| Voice commands | ✅ | ✅ | Voice notes | ❌ |
| Budget/spending | ✅ | ❌ | Summary only | ✅ |
| Push notifications | ✅ | ✅ | ✅ | ❌ |
| Offline access | ✅ | ❌ | Partial | ❌ |
MVP Surface Prioritisation
| Priority | Surface | Rationale | Timeline |
|---|---|---|---|
| P0 | Mobile App | Primary input surface. Receipt scanning, full management. | MVP launch |
| P0 | WhatsApp Bot | Widest reach in SA. No install needed. Zero-rated data. | MVP launch |
| P1 | Google Nest Hub | Voice-first kitchen experience. Differentiator. | MVP launch |
| P2 | Web Dashboard | Analytics and planning. Less urgent for MVP. | MVP + 4 weeks |
Design Principles
Surface-Native, Not Surface-Cloned. Each surface feels native to its platform. The Nest Hub is not a tiny version of the mobile app.
Lowest Common Denominator is WhatsApp. Every core action (add, check, get list) must work via WhatsApp text message.
Notification Routing. One notification, routed to the right surface. "Low stock" to WhatsApp. "Budget exceeded" to mobile push. "Morning summary" to Nest Hub.
Business Model Canvas
Pantry's business model is designed for the South African market, where grocery spending is a major household expense (R4,000-R8,000/month for LSM 7-10) and saving money on groceries is a universal priority.
Value Proposition
Never run out of essentials. Know what you have, what you need, before you need it.
Save money on groceries. Track spending, compare stores, avoid waste and duplicate purchases.
Effortless tracking. Scan receipts, use voice, send a WhatsApp. No manual logging.
Whole household, one system. Parents, domestic workers, family members all contributing.
Subscription Pricing (ZAR)
Pantry Free
- Manual pantry management
- Shopping list (1 list)
- WhatsApp bot (basic)
- 5 receipt scans per month
- 1 household member
Pantry Plus Most Popular
- Everything in Free
- Unlimited receipt scans
- Up to 4 household members
- Google Nest Hub integration
- Budget tracking and reports
- WhatsApp bot (full features)
Pantry Premium
- Everything in Plus
- Unlimited household members
- Predictive restocking
- One-tap ordering (Sixty60, Dash)
- Store price comparison
- Smart scale integration
- Advanced analytics and insights
Revenue Streams
| Stream | Description |
|---|---|
| Subscriptions (primary) | Free / R49 Plus / R99 Premium tiers |
| Retailer commissions | 2-5% on orders placed via Pantry |
| Promoted products | Retailers pay for featured placement |
| Data insights | Anonymised consumption trends sold to FMCG brands |
| Hardware margin | Branded smart scales at retail markup |
Unit Economics
| Metric | Year 1 | Year 2 | Year 3 |
|---|---|---|---|
| Households | 5,000 | 25,000 | 100,000 |
| Paid subscribers | 400 (8%) | 3,000 (12%) | 15,000 (15%) |
| Monthly revenue | R27,000 | R266,000 | R1,520,000 |
| Infrastructure cost | R15,000/mo | R60,000/mo | R200,000/mo |
| Team cost | R350,000/mo | R600,000/mo | R1,200,000/mo |
| Monthly burn | R338,000 | R394,000 | Breakeven+ |
Competitive Moat
SA Product Database. Comprehensive database mapped across retailers with abbreviation dictionaries and price history. Takes months to build, hard to replicate.
Multi-Surface Lock-in. Once a household uses Pantry across mobile + WhatsApp + Nest Hub, switching costs are high. The domestic worker knows the bot. The purchase history is accumulated.
Purchase History Data. After 6 months, Pantry knows a household's complete grocery profile. The longer you use it, the more valuable it becomes.
Retailer Partnerships. Exclusive integration with Woolies Dash and Sixty60 creates a two-sided marketplace effect.
Key Risks
| Risk | Severity | Mitigation |
|---|---|---|
| Retailers build their own | High | Pantry is retailer-agnostic. Cross-store value is our advantage. |
| Low conversion to paid | Medium | Commission revenue provides secondary income. Adjust free tier limits. |
| WhatsApp API changes | Medium | Build abstraction layer. Telegram as backup. Mobile app remains core. |
| POPIA compliance | Medium | Privacy-by-design. Explicit consent. Data residency in SA (GCP africa-south1). |