Recipes — Project Info

📖 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.
Elixir Phoenix LiveView Ash Framework AshAi MCP DaisyUI