Animating LiveView Deletions with JS.hide/2 & JS.push/2 Repo.stream/2 with no database transaction

Are one of these LiveView anti patterns lurking in your codebase?

Over the past 3 years of writing LiveView in production, I’ve come across common 4 anti patterns in LiveView applications. They are:

  • Improper separation of concerns
  • Function head soup
  • Not indexing large lists
  • Failure to preload LiveComponent assigns

We’ll discuss each, what makes them problematic, and how to remedy them