Heirloom is a specialized tool built to help you preserve your family's culinary legacy.
It bridges the analog world of grandma's handwritten recipe cards and vintage community cookbooks with the modern digital world of self-hosted recipe managers like Mealie and Nextcloud Cookbook.
I have a version here you're more than welcome to try it out. It is using my API key so please just test things out. I use this alot on my phone to digitize recipes and it works great. I'm interested in how the community uses it. Please let me know if you have any issues or suggestions.
Start by digitizing your physical media.
- Recipe Cards: Use your phone or a scanner to take clear pictures of handwritten cards.
- Vintage Books: For best results with old cookbooks, use a flatbed scanner. This ensures high resolution and flat pages, which improves AI accuracy.
- Multiple Recipes: If a single page has 3 different recipes on it, that's fine! Heirloom can detect multiple recipes on a single page.
- The app uses Google Gemini AI to "read" the image.
- It identifies the Title (keeping exact original naming).
- It extracts Ingredients, Instructions, and Prep Metadata.
- It even intelligently crops the image to finding just the section of the page relevant to each recipe.
- Review the extracted text in the dashboard.
- Add "Batch Tags" (like "Church Cookbook 1985") to organize entire collections at once.
- Discard duplicates or irrelevant detected text.
- Once you've digitized a batch of recipes, click "Export Zip".
- Heirloom generates a standard Nextcloud/Mealie Cookbook compatible ZIP file.
- This ZIP contains folder structures with
recipe.jsonand high-qualityfull.jpgimages for every recipe. - Import to Mealie: Go to Mealie > User Settings > Data Migration > Choose Migration Type > Nextcloud Cookbook and drop your ZIP file there. Submit.
- Voila! Your entire vintage cookbook is now searchable, tagged, and backed up in your self-hosted instance.
- Frontend: React 19 + Vite (Fast, modern UI)
- Styling: TailwindCSS (Clean, responsive design)
- AI: Google Gemini 2.0 Flash (Multimodal vision capabilities)
- Processing: JSZip (Client-side ZIP generation)
Clone & Install
git clone https://github.com/PappyEric/RecipeBookScanner.git cd RecipeBookScanner npm installConfigure API
- Create a
.envfile (or.env.local). - Add your Gemini API Key:
GEMINI_API_KEY=your_key_here
- Create a
Start the App
npm run dev
