I wanted to share a project I’ve been working on called EverShelf.
It’s an Open Source, self-hosted pantry and inventory manager designed specifically for "kitchen dashboard" use (Kiosk mode).
The Story: I was tired of "pantry amnesia" and food waste, so I built a tool that runs on Docker and focuses on simplicity and touch-screen usability.
Why I’m posting here: Currently, EverShelf is a standalone app (Laravel/Livewire), but I’ve already implemented IoT Scale support to track food by weight. My next goal is to make it "Home Assistant friendly," and I’d love your expert feedback on how you’d use it.
Key Features:
Docker-ready: Easy to host alongside your HA instance.
IoT Scales: Real-time weight tracking for inventory.
Kiosk UI: Optimized for tablets (perfect for those wall-mounted HA dashboards).
100% Local: No cloud, no tracking.
My questions for you:
What’s the best way to expose pantry data to HA? (MQTT? A REST API for sensors?)
Would you prefer a custom Sidebar integration or just a dedicated dashboard card?
What kind of automations would you trigger with pantry data? (e.g., "If milk < 200g, add to shopping list")
I'm not in your "target market" here, but I'll just comment on this technical bit: MQTT would be your most platform-agnostic option which would allow other home automation systems to be used too. The other, but native HA solution would be to create a custom integration. It would communicate with your system in whatever way you see fit (via HTTP and webhooks/callbacks would work, e.g.).
Hi Pieter, thanks a lot for your technical feedback!
I think you nailed it. MQTT seems like the most logical 'first step' because it keeps the project platform-agnostic, which aligns with my Open Source philosophy. Plus, leveraging MQTT Discovery would make the setup almost seamless for HA users.
I'm also intrigued by the Custom Integration path for the future, perhaps using webhooks to keep the communication real-time without polling.
Since I'm currently refining the architecture, I'll definitely look into implementing an MQTT publisher first.
Do you think users would prefer a single JSON payload with all the pantry data, or individual topics for each 'smart' item?
Offering both options is definitely the 'gold standard' for a great user experience.
For the sidebar, I think an iframe approach (or Ingress) pointing to the EverShelf web UI would be the most straightforward path.
Regarding the dedicated card, I'm curious: for your integration, did you build a custom Lovelace card or did you rely on standard HA entities?
I'd love to see how you handled the UI consistency!
Thank you @Pieter and @Krivatri for the amazing insights! It’s exactly the kind of feedback I was hoping for.
Based on your suggestions, here is the technical roadmap for EverShelf:
MQTT Topic Hierarchy: I’ll implement individual topics with categorization (e.g., pantry/category/item). This will allow Home Assistant to treat every food item as a proper sensor entity, making automations (like 'low stock' alerts) much easier to set up.
Hybrid UI: I’m checking Krivatri’s repo to see how to bridge the gap between the Sidebar and a dedicated Lovelace Card. The goal is to keep the UI consistent and touch-friendly for those using tablets in their kitchens.
To the community: > If you have a specific 'dream automation' for your pantry (e.g., 'flash lights when milk is expired' or 'add to shopping list based on weight scale'), please let me know! I want to build the logic that actually matters to you.
For those who want to follow the development or try the current Docker version, here are the links:
First of all, thank you so much for the feedback you gave me 15 days ago. I took your advice very seriously, went back to my cave, and decided to go the full "native HA solution" route as suggested.
I’m incredibly excited to update this thread and share that EverShelf now has a fully native Home Assistant integration available right on HACS!
I completely skipped the manual YAML/MQTT hassle and built a clean, plug-and-play integration using Zeroconf/mDNS auto-discovery. If EverShelf is running on your network, Home Assistant will detect it automatically.
Just a quick, important note on how it works: This HACS integration is not the standalone app itself, but rather the component that allows Home Assistant to talk to your server. It still requires your self-hosted EverShelf instance running on Docker. The integration talks directly to your local server, keeping everything 100% cloud-free.
Here is a quick breakdown of what I managed to pack into the ha-evershelf integration:
Massive Sensor Array: 16 sensors tracking total stock levels, specific locations (pantry/fridge/freezer), AI API usage, and days to next expiry.
Action Entities & Services: 5 physical buttons and 6 native services available in HA. You can even trigger the AI engine via the Suggest Recipe button and get the recipe result as a native HA notification!
Bidirectional Todo Sync: Real-time sync with HA’s native Todo-List. You can check off or add items from either side instantly.
Native Expiry Calendar: It automatically populates a native HA Calendar with every product’s expiry date, making calendar-based automations or dashboard card scheduling incredibly easy.
Voice Assistant Friendly: Included a quick-add text entity so you can just talk to Assist/Alexa/Google Home and say "Add milk to the shopping list", and it pushes straight to EverShelf.
It supports 5 languages (EN, IT, DE, FR, ES) and runs 100% locally with zero cloud reliance.
You can find the specific integration repository and full installation details here: https://github.com/dadaloop82/ha-evershelf (and it's already launchable via the official My Home Assistant badges for HACS and Config Flow!).
I'd love for you guys to test it out and let me know how it handles your daily kitchen automation. Thank you again for pointing me in the right direction!