Gridsome is a Vue-powered static site generator for building CDN-ready websites for any headless CMS, local files or APIs
This project is under active development. Any feedback or contributions would be appreciated.
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.
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.
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.
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.
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.
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.
npm install --global @gridsome/cli
gridsome create my-gridsome-site
to create a new projectcd my-gridsome-site
to open foldergridsome develop
to start local dev server athttp://localhost:8080
- Happy coding 🎉🙌
- Create
.vue
components in the~/src/pages
directory to create pages - Use
gridsome build
to generate static files in a~/dist
folder
Install Node.js 8.3 or higher and Yarn. It's also recommended to install Lerna globally.
- Clone this repository.
- Create a new Gridsome project inside the
~/projects
folder. - Enter the new project folder and run
yarn
(orlerna bootstrap
if installed). - The project will now use the local packages when you run
gridsome develop
.
Make sure your test poject has a version number in its package.json
if you use an existing project.
To use the local version of @gridsome/cli
as the global command, enter the ~/packages/cli
folder and run npm link
.
Yarn will add dependencies from your test projects to the root yarn.lock
file. So you should not commit changes in that file unless you have added dependencies to any of the core packages. If you need to commit it, remove your projects from the ~/projects
folder temporary and run yarn
or lerna bootstrap
in the root folder. Yarn will then clean up the lock file with only core dependencies. Commit the file and move your projects back and run yarn
or lerna bootstrap
again to start developing.
-
*.vue
pages and templates - GraphQL data layer
- Multi-process image processing
- Multi-process HTML rendering
- Lazy-loading images and pages
- Pagination
- Plugin API
- Taxonomies
- Download external assets
- Service Worker
- Documentation
- Guides
- Tests