cblavier
Phx_component_helpers - Extensible live_components, without boilerplate
Hey there 
A few days ago I extracted a lot of functions I’m using in 2 different projects (one large phoenix LiveView project and a small PETAL app)
It basically answers to the following needs:
- quickly package UI code into live_components
- make components extensible from the templates (in the spirit of Tailwind & Alpine)
- less boilerplate possible.
I first tried Surface, and even if I was impressed, it felt too heavy for me (btw it has more line of codes than LiveView itself) and I’d really prefer to stay closer to the underlying library (LiveView)
Let me know what you think of this lib 
Most Liked
cblavier
A glimpse of some of the components we’re writing with phx_component_helpers ![]()
A table with infinite scroll, sticky headers, sorting, filtering, placeholder, result counter … coming for really cheap to our front-end developpers ![]()

Code source is really neat with proper component encapsulation ![]()
cblavier
As we started to get an ever growing list of components and were also looking to get stronger UI guidelines (I’m looking at you Tailwind colors
) we built our own storybook (inspired from React’s)
Here is a preview:
cblavier
0.8.0 
I’m still (I guess) the sole user of this library, but for whatever reason I’m polishing it as if it were to be used by thousands 
cblavier
Just released 0.9.0 with new forward_assign/2 that will help writing nested components (you often need to propagate part of assigns to a child component)
Feature-wise there is now everything I wanted in this library.
It just needs a bit more example & documentation before a proper 1.0 release
cblavier
No alpine there: only using plain JS (there is actually a single 50 loc JS file for the infinite scroll hook).
The static sidebar on the left is part of the layout, no special trick here, LiveView doesn’t know anything about the layout.
We also use Turbolinks to manage page to page navigation.








