Elixir/Phoenix Liveview was a mistake

by nomdepon 5/23/2025, 2:41 PMwith 4 comments

by victorbjorklundon 5/24/2025, 2:21 PM

Elixir/Liveview might not be the right choice if you are already fluent in another stack and there isn't a direct benefit of using Elixir.

But:

> immaturity of ecosystem

This is more a convention in Elixir. Lots of packages wait with 1.0 even if they are stable and many years old.

> Couldnt do conditional forms

This is possible. But yea, complicated forms can be a pain in Liveview sometimes. But you can always escape to LiveSvelte.

> Adding JS

Depends on the app you are building. But I don't find that there are so many things that need JS commands (other than menu drop-downs, etc). Anything with state can just be live view.

> Godawful errors

Maybe just a preference/exposure. I find elixir errors so much easier to understand than JS or Python. That said I see you are using Ash and I think that is the reason. Errors in Ash are awful (Ash is super cool but errors are a pain).

by arrowsmithon 5/23/2025, 2:47 PM

> To be clear this is definitely a skill issue, but also the learning curve was also just not worth it at all

Try my course next time? ;)

https://LearnPhoenixLiveView.com

by foldron 5/23/2025, 3:11 PM

There’s the potential for a sensible post here about how Elixir and LiveView isn’t all roses. I agree, for example, that it remains unclear what the best approach is for integrating client-side interactivity with a LiveView page. (It’s totally possible — it’s just hard to be confident that you’re doing it in a robust way.)

That said, it’s a bit disappointing that someone whose GitHub profile wants to sell me a book about how to level up to being a senior dev (to be fair, the link is broken!) appears to have completely given up on investigating the source of a performance problem, and thrown up their hands in the face of whatever error messages they’ve seen.

LiveView isn’t perfect, but it’s not anywhere near being so bad that you can blame it for a total failure to build a working product.