If you have any kind of auth you’re going to need controllers (even if all they do is respond to POST requests and redirect) as you cannot manipulate session data over websockets.
As for templates, so long as you always use functional components then there is effectively no difference between template for controllers and templates for LiveViews. Otherwise, the “standard” way is to put templates for controller actioins in lib/my_app_web/controllers/<my_controller>_html/ or define them as function components in lib/my_app_web/controllers/<my_controller>_html.ex and people tend to put reusable components in lib/my_app_web/components/. Again, so long as they are functional components, both classic views and LiveViews can use them.
See here for related discussion.






















