PETAL, LiveView, and LAMP
Labeling Ideas and the Power of Association
Recently, Lars Wikman posted an interesting take on Thinking Elixir’s relatively new acronym called PETAL. It stands for Phoenix, Elixir, Tailwind, Alpine, and LiveView. As someone who has been involved in the Elixir community since before Phoenix even existed, I’ve watched the Elixir side of that acronym grow from a promising young technology to a group of tools that rivals the best in the industry.
Why the hype?
This set of tools is built around both productivity and scalability. They let small shops like mine produce serious sites. Look, the days of old-school request-response web apps are over. LiveView allows me to code with my focus firmly fixed on the server. I do three things:
- Design an abstract data model with the data elements I want to show on a page,
- Establish events with HTML markup and tiny functions to change that model, and
- Write a function to turn that data into HTML (or other kinds of text, like SVG) markup.
Then, I’m done. The programming model is stunningly productive, with very little custom JavaScript. The productivity allows a tidy code base that’s easy to carve into layers, so I expect the productivity gains to hold up, and even become more pronounced over time. Sprinkle in the right CSS, and my site can also be beautiful.