Phoenix 1.7.0-rc.0 is out!

render (of views) is no longer a thing unless you’re manually including phoenix_view. Templates will become function components with embeds_templates. No more render("show.html", assigns), but <.show {assigns} /> or show(assigns).

You cannot colocate multiple templates and you never could in the past. Personally I’d love to get rid of them, because they’re just causing so much confusion. Explicitly requiring embed_templates in the LV module would’ve been so much cleaner, but it’s too late for that now. I’d suggest maintaining everything which is a subcomponent separate from the LV module and use co-located templates only as the single place of composition of subcomponents if at all. Since 1.7 I even tend to inline the render callback on LV modules most of the time. Also one-of pieces of markup are simple to be maintained as function (components) instead of in templates. If they’re so big that they need a template file I think it’s worth to move them to a separate module.