Giter Site home page Giter Site logo

nilportugues / gatsby-universal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fabe/gatsby-universal

0.0 2.0 1.0 4.95 MB

๐Ÿ”ฎ An opinionated starter for Gatsby v2.

Home Page: https://gatsby-universal.netlify.com

License: MIT License

JavaScript 100.00%

gatsby-universal's Introduction

gatsby-universal

CircleCI styled with prettier deploys by netlify

An opinionated starter for using Gatsby v2 with React Context, tag-agnostic styled-components, page transitions, scroll events with IntersectionObserver. Made for state-of-the-art marketing sites.

You can access a demo of this starter online at https://gatsby-universal.netlify.com.

Features

  • ๐Ÿคฉ Page Transitions, component-based (with no-js support)
  • ๐Ÿ‘ฎโ€โ™‚๏ธ IntersectionObserver, component-based (with polyfill)
  • ๐ŸŒฟ React Context for global UI state, with SSR
  • ๐Ÿ’… styled-components v4
  • ๐Ÿ’ฏ Optimized with Google Lighthouse (including test)
  • ๐Ÿ”ฅ Code Splitting of CSS and JS (component based)
  • โš™๏ธ One config file for site-wide settings
  • ๐Ÿ’™ Most social + meta tags in one component
  • ๐Ÿ–ผ All favicons generated, only one icon file needed
  • ๐ŸŒ Offline support
  • ๐Ÿ“„ Manifest support
  • ๐Ÿ—บ Sitemap support
  • ๐Ÿ“ฑ Generated media queries for easy use
  • ๐Ÿ˜Ž Prettier for code style
  • ๐Ÿ‘ทโ€โ™‚๏ธ CircleCI support
  • ๐Ÿ™ Schema JSONLD
  • ๐Ÿ”Ž size-plugin to keep an eye on your bundle sizes

Lighthouse scores (on Netlify)

Lighthouse scores (on Netlify)

Usage

๐Ÿšจ To make sure you have the correct beta versions of Gatsby, please use yarn to install the dependencies.

# Installation
gatsby new my-site https://github.com/fabe/gatsby-universal

# To develop
yarn develop

# To build
yarn build

# To test SSR (for Lighthouse etc.)
yarn ssr

# To format JS (precommit)
yarn format

# To generate favicons (included in `build`)
yarn build:favicons

Configuration

Find the site-wide configuration in site-config.js.

module.exports = {
  siteTitle: `Gatsby Universal`,
  siteTitleShort: `GatsbyU`,
  siteDescription: `An opinionated starter for Gatsby.`,
  siteUrl: `https://gu.fabianschultz.com`,
  themeColor: `#000`,
  backgroundColor: `#fff`,
  pathPrefix: null,
  logo: path.resolve(__dirname, 'src/images/icon.png'),
  social: {
    twitter: `gatsbyjs`,
    fbAppId: `966242223397117`,
  },
};

๐Ÿšจ Don't forget to update your robots.txt inside static/!

Folder structure

โ”œโ”€โ”€ gatsby-browser.js # Specify how Gatsby renders pages in the browser
โ”œโ”€โ”€ gatsby-config.js # Gatsby config, mostly taken from `site-config.js`
โ”œโ”€โ”€ gatsby-node.js # Modify webpack config
โ”œโ”€โ”€ gatsby-ssr.js # Specify how Gatsby builds pages
โ”œโ”€โ”€ site-config.js # Global settings for the whole site, used by multiple scripts
โ”œโ”€โ”€ content # Content & data, in both json and markdown
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ components
โ”‚   โ”‚   โ”œโ”€โ”€ head # All meta tags etc.
โ”‚   โ”‚   โ”œโ”€โ”€ io # Intersection Observer component, uses render props
โ”‚   โ”‚   โ”œโ”€โ”€ layout # Layout component
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ layout.css.js # .css.js for component's `styled-components`
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ layout.js
โ”‚   โ”‚   โ””โ”€โ”€ transition # Page Transition component, used by Gatsby APIs
โ”‚   โ”œโ”€โ”€ constants # Site-wide constants (breakpoints, colors, etc.)
โ”‚   โ”œโ”€โ”€ containers # Container components if store is needed
โ”‚   โ”œโ”€โ”€ helpers
โ”‚   โ”‚   โ”œโ”€โ”€ schemaGenerator.js # Generates JSON-LD schema.org snippets
โ”‚   โ”‚   โ””โ”€โ”€ mediaTemplates.js # Creates media queries for styled-components
โ”‚   โ”œโ”€โ”€ images # Images needed by the site/theme (not content)
โ”‚   โ”œโ”€โ”€ pages
โ”‚   โ”œโ”€โ”€ store # Store and provider of a React.createContext instance
โ”‚   โ””โ”€โ”€ global.css.js # Global CSS
โ””โ”€โ”€ scripts
    โ”œโ”€โ”€ lighthouse.test.js # Tests the site specified inside `site-config.js` with Google Lighthouse (WIP)
    โ””โ”€โ”€ favicons.js # Generates favicons and manifest using one png only.

Author

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.