Modern JavaScript provides some surprising features that were before only possible using templating egines such as handlerbars.
function listUsers(list) {
return `
<div>
${list.map((user, i) => `
<div>
${user.name}
</div>
`).join('')}
</div>
`;
}
So in theory, Vanilla JavaScript is good enough for creating websites, or single page applications.