Phoenix Contexts - learning resources

Tags: #<Tag:0x00007f11425f2940> #<Tag:0x00007f11425f2800>


Wonder if we can compile a list of learning resources, blog posts, talks, threads etc to help those who are just learning about Contexts.

This is a wiki - so please add anything you feel is missing…

#What are Phoenix Contexts?

###In short:

Phoenix Contexts are just dedicated modules that expose and group functionality.

###In depth:


Programming Phoenix - due to be updated for Phoenix 1.3.


#Blog Posts by @dlively (thread)

Understanding the concept of a context in Phoenix (2017-08-16)


And more:


How would you explain Phoenix Contexts to a newbie?
Need help understanding Phoenix Contexts
Contexts - a barrier too high for newbies?
Contexts - a barrier too high for newbies?
Contexts - a barrier too high for newbies?

Added a blog post by @michalmuskala


There is an example phoenix 1.3 application, with contexts and absinthe here

Which obviously is inspired by this one

It is a full example, easy to follow on how contexts can interact.


I added a link to your post in the wiki :023:


Added a blog post by @Qqwy :023:


Added @chrismccord’s ElixirConf EU Keynote talk :023:


All explanations from this thread worth mention:



by @dlively (EF thread)

Since this is an app I built in order to further my education, I opted to venture out on the bleeding edge and use Phoenix 1.3.0-rc. Don’t let the what seems like a minor version change fool you. While there are no real breaking changes or significant new features being introduced in 1.3, alterations to the directory structure and new code generators introduce a seismic shift in how a developer approaches a Phoenix project. Chris McCord provides an overview of these changes in the Lonestar Elixir keynote address, his Elixir Forum post, and his more recent ElixirConf EU keynote. Those were all essential for me to getting started, but I found the concepts easier to grasp once I began building my project…


With the recent Phoenix 1.3 release, Phoenix introduced Contexts, which are dedicated modules that expose and group related functionality. One frequent question that has come up is where to handle authorization for domain operations. Should authorization be handled in the Web layer at the controller, or within the context? Both are valid approaches, so let’s find out which approach is better and when…