Concepts should be separated. Layers should be separated. That&#x27;s true for any application.<p>Separate HTML and JS? That&#x27;s a small implementation detail. You can have your view layer as JSX files, separated from business logic, data access, etc. That&#x27;s actually recommended.<p>Even when you are using purest HTML template engine, completely separated from JS logic, you still can make a mess, moving lots of logic into HTML or moving all your layers into a single JS file. File boundary is very artificial separation. It doesn&#x27;t always help. And often it makes things worse, because you have to work around limitations.