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

alexiss
Открыт набор в летнюю школу AEON на бесплатные курсы по основам Elixir и React JS, с возможностью дальнейшего трудоустройства. О нас: ...
New
mikeclark
Howdy Everyone, :waving_hand: TLDR: Early access to our Phoenix LiveView course is now open… and it’s free! The first 7 videos (75 minut...
New
RafaelCamarda
Hello Guys. I have always missed good Elixir and Phoenix content in my own language (Portuguese). Because of that, I have decided to cr...
New
Cruz
Hello Everyone, Early access to the " Full-Stack GraphQL with Absinthe, Phoenix, and React" video course is now available on the Pragmat...
New
CharlesIrvine
Elixir AI Tools is a course providing a survey of Elixir AI tools and frameworks. It provides a fairly in depth introduction to each topi...
#ai
New
everfrost
Hi everybody, Just wanted to let you know about the free online Elixir course by Prograils.com which has just been published on our webs...
New
alvises
Hello everyone! I’ve almost finished recording my Elixir and LiveView course! It’s packed with hours of in-depth tutorials, tips and app...
New
New
lauraesteves
Stuck at home and want to make the most of it? Here’s your chance to help fighting COVID-19 while helping yourself grow as well. Learn a...
New
AstonJ
By @elbrujohalcon Course Overview There is a language that powers 90% of all Internet traffic. It’s also the language behind some extre...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
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
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
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
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New

We're in Beta

About us Mission Statement