Article technique non traduit en français.

(p)repair is a project to help people reduce their consumption of products. Firstly, we bet on building a mobile application. You can read more in the project’s manifesto.


We are currently building a mobile application. Our backend is coded with Elixir language. We went on the Phoenix framework for the power of its many hands-on features.

However, through time, we discovered another framework which awakens our interest for its philosophy: Ash.

Ash website and many documentation are a very nice places to familiarize yourself with the concepts and features Ash provides.

This article series is also a good way to follow the path of our thoughts:

  • we explain our decision to migrate from Phoenix to Ash
  • we explore code differences from one to the other of these Elixir frameworks

Here is the current index of this article series. You can click on every title, this will redirect you to the linked article.

  1. Why Ash?

    ➔ To understand the context of why we decided to migrate from Phoenix to Ash.

  2. What strategy to migrate from Phoenix to Ash?

    ➔ The current plan of our strategy migration.

  3. Generalities on the migration to Ash

    ➔ Details only a few steps to install Ash on our project.

  4. Preparation for the migration from Phoenix to Ash

    ➔ Explains how we keep our application code clean and testable during all the migration process.

  5. Migrate Ecto Schemas into Ash Resources (1/3)

    ➔ For a general comprehension on how Ash works versus Phoenix works.

  6. Migrate Ecto Schemas into Ash Resources (2/3)

    ➔ Code examples to migrate an Ecto Schema into an Ash Resource.

  7. Migrate Ecto Schemas into Ash Resources (3/3)

    ➔ Why and how to compare the Ash generated migration with your previous database state.

More articles will probably be added in the future, to document the other steps of our migration.

Read our next article on this series: Why Ash?


Guillaume, from the (p)repair team