Some checks failed
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 / Code Quality (pull_request) Has been cancelled
Deploy to Coolify / Run Tests (pull_request) Has been cancelled
Deploy to Coolify / Deploy to Test (pull_request) Has been cancelled
Pull Request Checks / Validate PR (pull_request) Has been cancelled
Week 2 core inventory management: **Composables:** - useInventory: Full CRUD operations for inventory items - useUnits: Unit fetching and conversion helpers - useTags: Tag fetching and category filtering **Components:** - InventoryList (#18): Grid view with loading/empty/error states - InventoryCard: Item card with image, quantity controls, tags, expiry - AddItemForm (#19): Form with tag picker, unit selector, validation - EditItemModal (#20): Modal form for editing existing items - Delete functionality (#21): Confirm dialog + cascade tag cleanup **Features:** - Quantity quick-actions (+/- buttons on cards) - Auto-delete when quantity reaches zero - Expiry date tracking with color-coded warnings - Tag selection by category in add form - Responsive grid layout (1-4 columns) - Product image display from barcode cache - Form validation and loading states Closes #18, #19, #20, #21
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
# Clone
git clone https://gitea.jeanlucmakiola.de/pantry-app/pantry.git
# Start services (Docker Compose)
docker-compose up -d
# Access at http://localhost:3000
📚 Documentation
- Project Plan — Vision, roadmap, phases
- Architecture — Tech stack, data model, design decisions
- Database Schema — Tables, relationships, RLS policies
- API Reference — Endpoints, Supabase functions
- Development Guide — Setup, workflow, conventions
- Deployment — Docker, Coolify, production setup
🛠️ 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
Target: v0.1 (6-week sprint)
See PROJECT_PLAN.md for detailed roadmap.
- Foundation (Nuxt + Supabase + Auth)
- Core inventory (CRUD, tags, units)
- Barcode scanning (PWA camera + Open Food Facts)
- Mobile polish (PWA, offline)
- Docker deployment
🤝 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%