I&#x27;m genuinely curious what you feel is too magical with how we handle rendering? Templates are compiled as `render&#x2F;2` function clauses on the view module, so there&#x27;s no magic going on. As you said, we do lean on pattern matching, but that&#x27;s a product of the language and how you structure a large amount of your own code, not anything tricky we&#x27;re doing.<p>For example, if I have an `user&#x2F;index.html.eex` template for a `UserView` module, I can render it with:<p><pre><code>    View.render(UserView, &quot;index.html&quot;, name: &quot;colbyh&quot;)
</code></pre>
At compile time, we simply precompiled the index.html.eex template as a `def render(&quot;index.html&quot;, assigns) ...` function clause.<p>Now imagine I want a `bio.html` template. Instead of making a template file, I can literally do this in my view:<p><pre><code>    def render(&quot;bio.html&quot;, assigns) do
      &quot;Bio: name: #{name assigns.name}&quot;
    end
    ...
    View.render(UserView, &quot;bio.html&quot;, name: &quot;colbyh&quot;)
    =&gt; &quot;Bio: name: colbyh&quot;
</code></pre>
And it Just Works exactly because there&#x27;s no magic going on. Templates are just function calls, whether they are precompiled from a template engine or defined by the user manually.