DEV Community

Mykolas Mankevicius
Mykolas Mankevicius

Posted on

Learning Elixir/Phoenix

TL;DR; a rant about how much is missing and why is there no easy setup guides.

I've starting dabbling with some Elixir/Phoenix about a year ago. It looks amazing, but I was always just following tutorials.

Now i'm on the road to actually write a product with this stack. If I was super serious about the product i would just write it in my stack of choice [Laravel/PHP, Inertia, Vue/JS, TailwindCss]. But i want to use/learn Elixir so i'm switching my stack to [Elixir/Phoenix, TailwindCss]

Other tools:
Code editor: Vs Code
Versioning: Github

Deployment
Deployment with elixir/phoenix is a big way from being beginner friendly, luckily i stumbled accross Fly.io and even with their guide i ran into issues, which got resolved by the Fly.io team pretty fast.

A year ago i've spent multiple hours to try and understand how it's done, but there are so many guides and all of them sound or look very complex, i couldn't get a single thing to deploy. I had some success with Gigalixir after like 10 tries and figuring out esoteric error messages.

At the moment i'm happy to start with Fly.io as their free tier looks good enough for what i need. But i've looked at their pricing for anything with a bit more oomph, and it's quite steep.

And that's the same situation with Gigalixir.

You can't even compare to buying a simple vm from Hetzner or hostinger for 3-7Eur per month get a free plan from ploi.io or laravel forge and you're good to go. considering that you will are able to spin up a few apps on one server like that. Maybe there is an offering somewhere that does this for elixir/phoenix as well?

This says a ton about how lacking this stack is for beginners, with laravel you have lots of choice, ploi.io, laravel forge, or anything that runs php, it's pretty easy to get up and running.

After two days of working I have these pain points, mainly because of amazing work that laravel/vue has done with their docs.

  • Docs are hard to navigate especially as a beginner, I don't know where I need to look for specific info, is it elixir hexDocs, phoenix hexDocs or phoenix liveView hexDocs. Being a more niche stack the stack-overflow or general web search will usually not solve the problem you're having.

  • VS Code experience is horrible. I don't know but i've read some places on how to try and setup linting/formating html or get some autocompletion. it's still not working, and at this point i just want to get on with my project as i don't have much time. I really miss the simplicity of Prettier/Volar for .vue files. Again maybe i should use something else like a different editor please help?

  • Surface/Liveview i remmember when surface just started and i though wow this looks very similar to vue and was eager to try, but i didn't have any project. I've started now with Phoenix Components, and i don't understand why they had to make such a difficult experience and so different from anything javascrip/php, just give me some {{ antlers }} and :class="interpolated" @click="action" I remember a year ago i actually started looking into this and started writing a watcher which would convert vue template into a html.leex (now html.heex) And I still think i will need to do this as i'm missing: autocompletion/tailwind intelisence/html highlighting/html formating

Anyways it's just the first two days, hopefully i can make this project, and then see if i can add something to the ecosystem

Have a nice day!

Discussion (0)