
Gridsome – A Vue.js static site generator - AlphaWeaver
https://gridsome.org/
======
dmix
Nuxt is more than sufficient as a static site generator. It’s better to use
SSR if you have dynamic pages with changing content, which requires a server.
But Nuxt has the option to generate the pages statically (using Vue component
templates to create static HTML pages).

It’s my favourite development in web development in a long time.

[https://nuxtjs.org/](https://nuxtjs.org/)

I’m starting to feel like I want to use JS now for sites instead of just being
forced to because of its power on the frontend. I hope the future is top heavy
component based SSR with an API style backend which also runs off your web
server.

With much simpler API requirements it’s easier to use languages like Rust and
Haskell since the whole templating, view helpers, routing, layouts, asset
management, and rendering stuff is all handled for you by the SSR app. Then
you focus the backend on models, logic, authentication, and databases.

~~~
tnolet
I found Nuxt absolutely terrible to work with when I tried it about 1.5 years
ago. Bad documentation, confusing terms and architecture. I ditched it.

Has it become any better? I'm pretty comfortable with Vue.js.

~~~
no1youknowz
Probably not. A few weeks ago, I went from zero to building something with it.

The documentation is certainly not as good as Vue. Which is a shame. I wish
someone from their team talked to the documentation master over at Vue and
made their documentation as good.

The only other criticism that I have, is that with Vue there are a lot of
people over at discord. So if you can get stuck, you'll get some help. For
Nuxt, you'll just get flat out ignored. Especially if you are developing on a
Node JS framework no one is using.

I really wish there was more competition in this space. Happy Gridsome is
stepping up and hopefully will be better in aspects compared to Nuxt.

That said, in a few weeks. Will build something with Gridsome and then I can
have a better opinion.

~~~
nkingsy
Vue's documentation is a work of art, backed by a clear philosophy about the
underlying software. If a consultation with them was all it took to produce
docs that compelling, they probably should go into the consulting business so
we can all have perfect docs.

~~~
fbnlsr
Laravel's documentation is also great to read. It's well done, concise enough
and presented in a pleasant manner.

------
geowwy
If you're looking for a Static Site Generator: consider building your own.

You can build your own static site generator in an afternoon. It's super
simple to do and you avoid all the complexity of these off-the-shelf static
site frameworks.

A few examples of my own:

    
    
      * A blog made with makefile, m4, multimarkdown, and scss
      * A personal website made with shell scripts and php  
      * A business website made with ruby, rake and erb

~~~
gherkinnn
I have gone that route in the past, only to find myself in lost amidst config
files, documentation, and never ending ideas for more features.

Not that that’s impossible, but I lacked the restraint to turn away and do
what actually matters: write content.

~~~
efdee
> only to find myself in lost amidst config files, documentation, and never
> ending ideas for more features.

Sounds like about the experience you'd have with most existing static site
generators ;-)

~~~
gherkinnn
So very true. How can something as simple as md => html become so cumbersome?

------
preommr
These kinds of static site generators are really nice because they enable
better support for smarter interactive components in articles. Things like
graphs or interactive demos to showcase something (e.g. user input delay on an
article about ui design and responsiveness).

Vue is a particularly good choice for these kinds of applications because it's
a lot more incremental and comes builtin with things like reactivity so
there's no need for an external dependency for state management.

Like a complete app is:

\---

import Vue from "vue/dist/esm.js";

app = new Vue({el: "#app", template:"<div>{{name}}</div", data: ()=>{{name:
"john"}};

\---

No jsx, no babel transpiler nonsense, no redux/mobx,

It's also possible to completely forget about vue and do something like

\---

let data = app.$data;

data.name = "adam";

\---

This is so nice because you don't even have to think about the fact that
you're using a framework, it's all taken care of for you. No setState(...)
nonsense. The tradeoff is that there's magic (which I don't think is bad
because in vue's case it's pretty straightforward once you get to learn it)
but that's a separate discussion because I don't think that magic matters for
very small simple cases like this.

~~~
onion2k
MDX[1] enables you to embed working JSX (eg React components) directly in your
Markdown files. It doesn't need to be a separate file; you can just write the
code in to the content file and it'll render an interactive component. One
quite useful aspect of this is that you can have example code and a working
example next to each other driven by the same content.

I'm not sure that's actually a good thing, but it does exist.

[1] [https://github.com/mdx-js/mdx](https://github.com/mdx-js/mdx)

------
AndreFvchs
We are using Vuepress for our blog, docs and tutorials. It's really fast and
supports markdown. [https://vuepress.vuejs.org/](https://vuepress.vuejs.org/)

------
vlx
If you don't need SSR, then Gridsome is a better choice. Girdsome generates
complete HTML content (better for SEO) whereas Nuxt generates only a minimal
HTML page that always needs to be hydrated first.

In a recent project, I needed a blog where each article would contain a button
to tweet it. The problem with nuxt was that all generated HTML pages contained
just the globally defined meta tags. A workaround was to hook to the build
process of `nuxt generate`.

------
Lerain
I am using Gridsome in combination with CraftCMS (and CraftQL) for a client
project. The moment you understand how to write a content-plugin based on your
own needs, everything falls into place and makes it a pretty useful piece of
tech. So if you like Vue and are a little jealous towards React-people about
GatsbyJS – give it a shot!

------
luord
It's described as a framework of Vue... Itself a framework.

I'll need to try this, gotta see how deep this goes.

~~~
nkingsy
It goes all the way down to the sharpened stick framework.

~~~
sandov
The magnetized needle and a steady hand framework.

------
xemoka
I've tried to use Gridsome recently, after the .7 release I think, and it was
just kind of painful. Managing the graphql layer just seemed over the top for
my needs: static generation from markdown with dynamic vue components. I
settled on zola[0] + webpack, but I'm still not super happy.

Sometimes the things I'm building I know aren't going to be very large,
building a SPA with vue/vue-router and using react-snap[1] seems to be working
well... almost seems like cheating.

[0]: [https://www.getzola.org/](https://www.getzola.org/)

[1]: [https://github.com/stereobooster/react-
snap](https://github.com/stereobooster/react-snap)

------
vuong
I peronally like Vue more than React so just hope Gridsome will gain more
widespread use in the near future. Gatsby is great honestly.

------
brianfryer
I’ve built and launched nearly a dozen sites using Gridsome + Netlify since
0.5.0. It’s a fantastic tool and is a joy to use.

~~~
fbnlsr
Have you managed to handle multilingual sites? I've browsed through Gridsome's
documentation but couldn't find any info on that.

------
watt3rpig
Dumb question, but why do you need a static site generator vs just writing an
html file?

~~~
MildlySerious
Basically, template compiling. Not having to copy/paste reusable parts around,
which is error prone and time consuming. Depending on the tool there's other
stuff, like generating sitemaps, optimizing images, CSS treeshaking and other
optimizations, all the good stuff that would otherwise happen manually or not
at all.

~~~
watt3rpig
Ah thanks for the explanation.

------
brianzelip
Another option is to include the prerender-spa-plugin, which makes it trivial
to turn a vue spa into static files that hydrate into a vue app on the client.

The parcel-plugin-prerender is great, [https://www.npmjs.com/package/parcel-
plugin-prerender](https://www.npmjs.com/package/parcel-plugin-prerender).

------
ratbum
The website for it uses 100% of my CPU. No thanks.

~~~
tomtev
What browser do you use? It's only using safe CSS animations. (I built it) On
my Chrome it's using only 2% of the CPU.

------
stared
Any pros/cons vs Vuepress?

------
faizshah
Awesome! What are the feature differences between this and gatsby?

~~~
woutr_be
The main difference seems to be that this is for Vue, while Gatsby uses React.
Other than that, It actually looks exactly the same.

~~~
rhabarba
Now that's an innovation.

~~~
woutr_be
I don't see them claiming to be innovative. They're offering a solution
similar to Gatsby, but for people who prefer Vue.

------
JeroenRansijn
Airtable instead of AirTable.

------
arcosdev
Not a big fan of Vue, but to each his own

~~~
baroffoos
Why is that? I use react at work and vue on my own projects and I have always
found vue to be all the good ideas from react with a lot of extra niceness and
less tooling bloat.

~~~
siquick
And you get to use Vuex which is a joy compared to Redux.

------
rhabarba
> The future of the web is JavaScript

I disagree.

