So, I come from the React.js community, and I’d first like to say that the path chosen by the Elixir community regarding Developer Experience has been amazing! It’s unbelievable how fast you’re able to deploy super useful new features.
I’ve been learning Phoenix for a while and recently started a side-project favoring Liveviews whenever I can. Usually, I do a thorough research about how things are done and which tools I have available to use. I know about Alpine.js, Surface and Tailwind (my preferred solution even before Elixir) being used on most projects and having a great feedback from all of you.
But, for me, something is missing: a UI toolkit with basic frontend components.
This is something that from day-one gave me quite a joy when working with React. Lately, ChakraUI has been my choice, and I advise you to take a look at it. It brings two things to the table:
- A basic set of components (Dialog, Buttons, Alert, Modals).
- High customizability via props (adding margin, padding, changing any CSS…).
IMO, this is crucial to enable developers to move fast and worry only about their custom implementation!
I know that https://surface-ui.org brings some of it, but not quite sure if that’s also what the library is trying to solve in the long run. I speak about data-displaying components, date pickers, rich tables…
What I’d like to know is: do you see something like that being built for Phoenix? What does it look like? In any way, I’d like to help!
Some points that I’ve seen in other posts and might be considerable:
- Web Components doesn’t seem to be the answer IMO, being more like a “sidecar”.
- I know that some things are changing in Liveview regarding componentization. Should we wait for that?