Ash is a business domain modeling framework for Elixir that follows the principle "declare once, derive the rest." Unlike Ecto which requires manual migrations, context functions, and API layers, Ash auto-generates these from a single resource definition. The tutorial demonstrates building AshTherapy, an AI chat service, using three resources (User, Conversation, Message) within one domain. It covers attributes, relationships, and actions—showing how declarative configurations replace traditional boilerplate. The framework automatically handles database operations, preloading, and can generate migrations and APIs from resource definitions, providing a single source of truth across all application layers.

11m read timeFrom blog.appsignal.com
Post cover image
Table of contents
What Is Ash for Elixir?The AshTherapy Use CaseCheck Out the CodeAsh DomainsUnderstanding Ash ResourcesDeclare Once, Derive the RestQuick Comparison: Ecto vs AshPlaying with Ash in IExWrapping Up

Sort: