DEV Community

Discussion on: I have been programming since I'm 10, Ask Me Anything!

Collapse
 
karataev profile image
Eugene Karataev

What tools do you use to prebuild your Vue.js applications on the server in deploy time?
It seems that client side rendered SPA and even server side rendered in runtime application don't suite the JAMStack app definition:

When is your site not built with the JAMstack?
A single page app that uses isomorphic rendering to build views on the server at runtime.

Collapse
 
koehr profile image
Norman

That is an excellent point you make here. In the JAMStack the frontend is completely static. So either you simply use a Vuejs application as is, which wouldn't be pre-rendered, or you use frameworks like Nuxt and Gridsome which both can render a static, prerendered and self-hydrating (means, Javascript takes over the pre-rendered page later) page for you. It is also possible to write the Webkit magic yourself using prerender-spa-plugin.

Collapse
 
karataev profile image
Eugene Karataev

I haven't heard about prerender-spa-plugin before, will give it a try, thanks 😉

Thread Thread
 
rixcy profile image
Rick Booth

VuePress looks pretty interesting too (vuepress.vuejs.org/). One of the main benefits to using prerendering is SEO. Without any prerendering, Google will usually end up thinking the page data is just 'we're sorry, but x doesn't work properly without javascript enabled' which isn't ideal :D

Thread Thread
 
karataev profile image
Eugene Karataev

In my experience Google bot is able to crawl content even from SPA with content generated on the client. But having the website prerendered on the server is definitely much much better for both performance and SEO metrics.

Thread Thread
 
koehr profile image
Norman • Edited

Indeed. Also despite Google being able to parse and execute Javascript, the functionality is not only limited but also deferred. According to Google, the bot is putting everything on a late execution list that takes longer than a few milliseconds. Your website might need a few days or even weeks to get indexed this way.

This source here explains it well: seopressor.com/blog/javascript-seo...

Thread Thread
 
koehr profile image
Norman

Vuepress is great for pages that are very blog or documentation like. Customization is possible but not as easy as with Gridsome or Nuxt.

Thread Thread
 
rixcy profile image
Rick Booth

Yeah true, haven't used Gridsome before but Nuxt seemed really powerful in what it offered on top of Vue. discovery.journeyfurther.com/how-t... is a pretty interesting article on Googlebot crawling and where it may be heading in the (hopefully near) future.