A Vue framework for
Static Websites

Build blazing fast websites for any CMS
or data with Vue.jsimage/svg+xml

Get started GitHub

Connect to any CMS or data source

Use any CMS or data source for content. Pull data from WordPress, Contentful, local Markdown, or any other headless CMS or APIs and access it with GraphQL in your pages and components.

Enjoy a modern development stack

Build websites with modern tools like Vue.js, webpack and Node.js. Get hot-reloading and access to any packages from npm and write CSS in your favorite preprocessor like Sass or Less with autoprefixing.

PWA Offline-first architecture

Only critical HTML, CSS, and JavaScript get loaded first. The next pages are then prefetched so users can click around incredibly fast without page reloads, even when offline.

Get perfect page
speed scores

Gridsome automatically optimises your frontend to load and perform blazing fast. You get code-splitting, image optimisation, lazy-loading, and almost perfect lighthouse scores out-of-the-box.

Build future ready websites

The future of the web is JavaScript, API's, and Markup - the JAMstack. Gridsome uses the power of blazing-fast static site generator, JavaScript and APIs to create stunning dynamic web experiences.

Ready for global domination

Gridsome sites are usually not connected to any database and can be hosted entirely on a global CDN. It can handle thousands to millions of hits without breaking - and no expensive server costs.

How Gridsome works

Use local files or any external API as a data source and access the data from a unified GraphQL layer

Data sources


WordPress, Contentful, Drupal, Prismic, GraphCMS, etc.

Local files

Markdown, YAML, CSV, JSON, Image folders, etc.


AirTable, Google Spreadsheet, MongoDB, Prisma, etc.


data layer

Static site generation

Generate static files and deploy to any global CDN service or FTP at blazing speed.

For example, Netlify, Zeit Now, GitHub Pages, GitLab Pages, Surge.sh and many more.

Connect to any CMS, APIs or local files, like Markdown, and access it from a GraphQL layer. Insert data to any .vue file with only the fields you need.

    <h2>Latest blog posts</h2>
      <li v-for="edge in $page.posts.edges" :key="edge.node.id">
        {{ edge.node.title }}

query Blog {
  posts: allWordPressPost (limit: 5) {
    edges {
      node {

Latest posts

Say hello to Gridsome ๐Ÿ‘ถ๐ŸŽ‰๐Ÿ’š

Posted 10. October 2018 by Tommy Vedvik - 1 min read

A new static site generator baby is born. It's highly inspired by Gatsby.js (React based) but built on top of Vue.js. We have been working on it for a year and will have a beta ready soon. You can expect this baby to grow up fast!

Read more