📖 What is this?
Recipes is a personal recipe book. You can save recipes with full details — ingredients, instructions, cook and prep times, servings — and filter them by protein type. The goal was a real, personal-use app that I'd actually reach for, not a demo.
It also serves as a companion to the Tasks project: a second Ash domain with a different resource shape, different read patterns, and a more document-like data model compared to the status-driven Tasks resource.
✦ Features
Recipe Details
Name, description, ingredients, step-by-step instructions, prep time, cook time, and servings.
Protein Filtering
Filter your recipe book by protein type: beef, chicken, pork, fish, lamb, tofu, and more.
Browse & Detail View
Index view for scanning your collection. A full recipe detail page for reading while you cook.
MCP Agent Access
Recipes are also exposed to AI agents via the MCP endpoint — agents can list, create, update, and delete recipes.
🔬 What I Was Exploring
- Document-style Ash resources — modelling a recipe as a richer, longer-form record compared to a short task. Ingredients and instructions as structured text fields.
- Enumerated attributes — using Ash's atom enum type for protein category, and how that translates to both UI filtering and MCP tool arguments.
- Index + Show LiveView pattern — separate list and detail views with LiveView navigation between them, as opposed to the modal-overlay pattern used in Tasks.
- Multi-domain MCP exposure — having both Tasks and Recipes tools on the same MCP endpoint, sharing auth and the same API key, without conflict.