Some checks failed
Pull Request Checks / Validate PR (pull_request) Has been cancelled
Deploy to Coolify / Code Quality (pull_request) Has been cancelled
Deploy to Coolify / Run Tests (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Development (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Production (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Test (pull_request) Has been cancelled
- Enhance Workbox configuration with comprehensive caching strategies - Add separate caching for Supabase REST API, Storage, and Auth - Configure Open Food Facts API caching (30-day cache) - Add offline fallback page with retry functionality - Create useOnlineStatus composable for network monitoring - Add OfflineBanner component for user feedback - Configure skipWaiting and clientsClaim for instant updates - Cache Google Fonts and product images Caching strategies: - Network-first: Supabase REST API (fresh data priority) - Network-only: Auth endpoints (never cache sensitive auth) - Cache-first: Images, fonts, product data (performance) - Offline fallback: /offline page for failed navigations Closes #34
Pantry 🍳
Self-hosted kitchen inventory management — family-friendly PWA with barcode scanning.
🎯 Vision
A simple, modern kitchen inventory app that the whole family can actually use. Born from frustration with existing tools:
- Grocy: Powerful but overwhelming
- KitchenOwl: Nice UI but lacks features
Pantry bridges the gap — simple enough for daily use, powerful enough to be useful.
✨ Key Features (Planned)
- 📱 PWA — Install on phone, works offline
- 📸 Barcode scanning — Scan → Add (3 taps)
- 🏷️ Tag-based organization — Flexible categories (fridge, dairy, etc.)
- 📊 Unit conversions — kg ↔ g, L ↔ mL
- 👥 Multi-user — Shared inventory (no household complexity)
- 🔒 Self-hosted — Your data stays yours
- 🌐 Open Food Facts — Auto-fill product data from barcodes
🚀 Quick Start (Local Development)
# Clone repository
git clone https://gitea.jeanlucmakiola.de/pantry-app/pantry.git
cd pantry
# One-command startup
./dev.sh
What this does:
- Starts Supabase (PostgreSQL + API + Auth + Studio)
- Installs frontend dependencies
- Launches Nuxt dev server
Access:
- App:
http://localhost:3000 - Supabase Studio:
http://localhost:54323
See DEV_SETUP.md for detailed setup guide.
📚 Documentation
- Getting Started — First-time setup (5 minutes)
- Local Setup Guide — Detailed Docker Compose setup
- Project Plan — Vision, roadmap, MVP phases
- Architecture — Tech stack, design decisions
- Database Schema — Tables, RLS policies, migrations
- Development Workflow — Git flow, conventions
- Full Documentation Index — Complete docs navigation
🛠️ Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Nuxt 4 (Vue 3) |
| Styling | Tailwind CSS + Nuxt UI |
| Backend | Supabase (Postgres, Auth, Realtime) |
| Barcode | html5-qrcode |
| Runtime | Bun |
| Deployment | Docker Compose |
| External API | Open Food Facts |
🗂️ Monorepo Structure
pantry/
├── app/ # Nuxt 4 PWA
├── supabase/ # Database, migrations, functions
├── docker/ # Docker Compose, configs
├── docs/ # Documentation
└── scripts/ # Utilities
🎯 Principles
- Family-friendly — If your parents can't use it, it's too complex
- Start simple — Ship small, iterate fast
- Extendable — Clean architecture for future features
- Self-hosted first — No SaaS plans, no lock-in
📋 MVP Status (14/34 Complete - 41.2%)
Current Phase: Week 2 ✅ Complete, Week 3 🔄 In Progress
✅ Week 1 - Foundation (6/6)
- Database schema + RLS policies
- Nuxt 4 app scaffold
- Supabase integration
- App layout
✅ Week 2 - Core Inventory (8/8)
- SQL helper functions
- Seed data (units + tags)
- Inventory CRUD UI
- Add/Edit/Delete components
🔄 Week 3 - Barcode Scanning (1/5)
- BarcodeScanner component
- html5-qrcode integration
- Product lookup (pending)
- Scan-to-add flow (pending)
⏸️ Week 4-6 - Tag UI, PWA, Deployment (20 issues)
See PROJECT_PLAN.md for detailed roadmap.
🤝 Contributing
This is an early-stage project. Contributions welcome once v0.1 ships.
📄 License
MIT © 2026 Jean-Luc Makiola
🙏 Acknowledgments
- Open Food Facts for product data
- Supabase for the backend platform
- Nuxt/Vue ecosystem
Description
Languages
Markdown
100%