Give each partial one job
Keep navigation, project cards and the footer in separate partials. A shared card makes changes consistent across the homepage and project previews.
Choose how values become HTML
Use <%= value %> for ordinary text because it escapes output. Reserve <%- include(...) %> for trusted template markup. A submitted biography should remain text, even when it contains HTML.
Prepare data before rendering
Let the route select published content and language. Give the template explicit fields rather than passing the entire request query into rendering.