I’m a syseng in restaurant management, and I recently found a stash of 800+ old recipes saved as raw HTML5 files on one of my servers. I tried migrating them to popular self-hosted managers like Mealie and Tandoor, but spent a whole day fighting imports and bloated setups. I also realized most tools treat recipes just as sterile inventory data.
So I built Zest to scratch my own itch. The philosophy is: We don't save recipes. We save the memories around the table.
It’s designed to be absurdly lightweight and easy to deploy on a Proxmox LXC or a Raspberry Pi.
The stack:
Backend: FastAPI + SQLite (Everything runs inside one single container, no external DB).
Frontend: Vanilla JS (ES Modules) + HTML + Tailwind. No Node.js, no Webpack, zero build steps.
Infrastructure: Local volumes for persistence.
Key features:
Memories: A food diary. Link photos, dates, and locations to recipes.
Local EXIF parsing: Pure JS local parsing for photo metadata + OpenStreetMap reverse geocoding.
Smart Cooking Mode: Fullscreen step-by-step with auto-detected timers via regex and Wake Lock API so your screen doesn't sleep.
Public sharing: Generate secure URLs or export beautiful Moment Cards (via Pillow) to share with family without them needing an account.
I've successfully migrated my 814 recipes and it runs incredibly fast. I'd love to hear your feedback on the code architecture and the "no build tools" approach.
I’m a syseng in restaurant management, and I recently found a stash of 800+ old recipes saved as raw HTML5 files on one of my servers. I tried migrating them to popular self-hosted managers like Mealie and Tandoor, but spent a whole day fighting imports and bloated setups. I also realized most tools treat recipes just as sterile inventory data.
So I built Zest to scratch my own itch. The philosophy is: We don't save recipes. We save the memories around the table.
It’s designed to be absurdly lightweight and easy to deploy on a Proxmox LXC or a Raspberry Pi.
The stack:
Backend: FastAPI + SQLite (Everything runs inside one single container, no external DB).
Frontend: Vanilla JS (ES Modules) + HTML + Tailwind. No Node.js, no Webpack, zero build steps.
Infrastructure: Local volumes for persistence.
Key features:
Memories: A food diary. Link photos, dates, and locations to recipes.
Local EXIF parsing: Pure JS local parsing for photo metadata + OpenStreetMap reverse geocoding.
Smart Cooking Mode: Fullscreen step-by-step with auto-detected timers via regex and Wake Lock API so your screen doesn't sleep.
Public sharing: Generate secure URLs or export beautiful Moment Cards (via Pillow) to share with family without them needing an account.
Live demo (resets every 6h, seeded with examples): https://demo.myzest.app
I've successfully migrated my 814 recipes and it runs incredibly fast. I'd love to hear your feedback on the code architecture and the "no build tools" approach.