arrowsmith

arrowsmith

Learn Phoenix LiveView (self-published) (tutorial)

Hi, I’m George Arrowsmith - you may remember me from such educational Elixir content as Phoenix on Rails.

I’m really pleased to announce my new course. Learn Phoenix LiveView is the comprehensive tutorial that teaches you how to build a realistic, complex, fully-featured LiveView app from scratch.

Like Phoenix on Rails, it’s a written tutorial. Unlike Phoenix on Rails, it’s for everybody, not just Rails developers. It’s suitable for the total Phoenix beginner, so it covers the full stack including Ecto, not just LiveView UIs.

I designed this course to be realistic. There’s no “foo”, no “bar”, no “widgets” - you’ll build a realistic and fully-featured Slack clone. Along the way you’ll be introduced to every LiveView concept I could think of: if you can build this in LiveView, you can build anything.

Table of contents

  1. Installation
  2. mix phx.new
  3. Directory structure
  4. Environments & config
  5. Phoenix.Router
  6. HEEx
  7. Layouts
  8. Ecto.Migration
  9. Schema and Repo
  10. mount/3
  11. mount/3 is called twice
  12. Events
  13. update/3
  14. Function components
  15. Path params and routes
  16. link/1
  17. handle_params/3
  18. Contexts
  19. Page titles
  20. Ecto.Query
  21. Changesets part 1
  22. Changesets part 2
  23. Forms part 1
  24. Forms part 2
  25. Flash
  26. Uniqueness validations
  27. Rate limiting
  28. phx.gen.auth
  29. Messages
  30. Associations and preloading
  31. Sending a message
  32. Seeds
  33. Streams
  34. External dependencies
  35. Timezones
  36. Deleting messages
  37. Tailwind groups
  38. Processes
  39. handle_info/3
  40. PubSub
  41. Hooks
  42. Phoenix.Presence part 1
  43. Phoenix.Presence part 2
  44. Room index page
  45. many_to_many
  46. Room memberships part 1
  47. Room memberships part 2
  48. stream_configure
  49. Toggle membership
  50. ‘New messages’ divider part 1
  51. ‘New messages’ divider part 2
  52. Static files
  53. Asset compilation
  54. Unread message count
  55. Phoenix.LiveView.JS
  56. Modals
  57. New room form
  58. Live action
  59. Phoenix.Component
  60. use
  61. ok/1 and noreply/1
  62. Usernames
  63. Auth pages
  64. The User schema
  65. User registration
  66. User sessions
  67. UserAuth
  68. Plug and pipelines
  69. Endpoint (HTTP)
  70. Endpoint (websockets)
  71. Authentication & Authorization
  72. on_mount
  73. live_session
  74. Date dividers
  75. Live components part 1
  76. Live components part 2
  77. User profile
  78. File uploads part 1
  79. Global attributes
  80. File uploads part 2
  81. File uploads part 3
  82. Threads part 1
  83. Threads part 2
  84. Threads part 3
  85. Threads part 4
  86. Threads part 5
  87. Pagination (limit-offset)
  88. Dependency conflicts
  89. Pagination (cursor-based) part 1
  90. Pagination (cursor-based) part 2
  91. Reactions - UI
  92. Reactions - data model
  93. Reactions - event handling
  94. Reactions - JS picker

Learn Phoenix LiveView costs $79. But you can use the code ELIXIRFORUM2024 for a $10 discount :wink: (valid until 23.59 UTC on Wednesday 4th Sep.)

Sign up today at PhoenixLiveView.com.

(Yes, that domain was available. I couldn’t believe it either.)

Where Next?

Popular in Courses Top

flou
Pluralsight offers a new course teaching the basics of Phoenix https://www.pluralsight.com/courses/phoenix-getting-started It is made by ...
New
lubien
I’ve been working on writing beginner friendly lessons aimed at teaching LiveView, Phoenix and Elixir to those who might not have even pr...
New
codeschool
Code School's Free 'Try Elixir' Course Begin learning the basics of Elixir and take your first steps into the world of functional progr...
New
AstonJ
This is their course designed to be followed after their free Try Elixir course. https://www.codeschool.com/courses/mixing-it-up-with-el...
New
New
PJUllrich
Now available on Gumroad Hi folks! Peter Ullrich here :slight_smile: I’m happy to announce my very first video course called Build an MV...
New
AstonJ
Grox.io looks really nice and I love that they’re doing a Joe Armstrong tribute :heart: Bruce Tate (@redrapids) has put together a team ...
New
sorentwo
The Oban Training 101 curriculum is extracted from our in-person training from ElixirConf 2023. It’s designed to teach everything you nee...
New
AstonJ
@pragdave has just released the second edition of his course - it looks like it’s changed quite a bit since the first edition so am posti...
New
mikeclark
:rocket: Today we opened early access to the Pro Package of our Phoenix LiveView course! So now you can get the course in two flavors… T...
New

Other popular topics Top

yurko
Here are few pieces of (common) Linux knowledge that we use for reasonably small one server apps. We use Ubuntu but this should work for ...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
johnnyicon
Hi all, I've just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I'm trying to use Postg...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement