Gridsome
Build blazing fast websites for any CMS or data with Vue.js.
This project is under active development. Any feedback or contributions would be appreciated.
Enjoy modern dev stack
Build websites using latest web tech tools that developers love - Vue.js, GraphQL and Webpack. Get hot-reloading and all the power of Node.js. Gridsome makes building websites fun again.
Bring your own data
Gridsome lets you use any CMS or data source for content. Pull data from WordPress, Contentful or any other headless CMS or APIs and access it with GraphQL in your components and pages.
Mobile-first architecture
Only critical HTML, CSS and JavaScript are loaded at first, and then the next pages are prefetched in the background so users can click around extremely fast without page reloads and even offline
Extremely fast loading
Gridsome automatically optimises your frontend to load and perform blazing fast. You get code-splitting, asset optimisation, lazy-loading, and almost perfect Lighthouse scores out-of-the-box.
Scale globally at no cost
Gridsome sites can be entirely hosted on a CDN and can handle thousands to millions of hits without breaking - and no expensive server costs.
The frontend for the headless
Design and build websites that are decoupled from the CMS. This means you can easily change the CMS later or test a complete redesign without breaking your site.
Quick start
1. Install Gridsome CLI tool
npm install --global @gridsome/cli
2. Create a Gridsome project
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 ??
3. Next steps
- Add
.vue
files to/pages
directory to create pages. - Use
gridsome build
to generate static files in a/dist
folder - Use
gridsome serve
for server-side rendering
Learn more...
How to contribute
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
.
To use @gridsome/cli
in the repo as a 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.
Roadmap for v1.0
- [x]
*.vue
pages and templates - [x] GraphQL data layer
- [x] Multi-process image processing
- [x] Multi-process HTML rendering
- [x] Lazy-loading images and pages
- [x] Pagination
- [ ] Plugin API
- [ ] Taxonomies
- [ ] Service Worker
- [ ] Documentation
- [ ] Guides
- [ ] Tests