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.
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.
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
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.
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.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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:
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.
I haven't heard about prerender-spa-plugin before, will give it a try, thanks 😉
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
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.
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...
Vuepress is great for pages that are very blog or documentation like. Customization is possible but not as easy as with Gridsome or Nuxt.
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.