Vagr9K / gatsby-material-starter

A high performance blog starter with Material design in mind for GatsbyJS.
https://gatsby-theme-material.netlify.app/
MIT License
514 stars 178 forks source link
blog emotion gatbsy-image gatsby gatsby-starter gatsby-theme gatsbyjs material material-design react react-md seo static-site-generator
Logo Logo Logo Logo
Logo
Powered by TypeScript Coverage Status Material Demo

Gatsby Material Starter

A Material Design oriented blog starter for GatsbyJS equipped with advanced features such as SEO, image optimization, PWA capabilities and infinite scrolling feeds.

This starter aims to provide a minimal base for building advanced GatsbyJS powered websites by using the latest technologies to simplify your process.

Starter supports both TypeScript and JavaScript, comes with Jest and Cypress configurations and allows you to write Unit/Integration/E2E tests out of the box.

The starter uses gatsby-theme-advanced under the hood and is based on the Gatsby Advanced Starter.

Demo

Material Demo.

Visit gatsby-theme-material for details regarding on how it was built using gatsby-theme-advanced.

Features

Getting Started

Install this starter by running the following commands from your CLI:

gatsby new YourProjectName https://github.com/Vagr9K/gatsby-material-starter
cd YourProjectName
yarn develop # or gatsby develop

Note that the Gatsby CLI needs to be installed and updated for the gatsby command to work.

Alternatively you can fork the project, make your changes and merge new upstream features when needed:

Receiving upstream updates

You have multiple options when it comes to receiving upstream updates:

First option allows you to make your own changes to the theme without having to fork and publish it. This is the default approach when you clone/fork the starter repository.

Second option simplifies your CI/CD setup and allows you to receive updates by simply bumping the package version.

To switch to the remote version, open package.json and edit the dependency section:

 "gatsby-theme-material": "*",

into

 "gatsby-theme-material": "3.1.0", // Or the version you want

Configuration

To configure the theme edit your gatsby-config.js:

module.exports = {
  plugins: [
    {
      resolve: `gatsby-theme-material`,
      options: {
        basePath: `/blog`,
      },
    },
  ],
};

For configuring the theme, consult its documentation pages:

NetlifyCMS

First of all, make sure to edit static/admin/config.yml and add your GitHub/GitLab/NetlifyId credentials:

backend:
  name: github # Refer to https://www.netlifycms.org/docs/authentication-backends/ for auth backend list and instructions
  branch: master # Branch to update
  repo: vagr9k/gatsby-material-starter # Repo for pushing new commits. Make sure to replace with your repo!

You can visit /admin/ after and will be greeted by a login dialog (depending on the auth provider you ave chosen above).

If want to customize Netlify CMS, e.g. registering custom widgets or styling the preview pane, you can do so by editing src/netlifycms/index.js:

import CMS from "netlify-cms-app";

CMS.init({
  config: {
    backend: {
      name: "git-gateway",
    },
  },
});

For NetlifyCMS specific issues visit the official documentation.

Author

Ruben Harutyunyan (@Vagr9K)