ShelfDate - Computer Vision Expiry Date Scanner for Small Food Retailers
Convenience stores and small grocery shops pull expired products manually by walking every aisle — it takes hours, misses products, and costs them fines and customer trust. ShelfDate lets a staff member sweep their phone camera across a shelf and instantly surfaces every product within 30 days of expiry, highlighted in red. It is a shelf audit in 60 seconds instead of 60 minutes.
Difficulty
advanced
Category
Computer Vision
Market Demand
High
Revenue Score
7/10
Platform
Mobile App
Vibe Code Friendly
No
Hackathon Score
🏆 9/10
Validated by Real Pain
— seeded from real developer complaints
Convenience store owners on Reddit and industry Facebook groups frequently describe spending 2-plus hours per week on manual date checks, missing products behind others on shelves, and receiving health inspection warnings for expired items that slipped through — expressing frustration that there is no affordable automated solution for stores that cannot afford enterprise shelf management systems.
What is it?
Independent convenience stores and small food retailers lose an estimated $2,400 per year per store in expired-product-related write-offs, fines, and lost customer trust. The current process is a manual date check by eyeball, which is slow, inconsistent, and skips products behind other products. ShelfDate uses a React Native mobile app with an on-device ONNX Runtime model for text detection (CRAFT or DBNet) plus a lightweight OCR layer to detect and parse date strings from product packaging in real time. Products flagged within 30 days of expiry are highlighted on-screen and logged to a Supabase database for manager review. No cloud inference required — the model runs entirely on-device at 15 FPS. Why buildable now: ONNX Runtime React Native is stable, DBNet text detection models are small enough to run on any 2023 iPhone or Android at acceptable speed, and open-source OCR models for date parsing are freely available on HuggingFace.
Why now?
ONNX Runtime React Native reached production-ready stability in 2024 and quantized DBNet models now run at 10-plus FPS on any 2022 iPhone, making real-time on-device text detection on a mobile shelf scanner economically and technically feasible for an indie founder for the first time.
- ▸Real-time camera viewfinder with on-device DBNet text detection highlighting date strings on packaging.
- ▸On-device date parsing with 30-day expiry threshold and color-coded overlay: red for expired, amber for within 30 days.
- ▸Scan session log saved to Supabase with product count, flagged items, and staff ID per scan.
- ▸Manager web dashboard showing weekly flagged items by shelf zone and trend over time.
Target Audience
Independent convenience store and small grocery owners, estimated 150k stores in North America with a $300-$500 monthly operating loss from expired stock.
Example Use Case
A 7-Eleven franchise owner assigns one staff member 10 minutes per morning with ShelfDate, catches 3 near-expiry products per day on average, avoids a $500 health inspection fine, and saves 4 hours of weekly manual checking.
User Stories
- ▸As a convenience store owner, I want my staff to scan a shelf with their phone and instantly see all near-expiry products highlighted, so that I never get fined for selling expired goods again.
- ▸As a store manager, I want a weekly dashboard showing which shelf zones produce the most expiry flags, so that I can adjust my ordering patterns for those categories.
- ▸As a staff member doing morning checks, I want the scan to take under 5 minutes per aisle, so that I can complete the full store check before opening.
Acceptance Criteria
Real-Time Detection: done when expiry date text on standard product packaging is detected and highlighted on-screen within 200ms of entering the camera frame. Date Parsing: done when 95% of standard date formats (DD/MM/YYYY, MM/YYYY, Best By Month Day Year) are parsed correctly in test set of 50 products. Scan Log: done when flagged items from each scan session appear in Supabase within 5 seconds of session end. Manager Dashboard: done when weekly flagged item chart loads with real data in under 2 seconds.
Is it worth building?
$39/month x 50 stores = $1,950 MRR at month 3. $39/month x 200 stores = $7,800 MRR at month 9.
Unit Economics
CAC: $50 via in-person demo visits (time cost). LTV: $468 (12 months at $39/month). Payback: 2 months. Gross margin: 92%.
Business Model
SaaS subscription
Monetization Path
14-day free trial, then $39/month per store location. Multi-location discount at $29/month for 3-plus locations.
Revenue Timeline
First dollar: week 4 via first paid store. $1k MRR: month 3. $5k MRR: month 8. $10k MRR: month 14.
Estimated Monthly Cost
Supabase: $25, Vercel for manager dashboard: $20, Expo build service: $30, Resend for alerts: $10. Total: ~$85/month at launch (no cloud inference cost).
Profit Potential
Full-time viable at $5k-$10k MRR with 150-250 store customers.
Scalability
High — can expand to batch barcode scanning, temperature log integration, and white-label for food distribution companies.
Success Metrics
Beta: 5 stores scanning daily. Month 2: 90% of scans catch at least 1 near-expiry item. Month 3: 30 paid stores, less than 8% churn.
Launch & Validation Plan
Visit 5 local convenience stores, manually demo the camera detecting date text on their shelves using a prototype, and ask if they would pay $39/month to do this daily — offer 60-day free access for feedback.
Customer Acquisition Strategy
First customer: walk into 10 local independent convenience stores in person, show a live demo on your phone, and offer the first 3 months free for a testimonial video. Ongoing: Facebook Groups for convenience store owners, National Association of Convenience Stores forums, local food wholesaler partnerships.
What's the competition?
Competition Level
Low
Similar Products
Shelf Engine does demand forecasting not expiry scanning, Trigo uses fixed ceiling cameras not mobile, Spoiler Alert targets food distributors not stores — none offer a mobile on-device expiry scanner for independent retailers at this price point.
Competitive Advantage
Fully on-device inference — no cloud API costs, no latency, no privacy concern about sending shelf images to a server.
Regulatory Risks
Low regulatory risk. No health data collected. Product images are processed on-device and not stored. GDPR: no PII collected from store staff beyond email for auth.
What's the roadmap?
Feature Roadmap
V1 (launch): on-device date detection, expiry overlay, scan session logging, manager dashboard. V2 (month 2-3): barcode lookup for product name, shelf zone tagging, Slack alert on expired items found. V3 (month 4+): inventory system integration, multi-location rollup dashboard, white-label for food distributors.
Milestone Plan
Phase 1 (Week 1-2): ONNX model loading, camera integration, date detection pipeline working on test packaging. Phase 2 (Week 3-4): expiry classifier, Supabase logging, Expo TestFlight build, 5 in-person store demos. Phase 3 (Month 2): manager dashboard live, Stripe billing active, 5 paying stores.
How do you build it?
Tech Stack
React Native, ONNX Runtime React Native, DBNet text detection model, Tesseract OCR or TrOCR via HuggingFace, Supabase, Expo — build with Cursor for ML pipeline integration and Supabase API routes
Suggested Frameworks
ONNX Runtime React Native, HuggingFace Transformers (TrOCR), OpenCV.js
Time to Ship
4 weeks
Required Skills
React Native, ONNX Runtime model loading, OCR post-processing, Supabase.
Resources
ONNX Runtime React Native docs, HuggingFace TrOCR model card, Expo camera module docs, Supabase React Native quickstart.
MVP Scope
React Native Expo app with screens/ScanScreen.tsx, lib/onnxDetector.ts for DBNet model loading, lib/ocrParser.ts for date string extraction and parsing, lib/expiryClassifier.ts for 30-day threshold logic, api/logScan.ts posting to Supabase, Supabase schema for stores/scans/flagged_items, Next.js manager dashboard in pages/dashboard.tsx.
Core User Journey
Download app -> sign in -> point camera at shelf -> see expiry highlights in real time -> tap flagged item to log it -> manager reviews dashboard next morning.
Architecture Pattern
Phone camera frame -> ONNX Runtime DBNet text region detection on-device -> TrOCR date parsing on-device -> expiry threshold logic -> overlay rendered on viewfinder -> flagged items posted to Supabase API -> manager dashboard reads from Supabase.
Data Model
Store has many ScanSessions. ScanSession has many FlaggedItems. FlaggedItem has one ExpiryDate and one ShelfZone. Store has one StripeSubscription.
Integration Points
ONNX Runtime React Native for on-device model inference, HuggingFace TrOCR for date string recognition, Supabase for scan logs and flagged items, Expo Camera module for viewfinder, Stripe for subscription billing.
V1 Scope Boundaries
V1 excludes: barcode scanning, product name recognition, inventory integration, temperature monitoring, multi-language date formats beyond English and numeric.
Success Definition
A convenience store owner the founder has never met downloads the app, scans their dairy aisle without any setup help, flags two near-expiry products, and pays for month 2 without prompting.
Challenges
OCR accuracy on curved, small-font, or partially obscured expiry dates on real packaging is the hardest non-technical problem after distribution — a single missed expired product that causes a fine will generate an immediate churn and a negative review that kills acquisition.
Avoid These Pitfalls
Do not attempt to recognize product names or barcodes in V1 — date detection alone is the hard enough and the full value proposition. Do not rely on cloud OCR inference as a fallback — stores often have poor connectivity and it destroys the real-time UX. Finding first 10 paying stores requires in-person demos, not digital ads — budget 3x more time on physical outreach than on model tuning.
Security Requirements
Supabase Auth with email magic link. RLS on scan_sessions and flagged_items. Camera frames processed on-device only, not sent to any server. Rate limiting 60 req/min per device. No PII beyond store email collected.
Infrastructure Plan
Expo for mobile app distribution. Vercel for Next.js manager dashboard. Supabase for Postgres and auth. Sentry React Native for mobile error tracking. GitHub Actions for CI. Dev/staging/prod via Expo dev builds and Vercel preview environments.
Performance Targets
50 DAU stores scanning daily, 500 API req/day. On-device detection at 5 FPS minimum on iPhone 12 or equivalent Android. Dashboard load under 2s LCP. Supabase API writes under 300ms.
Go-Live Checklist
- ☐Security audit complete
- ☐Stripe billing tested end-to-end
- ☐Sentry live on mobile and web
- ☐Monitoring configured
- ☐Custom domain with SSL
- ☐Privacy policy published
- ☐5 beta stores signed off on accuracy
- ☐Rollback plan documented
- ☐ProductHunt and convenience store Facebook Group launch posts drafted.
How to build it, step by step
1. Run npx create-expo-app shelfdate with TypeScript template and install onnxruntime-react-native and expo-camera. 2. Download a quantized DBNet text detection ONNX model from HuggingFace and bundle it in assets/models/. 3. Build lib/onnxDetector.ts that loads the model, runs inference on camera frames at 5 FPS, and returns bounding boxes around text regions. 4. Build lib/ocrParser.ts using a lightweight regex plus TrOCR ONNX model to extract and parse date strings from cropped text regions. 5. Build lib/expiryClassifier.ts that categorizes dates as expired, amber (under 30 days), or safe with color codes. 6. Build screens/ScanScreen.tsx with Expo Camera viewfinder and SVG overlay rendering colored boxes on flagged date regions. 7. Build api/logScan.ts that posts flagged items to Supabase after each scan session ends. 8. Set up Supabase schema for stores, scan_sessions, and flagged_items with RLS. 9. Build Next.js manager dashboard at pages/dashboard.tsx showing weekly flagged item counts by zone using Recharts. 10. Deploy dashboard to Vercel, publish Expo app to TestFlight for beta, and run 5 in-person store demos for validation.
Generated
April 15, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.