It’s a common practice for a Vue app to use the DOM as its template, as it’s the quickest and easiest architecture to set up.
You quite simply can’t use a DOM template if you want to server-side render your Vue app, as the HTML document is not an input of the SSR process.
How can you architect a Vue.js app without a DOM template, or at least a small one?
If you can eliminate all string and DOM templates from your app you can use the smaller runtime-only build of Vue. This is an ideal project architecture and is the one you’ll see used in vue-cli templates.