Garth is CTO of GRID22, a tiny Seattle-area R&D house focusing on distributed collaboration tools, offline-first software, and edge devices. His programming career started in the ’80s, building video games for Atarisoft and Electronic Arts. He spent a decade at Microsoft before moving through a series of CTO and GM roles at smaller companies. He discovered Elixir early, and never left: at Rose Point, he built the first commercial products ever shipped on Nerves.
When we started with LiveView a few years ago, we kept hearing that LiveComponents should be used sparingly — prefer functional components, watch out for performance. After building an ambitious LiveView app — multi-pane UI, slide-in panels, organizers, app panes, and sophisticated navigation. We’ve come to to the opposite conclusion. LiveComponents make a far better central building block than most people assume, and with hundreds active any given moment in our app, we’ve found them performant, flexible, and highly composable.
What is hard is everything around them: state that needs to survive remounts, event routing, and (especially) allowing them to subscribe to PubSub without hard-coded glue in the LiveView. This talk examines one approach to using LiveComponents to provide a rich UX, along with patterns that provide solutions to the common problems people run into. We’ll also discuss the performance reality after years of pushing this model further than we probably should have.
Key takeaways:
Target audience: