A Vue framework for
Static Websites
Build blazing fast websites with
Vue.js & GraphQL Get started GitHubConnect 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.
PWA Mobile-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 scoresGridsome 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 or server-side rendering, 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
CMSs
WordPress, Contentful, Drupal, Prismic, GraphCMS, etc.
Files
Markdown, YAML, CSV, JSON, Image folders, etc
APIs
AirTable, Google Spreadsheet, MongoDB, Prisma, etc.
GraphQL
data layer
Webpack
Hot-reloading
Static site generation
Generate static files and deploy to any CDN service. For example, Netlify, Zeit Now, GitHub Pages, GitLab Pages, Surge.sh, Now.sh and many more.
Server-side rendering
Deploy Gridsome and the in-memory GraphQL database to any Node.js server.
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.
<template> <div> <h2>Latest blog posts</h2> <ul> <li v-for="edge in $page.allWordPressPost.edges" :key="edge.node._id"> {{ edge.node.title }} </li> </ul> </div> </template> <page-query> query Blog { allWordPressPost (limit: 5) { edges { node { _id title } } } } </page-query>
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