geo

geo

Author of Phoenix in Action

Build It With Phoenix (self-published) (video tutorial)

I launched Build It With Phoenix into early access back in March of this year and have had some great feedback on it so far. I’ve held off on announcing it here until I was done recording the last video.

Well, today I recorded the last video! That means that early access will be ending relatively soon (depending on how quickly I can edit the remaining videos of the course).

In this video tutorial series, we will be building a chat application along the lines of Slack or Discord. You will watch or code along with me as I take you through every part of the process of creating (and finishing!) a real application.

  • Architectural decisions and different approaches to the problems we face
  • How to debug when something goes wrong
  • Where to find answers in the excellent documentation for Elixir and Phoenix
  • When and how to refactor your code
  • When and how to pivot when our initial assumptions about the application are no longer true

Example table of contents / videos

The course will be taught in phases. Each phase of the course will focus on a specific technology slice in the stack that makes Phoenix soooo good.

Phase 1

This phase will focus on getting Phoenix running and having an actual usable chat room. Some of the early focus will be on Phoenix LiveView, its setup, and its callbacks.

  • Generate random chat room
  • Chat as anonymous user to yourself
  • Chat as anonymous user to everyone listening using Phoenix PubSub
  • Join as random user
  • Chat as random user (no history)

Phase 2

Phase 2 focuses on displaying information in real time as users leave and join your chat room. Technology-wise, this will be focused on using Phoenix Presence and Channels.

  • Show a list of connected users
  • Show a message when a user connects/disconnects
  • Show an indicator or message when a user is typing

Phase 3

In this phase, we will be focused on persisting data to the database. This means we will be accepting user signups with the phx.gen.auth generator and using Ecto to talk to our Postgres database.

  • Allow user signups
  • Chat as signed in user
  • Store chat history
  • Handle errors and validation with a changeset

What else?

I have a somewhat unique philosophy in my teaching style in that I talk through why and how to do things and not just what to do. That means that in the course I discuss tradeoffs to consider when choosing one thing or another. We’ll look through documentation together so that you can have the skills to interpret documentation on your own. You’ll even see my make mistakes and have to debug those mistakes teaching you where to look in logs for clues.

Finally, to celebrate the last video being recorded, I have a further discount code just for ElixirForum. On top of the current early access discount, use code ELIXIR-FORUM-ANNOUNCEMENT at checkout for an additional $10 off any level of the course (through July 29).

Cost: $149 to $249

To get more information or purchase the course, check out https://BuildItWithPhoenix.com.

Most Liked

geo

geo

Author of Phoenix in Action

Now that spring (or fall for the southern hemisphere folks) has rolled around, you can use code spring-for-30 or fall-for-30 to get 30% off of Build It With Phoenix through April 21!

collegeimprovements

collegeimprovements

Hi @geo,

Would it be possible for you to enable PPP(Parity Purchase Pricing) for people in other countries like India, Poland, Romania etc. in Gumroad ?

geo

geo

Author of Phoenix in Action

@collegeimprovements done! I’ve been looking into enabling this for some time now and decided that now is the time!

Where Next?

Popular in Courses Top

Ry753
Greetings Productive Programmer, Early access to our Phoenix 1.7 LiveView course is now live and it’s FREE! The first Several videos (60...
New
ErlangSolutions
We’re proud to announce the launch of our online training courses. All of our courses are designed and taught by current industry profess...
New
snake117
Just saw this video by Derek Banas. He covers the basics of Elixir in a one hour video.
New
OvermindDL1
There are a few CS teachers who’ve taught/teach at MIT that think that there are some things should be taught for CS but aren’t, so they ...
New
mikeclark
Howdy Everyone, :wave: TLDR: Early access to our Phoenix LiveView course is now open… and it’s free! The first 7 videos (75 minutes) are...
New
AstonJ
You’re a programmer, so you don’t need spoon feeding with the conventional drivel about “this is an integer.” No. You need to know what’s...
New
AlchemistCamp
I’ve finished writing up the show notes for my free 13 screencast series “Ecto Beginner”! :partying_face: You’ll see them with notes at ...
New
alvises
Hi everyone, I’ve started releasing these LiveView lessons (videos and articles), which are free extracts taken from the bigger course B...
New
New
jacobluetzow
My comprehensive Elixir course “Elixir: A Comprehensive Introduction” is now available for free on YouTube. This structured course takes ...
New

Other popular topics Top

marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I'm a nov...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement