brainlid
This post asks if we can remove Alpine from the PETAL stack. Can we do everything we need with just LiveView? Also, let’s explore an area where LiveView can still improve.
Trending in Blog Posts
Up until then, I found it very hard to communicate to LLMs that I specifically do not want to handle X case because maybe it has never ha...
New
An automated trigger fired every two minutes for 8 hours. 243 agent runs. 31M tokens. $63 wasted. The problem: nobody noticed until morni...
New
TL;DR: Give https://cure-lang.org a try—perhaps you will like it.
New
I finally found time to write down my journey away from ExMachina, including the workaround I tried first and the API experiments that fo...
New
The words are insufficient to describe what transpired. What we tried to do met what the people wanted it to be. It became beautiful.
Th...
New
Hi all,
I’ve built a small demo app to understand what an “AI agent” actually is under the hood, and to show it with Elixir’s own tools ...
New
A backtest worker and a live trading node had to share one broker rate limit and one set of OAuth tokens, and both only work if there’s e...
New
Other Trending Topics
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with.
But I don’t use it anymore.
Serverless was the promis...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #ai
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #security
- #metaprogramming










Showing Posts 1 to 9- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
Sebb
Arrr good stuff. Only a deleted line of JS-code is a good line of JS-code.
f0rest8
This is great and I’ve been thinking about this a lot and recently refactored a lot of the Alpine in Metamorphic (including creating the glide photo effect with JS commands).
Though there’s still a few things that I’m not sure would be as easy to do with JS commands, like counting the number of characters in a form as you type. AFAIK that’s still easier/better experience with Alpine but it’s definitely getting closer!
tj0
I tried Alpine I think last year for a few weeks and ripped it out. Tabs can be done via CS and everything is pretty much instantaneous. No JS of any kind is required.
In production, I’m using nested css elements handled by radio buttons.
css
html
Here is another example done using z-index instead:
https://codepen.io/dhs/pen/zYErrW
Modals can also be done via css, but I think Phoenix.JS is a bit cleaner.
trisolaran
Same here. I never understood the appeal of AlpineJS for a LiveView project. When I started using LiveView (long before LiveView.JS) I decided to use JS hooks to keep things simple, cause I didn’t want to add a JS framework. Later on, because everyone was talking about Alpine, I gave it a try out of curiosity. I tried to replace my hooks with AlpineJS. I really had a hard time trying to make it all work, and I came to the conclusion that LV hooks are more flexible and better suited than Alpine for a LiveView project, also because they can hook into LV life-cycle events directly. So I stripped the “A” from PETAL a long time ago. Even more so now that we have LiveView.JS. I suspect Alpine is something so many people were using mainly because so many people were using it.
tj0
Yah, glad to know I’m not the only one.
I had so many weird issues with state that I went back to using css with checkboxes/radio buttons to hold the state of the view. Completely separates the state of the client view (in css/html) from the state of the data on the page (js).
mgibowski
Maybe we should just start saying LiveView & Tailwind?
Elixir and Phoenix are included in this automatically, and it’s still two words, just like the “PETAL stack”.
mgibowski
Furthermore, once Phoenix v1.8 arrives and starts using TailwindCSS by default, I don’t think calling this stack anything more than just LiveView is very useful…
The acronym PETAL played it’s role before, when we had to compose our own stack on top of LiveView.
Now, as LiveView comes with all the necessary elements built-in (JS commands, TailwindCSS set up by default), I think the PETAL acronym can be retired and we don’t need any replacement for it.
dr.a
hi there, newbie here – any chance you’d be up for telling us how this approach has played out over the past few months?
soyjeansoy
Even now I’m holding back till 1.8 comes, we’re still using Phoenix 1.6.x (liveview 0.18 is ok)