+
+ )
+}
+
+export default Article
+
+export const query = graphql`
+ query($slug: String!){
+ article: kontentItemArticle(elements: {slug: {value: {eq: $slug }}}) {
+ elements {
+ title{
+ value
+ }
+ content {
+ value
+ }
+ image{
+ value {
+ fluid(maxWidth: 960) {
+ ...KontentAssetFluid
+ }
+ }
+ }
+ }
+ }
+ }
+`
\ No newline at end of file
diff --git a/benchmarks/source-kontent/styles.css b/benchmarks/source-kontent/styles.css
new file mode 100644
index 0000000000000..929e2fd10d2d0
--- /dev/null
+++ b/benchmarks/source-kontent/styles.css
@@ -0,0 +1,4 @@
+main {
+ max-width: 960px;
+ margin: 0 auto;
+}
diff --git a/benchmarks/source-kontent/update-article.js b/benchmarks/source-kontent/update-article.js
new file mode 100644
index 0000000000000..e2ecd3efde4c6
--- /dev/null
+++ b/benchmarks/source-kontent/update-article.js
@@ -0,0 +1,59 @@
+const { ManagementClient } = require('@kentico/kontent-management');
+const { DeliveryClient } = require('@kentico/kontent-delivery');
+
+require("dotenv").config({
+ path: `.env.${process.env.NODE_ENV}`,
+});
+
+
+(async () => {
+
+ const dClient = new DeliveryClient({
+ projectId: process.env.BENCHMARK_KONTENT_PROJECT_ID,
+ })
+
+ const mClient = new ManagementClient({
+ projectId: process.env.BENCHMARK_KONTENT_PROJECT_ID, // ID of your Kentico Kontent project
+ apiKey: process.env.BENCHMARK_KONTENT_MANAGEMENT_KEY, // Management API token
+ });
+
+ try {
+
+ const randomDoc = Math.floor(Math.random() * (Number(process.env.BENCHMARK_KONTENT_DATASET_SIZE) || 512))
+
+ const article = await dClient
+ .items()
+ .type('article')
+ .limitParameter(1)
+ .elementsParameter(['title'])
+ .equalsFilter('elements.article_number', randomDoc)
+ .toPromise()
+ .then(response => response.getFirstItem());
+
+ await mClient.createNewVersionOfLanguageVariant()
+ .byItemCodename(article.system.codename)
+ .byLanguageCodename(article.system.language)
+ .toPromise();
+
+ const languageVariant = await mClient.upsertLanguageVariant()
+ .byItemCodename(article.system.codename)
+ .byLanguageCodename(article.system.language)
+ .withElements([{
+ element: {
+ codename: "title"
+ },
+ value: article.title.value + "!"
+ }])
+ .toPromise()
+
+ await mClient
+ .publishOrScheduleLanguageVariant()
+ .byItemId(languageVariant.data.item.id)
+ .byLanguageId(languageVariant.data.language.id)
+ .withoutData()
+ .toPromise();
+ } catch (error) {
+ console.error(error);
+ process.exit(1);
+ }
+})()
diff --git a/docs/blog/2017-10-03-smartive-goes-gatsby/index.md b/docs/blog/2017-10-03-smartive-goes-gatsby/index.md
index 7818b08ced670..041c31ce26da8 100644
--- a/docs/blog/2017-10-03-smartive-goes-gatsby/index.md
+++ b/docs/blog/2017-10-03-smartive-goes-gatsby/index.md
@@ -45,7 +45,7 @@ deep knowledge of React we started looking for an alternative based on that hot
new thing.
The first thing that caught our attention was
-[Next.js](https://github.com/zeit/next.js/), as seemingly everyone going for a
+[Next.js](https://github.com/vercel/next.js/), as seemingly everyone going for a
server-side rendered React app was using it. After some days hacking on our app
we encountered some issues, especially when it came to frontend rendering. We
chose [prismic.io](https://prismic.io/) for our backend system which served all
diff --git a/docs/blog/2017-10-29-my-search-for-the-perfect-universal-javaScript-framework/index.md b/docs/blog/2017-10-29-my-search-for-the-perfect-universal-javaScript-framework/index.md
index 1467a7474b4cd..34cd3bdd084cc 100644
--- a/docs/blog/2017-10-29-my-search-for-the-perfect-universal-javaScript-framework/index.md
+++ b/docs/blog/2017-10-29-my-search-for-the-perfect-universal-javaScript-framework/index.md
@@ -55,7 +55,7 @@ used to tweak my configuration all the time to achieve better performance, but
Gatsby allows me to outsource the configuration and optimization and get a super
fast website with zero work.
-I’ll also mention [next.js](https://github.com/zeit/next.js) which is quite
+I’ll also mention [next.js](https://github.com/vercel/next.js/) which is quite
similar and supports both SSR for dynamic content and exporting to static pages.
And don't forget [Netlify](https://www.netlify.com) who is doing an amazing job
at building and hosting static websites.
diff --git a/docs/blog/2017-11-06-migrate-hugo-gatsby/index.md b/docs/blog/2017-11-06-migrate-hugo-gatsby/index.md
index 171625acf66a9..81f1d6fbe4d0e 100644
--- a/docs/blog/2017-11-06-migrate-hugo-gatsby/index.md
+++ b/docs/blog/2017-11-06-migrate-hugo-gatsby/index.md
@@ -21,7 +21,7 @@ and reusable.
- Content migration
- Programmatic page creation in Gatsby
- Manage styles with
- [`Typography.js`](http://kyleamathews.github.io/typography.js/)
+ [`Typography.js`](https://kyleamathews.github.io/typography.js/)
- Automatic pagination
- Tag pages
- Add an admin panel with [NetlifyCMS](https://www.netlifycms.org/)
@@ -165,7 +165,7 @@ Now that the system displays the content, it's time to style it. I decided to go
for the
[`typography.js` route](/tutorial/part-two/#typographyjs).
The approach is well documented and you can also see
-[previews of the themes online](http://kyleamathews.github.io/typography.js/).
+[previews of the themes online](https://kyleamathews.github.io/typography.js/).
Steps were:
diff --git a/docs/blog/2018-05-24-launching-new-gatsby-company/index.md b/docs/blog/2018-05-24-launching-new-gatsby-company/index.md
index b520e23170fb9..6b8d1aff9214f 100644
--- a/docs/blog/2018-05-24-launching-new-gatsby-company/index.md
+++ b/docs/blog/2018-05-24-launching-new-gatsby-company/index.md
@@ -55,7 +55,7 @@ I was hooked on being able to ship production code so quickly. Life was good.
Then in 2013, React.js was released.
-I first heard about React from [David Nolen’s blog post introducing his ClojureScript wrapper of React Om](http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs). I was completely fascinated by his analysis; his identification of DOM manipulation code as a major contributor to application complexity and slowdowns resonated with me. I started reading everything I could find on React and soon became a huge fan.
+I first heard about React from [David Nolen’s blog post introducing his ClojureScript wrapper of React Om](https://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs). I was completely fascinated by his analysis; his identification of DOM manipulation code as a major contributor to application complexity and slowdowns resonated with me. I started reading everything I could find on React and soon became a huge fan.
Early in 2014, I left Pantheon to explore new opportunities. I dove deeper into React and built a number of sample applications and was astounded at how productive I was. Problems that used to take me weeks to solve in Backbone.js took me hours in React.js. Not only was I productive; my code felt remarkably simple. With Backbone.js, I always felt I was one or two slip-ups from the whole application spiraling out of control. With React, elegant and simple solutions seemed to come naturally from using the library. Again, I could feel things in web land were changing in a very big way.
diff --git a/docs/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/index.md b/docs/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/index.md
index 7a90d2be6e3e7..9747b29308cec 100644
--- a/docs/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/index.md
+++ b/docs/blog/2018-06-07-build-a-gatsby-blog-using-the-cosmic-js-source-plugin/index.md
@@ -424,7 +424,7 @@ Restart the Gatsby server, then visit the detail page by clicking on URLs displa
In addition to the code covered in this tutorial, we also implemented `src/components/bio.js` to display author information & `src/layouts/index.js` to [create a generic layout](/tutorial/part-three/#our-first-layout-component) for the blog.
-The source code for this tutorial is available [on GitHub](https://github.com/cosmicjs/gatsby-blog-cosmicjs). To see it live, clone the repository, and run (`cd gatsby-blog-cosmicjs && npm i && npm run develop`) or check out the [demo on Netlify](https://gatsby-blog-cosmicjs.netlify.com/).
+The source code for this tutorial is available [on GitHub](https://github.com/cosmicjs/gatsby-blog-cosmicjs). To see it live, clone the repository, and run (`cd gatsby-blog-cosmicjs && npm i && npm run develop`) or check out the [demo on Netlify](https://gatsby-blog-cosmicjs.netlify.app/).
The static website generated by Gatsby can easily be published on services like Netlify, S3/CloudFront, GitHub Pages, GitLab Pages, Heroku, etc.
diff --git a/docs/blog/2018-07-07-graphic-design-class/index.md b/docs/blog/2018-07-07-graphic-design-class/index.md
index 579ed839cdd12..e0000a3915ae8 100644
--- a/docs/blog/2018-07-07-graphic-design-class/index.md
+++ b/docs/blog/2018-07-07-graphic-design-class/index.md
@@ -25,13 +25,13 @@ However, in his current class _nobody has dropped out_. And every single one of
[Melany Dierks](http://mywetpaintstudio.com/) ([source](https://github.com/reguv760/mmd-site2))
-[![Image of graphic designer's site](graphic-design-2.png)](http://myceevee.netlify.com/)
+[![Image of graphic designer's site](graphic-design-2.png)](https://myceevee.netlify.app/)
-[Khabarovsk](http://myceevee.netlify.com/) ([source](https://github.com/msergushova/myceevee))
+[Khabarovsk](https://myceevee.netlify.app/) ([source](https://github.com/msergushova/myceevee))
-[![Image of graphic designer's site](graphic-design-3.png)](https://trudesignsongatsby.netlify.com/)
+[![Image of graphic designer's site](graphic-design-3.png)](https://trudesignsongatsby.netlify.app/)
-[TruDesigns](https://trudesignsongatsby.netlify.com/) ([source](https://github.com/trudesigns/newStuff))
+[TruDesigns](https://trudesignsongatsby.netlify.app/) ([source](https://github.com/trudesigns/newStuff))
After our initial phone conversation, Phil responded to a series of interview questions via email.
diff --git a/docs/blog/2018-10-03-gatsby-perf/index.md b/docs/blog/2018-10-03-gatsby-perf/index.md
index ff2852cfcfe07..75079ccd62811 100644
--- a/docs/blog/2018-10-03-gatsby-perf/index.md
+++ b/docs/blog/2018-10-03-gatsby-perf/index.md
@@ -63,7 +63,7 @@ WebPagetest allows you to collect performance measurements in running on a _real
![WebPagetest](./images/webpagetest.png)
-Running a test in WebPagetest will pull up the specified site on the browser/network specified, and then collect performance measurements that can be reviewed and analyzed. These tests can serve as a baseline that can be compared against after changes are made, e.g. like a change in comparing the Gatsby v1 site to the Gatsby v2 site 🤓 Additionally, it's helpful to run these tests fairly often after meaningful changes and features are added to your web site, to ensure that you're guarding against performance regressions! For your consideration, check out Gatsby v1's metrics in WebPagetest.
+Running a test in WebPagetest will pull up the specified site on the browser/network specified, and then collect performance measurements that can be reviewed and analyzed. These tests can serve as a baseline that can be compared against after changes are made, e.g. like a change in comparing the Gatsby v1 site to the Gatsby v2 site 🤓 Additionally, it's helpful to run these tests fairly often after meaningful changes and features are added to your website, to ensure that you're guarding against performance regressions! For your consideration, check out Gatsby v1's metrics in WebPagetest.
[![WebPagetest v1](./images/webpagetest-v1.png)][webpagetestv1-results]
@@ -129,9 +129,9 @@ Gatsby v2 is an iterative approach to improving the solid foundational base that
[speed-index]: https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index
[lighthouse]: https://www.google.com/search?q=google+audit&ie=utf-8&oe=utf-8&client=firefox-b-1-ab
[gatsby-v1-repo]: https://github.com/dschau/gatsby-v1
-[gatsby-v1-netlify]: https://gatsby-v1-perf.netlify.com/
+[gatsby-v1-netlify]: https://gatsby-v1-perf.netlify.app/
[gatsby-v2-repo]: https://github.com/dschau/gatsby-v2
-[gatsby-v2-netlify]: https://gatsby-v2-perf.netlify.com/
+[gatsby-v2-netlify]: https://gatsby-v2-perf.netlify.app/
[gatsby-source-wordpress]: /packages/gatsby-source-wordpress
[gatsby-plugin-typescript]: /packages/gatsby-plugin-typescript
[migration-guide]: /docs/migrating-from-v1-to-v2/
diff --git a/docs/blog/2018-10-26-export-a-drupal-site-to-gatsby/index.md b/docs/blog/2018-10-26-export-a-drupal-site-to-gatsby/index.md
index 84b2130152c57..240573260af65 100644
--- a/docs/blog/2018-10-26-export-a-drupal-site-to-gatsby/index.md
+++ b/docs/blog/2018-10-26-export-a-drupal-site-to-gatsby/index.md
@@ -126,7 +126,7 @@ To have comments on your site you can use a service like [Disqus](https://disqus
```javascript
const Database = require("better-sqlite3")
const fs = require("fs")
-const yourSite = "http://username.github.io/yoursite/"
+const yourSite = "https://username.github.io/yoursite/"
if (process.argv.length < 3) {
usage()
diff --git a/docs/blog/2018-11-07-gatsby-for-apps/index.md b/docs/blog/2018-11-07-gatsby-for-apps/index.md
index 1fc6418043d1f..4b4201423da14 100644
--- a/docs/blog/2018-11-07-gatsby-for-apps/index.md
+++ b/docs/blog/2018-11-07-gatsby-for-apps/index.md
@@ -245,6 +245,6 @@ We can't wait to see what you build.
[gatsby-source-wordpress]: /packages/gatsby-source-wordpress/
[gatsby-transformer-yaml]: /packages/gatsby-transformer-yaml/
[gatsby-plugins]: /plugins
-[gatsby-mail-app]: https://gatsby-mail.netlify.com
+[gatsby-mail-app]: https://gatsby-mail.netlify.app
[gatsby-mail-repo]: https://github.com/dschau/gatsby-mail
[apollo-boost]: https://github.com/apollographql/apollo-client/tree/master/packages/apollo-boost
diff --git a/docs/blog/2018-12-04-per-link-gatsby-page-transitions-with-transitionlink/index.md b/docs/blog/2018-12-04-per-link-gatsby-page-transitions-with-transitionlink/index.md
index c4127326cf041..f72b1d37b6520 100644
--- a/docs/blog/2018-12-04-per-link-gatsby-page-transitions-with-transitionlink/index.md
+++ b/docs/blog/2018-12-04-per-link-gatsby-page-transitions-with-transitionlink/index.md
@@ -15,7 +15,7 @@ TransitionLink is a simple way of declaring a page transition via props on a Lin
TransitionLink is compatible with declarative react animation libraries like [react-pose](https://popmotion.io/pose/) and [react-spring](https://react-spring.surge.sh/). It's also compatible with imperative animation libraries like [gsap](https://greensock.com) and [anime.js](http://animejs.com/)
-Check it out [in use](https://gatsby-plugin-transition-link.netlify.com/).
+Check it out [in use](https://gatsby-plugin-transition-link.netlify.app/).
## The story
diff --git a/docs/blog/2018-12-17-turning-the-static-dynamic/index.md b/docs/blog/2018-12-17-turning-the-static-dynamic/index.md
index 8c47b5e89078e..f447de2eb0497 100644
--- a/docs/blog/2018-12-17-turning-the-static-dynamic/index.md
+++ b/docs/blog/2018-12-17-turning-the-static-dynamic/index.md
@@ -12,7 +12,7 @@ excerpt: Gatsby is great for not only static sites but also traditional web appl
> A: Gatsby can be used to build fully dynamic sites, which surprises some people because of it’s label as a “static site generator”. It’s fully equipped to be a powerful alternative to create-react-app and other similar solutions with the addition of easy pre-rendering and perf baked in. — biscarch
-Even though Dustin [recently wrote about Gatsby for Apps](/blog/2018-11-07-gatsby-for-apps/) and open sourced his [Gatsby Mail](https://gatsby-mail.netlify.com/) demo, I do still find people constantly having to explain that Gatsby is "not just for sites".
+Even though Dustin [recently wrote about Gatsby for Apps](/blog/2018-11-07-gatsby-for-apps/) and open sourced his [Gatsby Mail](https://gatsby-mail.netlify.app/) demo, I do still find people constantly having to explain that Gatsby is "not just for sites".
Today I'd like to show you how you can incrementally add functionality to a Gatsby static site with Netlify Functions, and then add authentication with Netlify Identity to begin a proper Gatsby app.
@@ -75,7 +75,10 @@ For more info or configuration options (e.g. in different branches and build env
4. **Proxy the emulated functions for local development**: Head to `gatsby-config.js` and add this to your `module.exports`:
```jsx:title=gatsby-config.js
-var proxy = require("http-proxy-middleware")
+const { createProxyMiddleware } = require("http-proxy-middleware") //v1.x.x
+// Use implicit require for v0.x.x of 'http-proxy-middleware'
+// const proxy = require('http-proxy-middleware')
+// be sure to replace 'createProxyMiddleware' with 'proxy' where applicable
module.exports = {
// for avoiding CORS while developing Netlify Functions locally
@@ -83,7 +86,7 @@ module.exports = {
developMiddleware: app => {
app.use(
"/.netlify/functions/",
- proxy({
+ createProxyMiddleware({
target: "http://localhost:9000",
pathRewrite: {
"/.netlify/functions/": "",
@@ -392,4 +395,4 @@ It's 5 steps each to turn your static Gatsby sites into dynamic, authenticated,
- **Code:** https://github.com/sw-yx/jamstack-hackathon-starter
- **Starter:** https://www.gatsbyjs.org/starters/jamstack-hackathon-starter
-- **Live Demo:** https://jamstack-hackathon-starter.netlify.com/
+- **Live Demo:** https://jamstack-hackathon-starter.netlify.app/
diff --git a/docs/blog/2019-02-11-gatsby-themes-livestream-and-example/index.md b/docs/blog/2019-02-11-gatsby-themes-livestream-and-example/index.md
index 029b62124b4be..3249c0a34eca9 100644
--- a/docs/blog/2019-02-11-gatsby-themes-livestream-and-example/index.md
+++ b/docs/blog/2019-02-11-gatsby-themes-livestream-and-example/index.md
@@ -45,7 +45,7 @@ The code we built is [available on GitHub](https://github.com/jlengstorf/livestr
- Post: [Introducing Gatsby Themes](/blog/2018-11-11-introducing-gatsby-themes/)
- Post: [Why Themes](/blog/2019-01-31-why-themes/)
- [`gatsby-plugin-page-creator`](/packages/gatsby-plugin-page-creator/)
-- [`gatsby-mdx` getting started docs](https://gatsby-mdx.netlify.com/getting-started)
+- [`gatsby-mdx` getting started docs](https://gatsby-mdx.netlify.app/getting-started)
- [`gatsby-source-filesystem`](/packages/gatsby-source-filesystem/)
- [John Otander on Twitter](https://twitter.com/4lpine)
- [Jason Lengstorf on Twitter](https://twitter.com/jlengstorf)
diff --git a/docs/blog/2019-02-26-getting-started-with-gatsby-themes/index.md b/docs/blog/2019-02-26-getting-started-with-gatsby-themes/index.md
index ed803b384a939..3312a1d6eccbe 100644
--- a/docs/blog/2019-02-26-getting-started-with-gatsby-themes/index.md
+++ b/docs/blog/2019-02-26-getting-started-with-gatsby-themes/index.md
@@ -95,7 +95,7 @@ You will want to make Gatsby, React, and ReactDom peer dependencies in the _them
> MDX is markdown for the component era. It lets you write JSX embedded inside markdown. That's a great combination because it allows you to use markdown's often terse syntax (such as # heading) for the little things and JSX for more advanced components.
-Read more about Gatsby+MDX [here.](https://gatsby-mdx.netlify.com/)
+Read more about Gatsby+MDX [here.](https://gatsby-mdx.netlify.app/)
In your _theme_ directory, add src/pages/index.mdx
diff --git a/docs/blog/2019-04-19-your-website-should-be-built-with-gatsby/index.md b/docs/blog/2019-04-19-your-website-should-be-built-with-gatsby/index.md
index 6fe5b8e41c204..cc7b549b3850b 100644
--- a/docs/blog/2019-04-19-your-website-should-be-built-with-gatsby/index.md
+++ b/docs/blog/2019-04-19-your-website-should-be-built-with-gatsby/index.md
@@ -34,7 +34,7 @@ We’ve covered the basics, stick around as we dive into the details.
### The Landscape
-We’ve grown high expectations for web sites since their humble beginnings in the early 90s. Primarily, most websites are attached to diverse set data sources - a Content Management System (CMS) like WordPress or Shopify, a social feed from Instagram or Twitter, or high-resolution images hosted in a repository like Cloudinary.
+We’ve grown high expectations for websites since their humble beginnings in the early 90s. Primarily, most websites are attached to diverse set data sources - a Content Management System (CMS) like WordPress or Shopify, a social feed from Instagram or Twitter, or high-resolution images hosted in a repository like Cloudinary.
This is fantastic, the CMS allows anyone to publish content to the web without having to continually hire a web developer. Pulling content from our social feeds means that we don’t have to duplicate content, and it promotes all the different mediums through which users can engage with our brand.
diff --git a/docs/blog/2019-07-03-using-themes-for-distributed-docs/index.md b/docs/blog/2019-07-03-using-themes-for-distributed-docs/index.md
index bba096832ed21..307bbce567e3a 100644
--- a/docs/blog/2019-07-03-using-themes-for-distributed-docs/index.md
+++ b/docs/blog/2019-07-03-using-themes-for-distributed-docs/index.md
@@ -45,7 +45,7 @@ Using [MDX](/docs/mdx/), we’re able to write rich documentation by including R
![Rendering components in MDX](./images/mdx-components.png)
-`gatsby-plugin-mdx` also allows us to replace Markdown elements with custom React components using the [`components` prop on the `MDXProvider` component](https://gatsby-mdx.netlify.com/api-reference/mdx-provider). We use this feature to enhance our code blocks with copy buttons, filenames, and multiple language options.
+`gatsby-plugin-mdx` also allows us to replace Markdown elements with custom React components using the [`components` prop on the `MDXProvider` component](https://gatsby-mdx.netlify.app/api-reference/mdx-provider). We use this feature to enhance our code blocks with copy buttons, filenames, and multiple language options.
![Enhanced code blocks](./images/code-blocks.gif)
diff --git a/docs/blog/2019-07-23-google-sheets-gatsby-acroyoga-video-explorer/index.md b/docs/blog/2019-07-23-google-sheets-gatsby-acroyoga-video-explorer/index.md
index 192450b7cae64..3a23a6508b14e 100644
--- a/docs/blog/2019-07-23-google-sheets-gatsby-acroyoga-video-explorer/index.md
+++ b/docs/blog/2019-07-23-google-sheets-gatsby-acroyoga-video-explorer/index.md
@@ -8,7 +8,7 @@ tags:
- gatsby-image
---
-I recently prototyped an [Acroyoga](https://en.wikipedia.org/wiki/Acroyoga)-focused side project, called ['AcroTags'](https://acrotagsgatsbyblog.netlify.com), using Gatsby and the Google Sheets API. The site was as fun to build and populate with data as it is to use for discovering Acroyoga videos. This post will explore why and how I made this site and cover the specific code I used to get Gatsby and Google Sheets to work nicely together. I hope this tutorial and the code samples allow you to quickly prototype your next idea using this very simple and powerful stack.
+I recently prototyped an [Acroyoga](https://en.wikipedia.org/wiki/Acroyoga)-focused side project, called ['AcroTags'](https://acrotagsgatsbyblog.netlify.app), using Gatsby and the Google Sheets API. The site was as fun to build and populate with data as it is to use for discovering Acroyoga videos. This post will explore why and how I made this site and cover the specific code I used to get Gatsby and Google Sheets to work nicely together. I hope this tutorial and the code samples allow you to quickly prototype your next idea using this very simple and powerful stack.
## Background on an Acroyoga obsession and the Need for a Video Explorer Site
@@ -20,7 +20,7 @@ I've long found it challenging to find just the right video to work on. Sometime
My requirements for this Acroyoga videos site is that it be simple to add data to, load fast on mobile, and be generally intuitive to use. For this reason, I'm using Gatsby (and of course, React) and the Google Sheets API for this site. This simple stack will allow me to build a fast loading application that consumes data from a Google Sheet.
-As such, this article will show how I built this site. I'll show only the code samples that are Gatsby and Google Sheets specific but you can see all of the code in this repo: https://github.com/kpennell/acrotagsgatsbyblog. Finally, if you want to check out the demo app, that can be found here: https://acrotagsgatsbyblog.netlify.com.
+As such, this article will show how I built this site. I'll show only the code samples that are Gatsby and Google Sheets specific but you can see all of the code in this repo: https://github.com/kpennell/acrotagsgatsbyblog. Finally, if you want to check out the demo app, that can be found here: https://acrotagsgatsbyblog.netlify.app.
## Creating a Basic Gatsby Setup with Material-UI
diff --git a/docs/blog/2019-08-07-theme-jam/index.md b/docs/blog/2019-08-07-theme-jam/index.md
index 89716387d3cd2..66363f8de0c1a 100644
--- a/docs/blog/2019-08-07-theme-jam/index.md
+++ b/docs/blog/2019-08-07-theme-jam/index.md
@@ -65,7 +65,7 @@ Two of the themes we received stood out especially. As we reviewed, we all took
Vojtěch combined data sourcing from [Simplecast](https://simplecast.com/)’s API, beautiful design, and an explorable UX to create this powerful theme for podcasters.
-**Check out the theme: [source code](https://github.com/vojtaholik/gatsby-theme-simplecast) · [demo](https://gatsby-theme-simplecast.netlify.com/)**
+**Check out the theme: [source code](https://github.com/vojtaholik/gatsby-theme-simplecast) · [demo](https://gatsby-theme-simplecast.netlify.app/)**
### Allan’s Prismic-Powered Legal Pages Theme
@@ -73,7 +73,7 @@ Vojtěch combined data sourcing from [Simplecast](https://simplecast.com/)’s A
Allan turned something boring (required legal pages) into something beautiful by pulling common legal pages — such as a “terms & conditions” page — from [Prismic](https://prismic.io/) and putting them into a gorgeous UI. This theme highlights theme composability: combine this theme with others to quickly add required legal pages to any Gatsby site!
-**Check out the theme: [source code](https://github.com/littleplusbig/gatsby-theme-legals-prismic) · [demo](https://gatsby-theme-legals.netlify.com/)**
+**Check out the theme: [source code](https://github.com/littleplusbig/gatsby-theme-legals-prismic) · [demo](https://gatsby-theme-legals.netlify.app/)**
## Thanks to the Entire Community
diff --git a/docs/blog/2019-09-26-announcing-gatsby-15m-series-a-funding-round/index.md b/docs/blog/2019-09-26-announcing-gatsby-15m-series-a-funding-round/index.md
index 0d866db55525b..e449b5142b60e 100644
--- a/docs/blog/2019-09-26-announcing-gatsby-15m-series-a-funding-round/index.md
+++ b/docs/blog/2019-09-26-announcing-gatsby-15m-series-a-funding-round/index.md
@@ -18,7 +18,7 @@ With Gatsby, we’re reinventing website technology so people can create sites t
Gatsby strips away much of the complexity that plagues website development. Teams tell us that they can build stunning sites 3-5x faster with Gatsby—and have a lot more fun in the process.
-The web is an incredible medium. Anyone, anywhere can produce a site and ship their ideas to the world. [Individuals, teams, and organizations are turning to Gatsby to create web sites and apps that stand out](https://www.gatsbyjs.org/blog/tags/case-studies)[.](https://www.gatsbyjs.org/blog/tags/case-studies)
+The web is an incredible medium. Anyone, anywhere can produce a site and ship their ideas to the world. [Individuals, teams, and organizations are turning to Gatsby to create websites and apps that stand out](https://www.gatsbyjs.org/blog/tags/case-studies)[.](https://www.gatsbyjs.org/blog/tags/case-studies)
## From the CMS to the content mesh
diff --git a/docs/blog/2019-11-14-announcing-gatsby-cloud/index.md b/docs/blog/2019-11-14-announcing-gatsby-cloud/index.md
index f1a2dfae85e67..998adb2b44f9f 100644
--- a/docs/blog/2019-11-14-announcing-gatsby-cloud/index.md
+++ b/docs/blog/2019-11-14-announcing-gatsby-cloud/index.md
@@ -55,7 +55,7 @@ Let's step back and discuss why we're building Gatsby and how our new Cloud plat
For most of the history of the web, the dominant web architecture has been the LAMP stack e.g., applications like WordPress. But the last decade has seen the rise of two enormous trends—cloud computing and JavaScript-rich web apps (driven by component frameworks like React). Gatsby was founded around the idea that web architectures are converging on these two ideas and will be foundational for decades to come.
-Gatsby provides the building blocks for a modern web site:
+Gatsby provides the building blocks for a modern website:
- **JavaScript Component Library**. Gatsby sites are React apps, so you can create high-quality, dynamic web apps, from blogs to e-commerce sites to user dashboards.
- **Load Data From Anywhere**. Gatsby pulls in data from any data source, whether it's Markdown files, a headless CMS like Contentful or WordPress, or a REST or GraphQL API. Use source plugins to load your data, then develop using Gatsby's uniform GraphQL interface.
diff --git a/docs/blog/2020-04-13-upgrading-to-jamstack-with-agility/index.md b/docs/blog/2020-04-13-upgrading-to-jamstack-with-agility/index.md
index e3467d5ee6f8f..aa35661859eea 100644
--- a/docs/blog/2020-04-13-upgrading-to-jamstack-with-agility/index.md
+++ b/docs/blog/2020-04-13-upgrading-to-jamstack-with-agility/index.md
@@ -241,7 +241,7 @@ async function handleRequest(request) {
let path = url.pathname
//secondary domain...
- const secDomain = "https://my-new-website.netlify.com"
+ const secDomain = "https://my-new-website.netlify.app"
if (
path == "/" || //redirect the home page...
diff --git a/docs/blog/2020-04-20-paulie-scanlons-journey-of-100-days/index.md b/docs/blog/2020-04-20-paulie-scanlons-journey-of-100-days/index.md
index c07976865a4bb..d2b7617048f15 100644
--- a/docs/blog/2020-04-20-paulie-scanlons-journey-of-100-days/index.md
+++ b/docs/blog/2020-04-20-paulie-scanlons-journey-of-100-days/index.md
@@ -46,11 +46,11 @@ I believe this project has legs, but I also need to do a bit more work on it bef
## 2. gatsby-theme-terminal
-This was my second attempt at developing a theme and after making a bit of a mess of my first one [gatsby-theme-gatstats](https://gatsby-theme-gatstats.netlify.com/) I went back to the drawing board and decided to see if it was possible to write a theme with **zero components**. This is an odd concept if you're coming form WordPress, but with this theme all I'm providing are some neat little data components that help you query the nodes from GraphQL. Plus a very light skin that styles all markdown and all components provided by Theme UI Components. If you've read above about Skin UI this theme is essentially Skin UI but with some extra bits thrown in.
+This was my second attempt at developing a theme and after making a bit of a mess of my first one [gatsby-theme-gatstats](https://gatsby-theme-gatstats.netlify.app/) I went back to the drawing board and decided to see if it was possible to write a theme with **zero components**. This is an odd concept if you're coming form WordPress, but with this theme all I'm providing are some neat little data components that help you query the nodes from GraphQL. Plus a very light skin that styles all markdown and all components provided by Theme UI Components. If you've read above about Skin UI this theme is essentially Skin UI but with some extra bits thrown in.
Having worked on Gatsby Themes for about a year now I think this approach can be really powerful. Component shadowing is awesome, don't get me wrong, but if you decouple the "components" from a theme and just provide _data_ and _styles_ the user then has full control over their UI. No more hacking over the top of CSS and no real need to shadow a "component" to change the way it looks or functions. This approach means you can just build anything you want using the components from Theme UI and boom 💥 you've got yourself a totally custom blog, site or application.
-[View demo](https://gatsby-theme-terminal.netlify.com/) |
+[View demo](https://gatsby-theme-terminal.netlify.app/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-theme-terminal) |
[Blog post](https://paulie.dev/posts/2020/02/gatsby-theme-terminal/)
@@ -58,7 +58,7 @@ Having worked on Gatsby Themes for about a year now I think this approach can be
## 3. gatsby-starter-terminal
-It seems fitting that if I want folks to use my theme: [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.com/) I should give them a helping hand. So here's a starter to... er... get you started 🤗
+It seems fitting that if I want folks to use my theme: [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.app/) I should give them a helping hand. So here's a starter to... er... get you started 🤗
It's a pretty bare bones example of how to use the theme but it does demonstrate how to use component shadowing for the logo and how to provide a custom Theme UI object to style the theme your way. _I believe the 2 stars it has on GitHub speak for themselves_ 🌟😂.
@@ -80,7 +80,7 @@ I've created a [PR](https://github.com/system-ui/theme-ui/pull/669) for Theme UI
(If anyone in Gatsby Admin happens to read this, again, I'm available to help build it.)
-[View demo](https://gatsby-plugin-prop-shop.netlify.com/prop-shop/) |
+[View demo](https://gatsby-plugin-prop-shop.netlify.app/prop-shop/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-plugin-prop-shop) |
[Blog post](https://paulie.dev/posts/2020/02/prop-shop/)
@@ -104,7 +104,7 @@ Spotting a gap in the market I developed this plugin to bring all the same embed
That's all possible with this plugin. There are few shortcomings with the way the props are required for each of the components and I do hope to develop this further so it's easier to use but for now if you want to embed Twitter, YouTube Instagram and many more in to your `.mdx` without imports, this is the plugin for you!
-[View Demo](https://gatsby-mdx-embed.netlify.com/) |
+[View Demo](https://gatsby-mdx-embed.netlify.app/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-mdx-embed) |
[Blog post](https://paulie.dev/posts/2020/01/gatsby-mdx-embed/)
@@ -116,7 +116,7 @@ OK, true confession, I started building this plugin before the challenge came ab
This plugin was a head first dive into the [Markdown Abstract Syntax Tree](https://github.com/syntax-tree/mdast) and allowed me to understand what markdown and MDX do under the hood. Using visitor patterns I was able to bring responsive mobile first layouts to tired old single column markdown files.
-[View Demo](https://gatsby-remark-grid-system.netlify.com/) |
+[View Demo](https://gatsby-remark-grid-system.netlify.app/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-remark-grid-system) |
[Blog post](https://paulie.dev/posts/2019/12/26/gatsby-remark-grid-system/)
@@ -124,13 +124,13 @@ This plugin was a head first dive into the [Markdown Abstract Syntax Tree](https
## 8. gatsby-mdx-routes
-Again, officially speaking, I started this plugin before the challenge started. However, I did continue to develop it over the course of the 100 days and released multiple updates as new requirements became clear. I've also used this plugin in my theme [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.com/).
+Again, officially speaking, I started this plugin before the challenge started. However, I did continue to develop it over the course of the 100 days and released multiple updates as new requirements became clear. I've also used this plugin in my theme [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.app/).
-Extracting navigation routes for locally sourced `.mdx` files using GraphQL in your project isn't a huge task in itself. But I try to be helpful, so this plugin aims to separate the business logic of _finding_, _sorting_ and _listing_ routes from _styling_ those routes as links or lists. It was the start of my thinking process about separation of concerns which I then used more effectively in [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.com/)
+Extracting navigation routes for locally sourced `.mdx` files using GraphQL in your project isn't a huge task in itself. But I try to be helpful, so this plugin aims to separate the business logic of _finding_, _sorting_ and _listing_ routes from _styling_ those routes as links or lists. It was the start of my thinking process about separation of concerns which I then used more effectively in [gatsby-theme-terminal](https://gatsby-theme-terminal.netlify.app/)
There are a few areas where it doesn't quite perform, namely in the recursive pattern, but developing this plugin really enhanced my JavaScript knowledge. And, dare I say it, but I think I finally understand [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)
-[View Demo](https://gatsby-mdx-routes.netlify.com/) |
+[View Demo](https://gatsby-mdx-routes.netlify.app/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-mdx-routes) |
[Blog post](https://paulie.dev/posts/2019/12/12/gatsby-mdx-routes/)
@@ -144,7 +144,7 @@ I developed this plugin back in December 2019 and as my following grew so to did
So if you do want big tables in your blog but don't want neverending page scrolls, then keep it sticky with [gatsby-remark-sticky-table](https://github.com/PaulieScanlon/gatsby-remark-sticky-table)
-[View Demo](https://gatsby-remark-sticky-table.netlify.com/) |
+[View Demo](https://gatsby-remark-sticky-table.netlify.app/) |
[GitHub](https://github.com/PaulieScanlon/gatsby-remark-sticky-table) |
[Blog post](https://paulie.dev/posts/2019/11/24/gatsby-remark-sticky-table/)
@@ -160,8 +160,8 @@ Knowing what I know now, post my 100 Days journey, I think it's time to retire t
(Apologies in advance if you're using this theme. They'll be an update soon about how to migrate).
-[View Demo](https://gatsby-theme-gatstats.netlify.com/) |
-[Storybook](https://gatsby-theme-gatstats.netlify.com/storybook/)
+[View Demo](https://gatsby-theme-gatstats.netlify.app/) |
+[Storybook](https://gatsby-theme-gatstats.netlify.app/storybook/)
[GitHub](https://github.com/PaulieScanlon/gatsby-theme-gatstats) |
[Blog post](https://paulie.dev/posts/2019/11/12/gatsby-theme-gatstats/)
diff --git a/docs/blog/2020-05-12-strapi-instant-content-preview-plugin/index.md b/docs/blog/2020-05-12-strapi-instant-content-preview-plugin/index.md
index 0a8412a92c11a..b2dfc4beee5b2 100644
--- a/docs/blog/2020-05-12-strapi-instant-content-preview-plugin/index.md
+++ b/docs/blog/2020-05-12-strapi-instant-content-preview-plugin/index.md
@@ -15,9 +15,9 @@ tags:
Strapi is the #1 open source headless CMS frontend developers all over the world love. You can easily and quickly manage your content through an API and it's made entirely with Node & React. Gatsby developers will feel right at home in a Javascript environment that they know like the back of their hand.
-A lot of developers in the community are already familiar with setting up Gatsby with Strapi, and happy with how easy it is to combine the two. People really appreciate how [the Gatsby source plugin](https://www.gatsbyjs.org/packages/gatsby-source-strapi/) works great for easily and seamlessly pulling any Strapi content into any Gatsby application.
+A lot of developers in the community are already familiar with setting up Gatsby with Strapi, and happy with how easy it is to combine the two. People really appreciate how [the Gatsby source plugin](/packages/gatsby-source-strapi/) works great for easily and seamlessly pulling any Strapi content into any Gatsby application.
-However, with the arrival of [Gatsby Preview](<[https://www.gatsbyjs.com/preview/](https://www.gatsbyjs.com/preview/)>), things got even better between Strapi and Gatsby!
+However, with the arrival of [Gatsby Preview](https://www.gatsbyjs.com/preview/), things got even better between Strapi and Gatsby!
Gatsby Preview gives you a live URL where you can see changes made in a CMS before publishing -- sort of like “hot reloading” but for content editing! To take maximum advantage of Preview, then, we shipped a new version of our original using [Strapi Webhooks](https://strapi.io/blog/webhooks) to instantly rebuild Gatsby applications on Gatsby Cloud as content changes. No manual rebuilds -- create, update or delete content and then instantly see what it really looks like to end users.
@@ -50,7 +50,7 @@ Now it's time to deploy your Gatsby app!
![https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/create-a-new-site.png](https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/create-a-new-site.png "Gatsby Cloud landing page with selected option")
-(Deploying your Gatsby site on Gatsby Cloud means builds are now faster than ever, thanks to Gatsby's brand new [Incremental Builds feature](https://www.gatsbyjs.org/blog/2020-04-22-announcing-incremental-builds/) for data changes!
+(Deploying your Gatsby site on Gatsby Cloud means builds are now faster than ever, thanks to Gatsby's brand new [Incremental Builds feature](/blog/2020-04-22-announcing-incremental-builds/) for data changes!
2. When asked to select the repository you want to use:
@@ -62,9 +62,9 @@ Now it's time to deploy your Gatsby app!
![https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/skip.png](https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/skip.png "screen shot of sample cut and paste webhook url")
-4. Paste your Strapi `API_URL` for both of your Builds Environment variables and Preview Environment variables. That usually means pasting the url of your Strapi instances deployed on Heroku (eg: https://your-app.herokuapp.com)
+4. Paste your Strapi `API_URL` for both of your Builds Environment variables and Preview Environment variables. That usually means pasting the url of your Strapi instances deployed on Heroku (eg: `https://your-app.herokuapp.com`)
-_Note: Be sure to paste your Heroku url without the trailing slash (eg: "https://your-app.herokuapp.com" and not "https://your-app.herokuapp.com/")._
+_Note: Be sure to paste your Heroku url without the trailing slash (eg: `https://your-app.herokuapp.com` and not `https://your-app.herokuapp.com/`)._
![https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/env.png](https://raw.githubusercontent.com/strapi/strapi-starter-gatsby-blog/master/medias/env.png "screen shot of environment variables form")
diff --git a/docs/blog/2020-05-21-gatsby-recipes/index.md b/docs/blog/2020-05-21-gatsby-recipes/index.md
index 30113ed5af976..040458385370e 100644
--- a/docs/blog/2020-05-21-gatsby-recipes/index.md
+++ b/docs/blog/2020-05-21-gatsby-recipes/index.md
@@ -15,7 +15,7 @@ Recipes can be used to automate npm installs, run npm scripts, add config option
Gatsby ships with a number of default Recipes, but it’s also really easy to create your own! In this post we are going to look at writing a Recipe to install `gatsby-plugin-google-analytics` and add it to your project’s plugins. But first let’s take a look at why Recipes are so very useful and how I got started with doing some for tasks I found particularly taxing.
-(You can read more about Recipes [here](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/), the experimental README is [here](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-recipes/README.md) and, to track the conversation, [here’s](https://github.com/gatsbyjs/gatsby/issues/22991) the Umbrella Issue on GitHub).
+(You can read more about [Recipes](/blog/2020-04-15-announcing-gatsby-recipes/), the experimental [README](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-recipes/README.md) and, to track the conversation, [the Umbrella Issue on GitHub](https://github.com/gatsbyjs/gatsby/issues/22991)).
## Recipes: What’s all the fuss about?
@@ -25,10 +25,10 @@ I’m a React UI Developer and I work on a lot of Greenfield Component Library b
To get the two playing nicely together it requires a little under the hood knowledge about Gatsby and Storybook, and this knowledge supplies the foundation for writing a Recipe to handle it:
-- Gatsby is written in ES6 and isn’t transpiled to CommonJs until either the `gatsby develop` or `gatsby build` processes are run.
-- Storybook requires all module code to be transpiled to CommonJs
+- Gatsby is written in ES6 and isn’t transpiled to CommonJS until either the `gatsby develop` or `gatsby build` processes are run.
+- Storybook requires all module code to be transpiled to CommonJS.
-The problem here is when you run Storybook it has no knowledge of the Gatsby build processes and will only transpile “your” ES6 code to CommonJs. This is mostly fine apart from when you attempt to create a story for a Gatsby component, or a story that embeds or composes a Gatsby component. One such component is ``
+The problem here is when you run Storybook it has no knowledge of the Gatsby build processes and will only transpile “your” ES6 code to CommonJS. This is mostly fine apart from when you attempt to create a story for a Gatsby component, or a story that embeds or composes a Gatsby component. One such component is ``
For example:
@@ -38,7 +38,7 @@ import { Link } from ‘gatsby’
The reason this will cause Storybook to error is because the `` component comes from Gatsby / `node_modules` which, as mentioned above, is (as yet) un-transpiled ES6 code.
-Storybook has anticipated this issue, fortunately, and so there is a method whereby you can write your own Webpack config and pass it on to combine it with the default Storybook Webpack config. This then aids in the transpiling of any ES6 code located in `node_modules` to CommonJs.
+Storybook has anticipated this issue, fortunately, and so there is a method whereby you can write your own webpack config and pass it on to combine it with the default Storybook webpack config. This then aids in the transpiling of any ES6 code located in `node_modules` to CommonJS.
If (like me) Webpack scares you a little bit, you’ll likely want to avoid writing any Webpack config and just get on with developing your UI. You could try not creating any `.stories` that include a `` component but this will only get you so far.
@@ -52,17 +52,17 @@ And if (like me) Babel also scares you a little bit, you might be having a think
## Recipes to the rescue
-It’s for precisely this reason I created two of my own Recipes to automate the setup of Storybook and its Webpack config for both JavaScript and TypeScript Gatsby projects.
+It’s for precisely this reason I created two of my own Recipes to automate the setup of Storybook and its webpack config for both JavaScript and TypeScript Gatsby projects.
If you haven’t installed the latest Gatsby CLI run this 👇
-```sh
+```shell
npm install -g gatsby-cli@latest
```
Now you can now run 👇
-```sh
+```shell
gatsby recipes
```
@@ -82,15 +82,15 @@ If you’re interested, here is where you can read more about my Recipes👇
## Fancy writing your own Recipe?
-The Recipe we’re going to write will install `gatsby-plugin-google-analytics` and add it to the plugins array in `gatsby-config.js`
+The Recipe we’re going to write will install `gatsby-plugin-google-analytics` and add it to the plugins array in `gatsby-config.js`.
This recipe will utilize two of the Recipe components/providers. The first is `` the second is ``
-You can read more about the components/providers [here](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-recipes/README.md#developing-recipes)
+You can read more about the components/providers in the [Gatsby Recipes README](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-recipes/README.md#developing-recipes).
To get things started you can clone this bare bones repo which has just the bits we need to create and test your very first Recipe:
-```sh
+```shell
git clone https://github.com/PaulieScanlon/gatsby-recipe-google-analytics.git
```
@@ -98,12 +98,10 @@ Or clone from the repo here: [https://github.com/PaulieScanlon/gatsby-recipe-goo
Once you have the repo cloned locally, create a new file at the root of the project and call it `gatsby-recipe-ga.mdx` and add the following MDX
-```javascript
-// gatsby-recipe-ga.mdx
-
+```mdx:title=gatsby-recipe-ga.mdx
# Add `gatsby-plugin-google-analytics` to Gatsby Project
-More info about the plugin can be found here: 👉 [gatsby-plugin-google-analytics](https://www.gatsbyjs.org/packages/gatsby-plugin-google-analytics/)
+More info about the plugin can be found here: 👉 [gatsby-plugin-google-analytics](/packages/gatsby-plugin-google-analytics/)
---
@@ -140,15 +138,14 @@ All done: 🍻
Head over to `gatsby-config.js` to complete the setup by amending or removing the plugin options. You will need a Google Analytics `trackingId`
-You can read more about how to use the plugin here: 👉 [How to use](https://www.gatsbyjs.org/packages/gatsby-plugin-google-analytics/#how-to-use)
-
+You can read more about how to use the plugin here: 👉 [How to use](/packages/gatsby-plugin-google-analytics/#how-to-use)
```
## Running your first Recipe
Now that you’ve written your first Recipe, it’s time to run it! 👇
-```sh
+```shell
gatsby recipes ./gatsby-recipe-ga.mdx
```
@@ -164,7 +161,7 @@ Imagine if Recipes could be used over and over again to automate really monotono
One such task might be creating new components. On any typical project this would be my component setup preference.
-```javascript
+```text
├─ ComponentName
└─ index.ts
└─ ComponentName.tsx
@@ -174,11 +171,11 @@ One such task might be creating new components. On any typical project this woul
Of course within each of those files are a number of imports, exports, interfaces, function declarations and tests. Doing this each and every time you create a new component is tedious and can sometimes be prone to human error.
-Also, and especially on larger teams, these preferences for how files should be named -- and/or how the imports, exports and declarations should be written is rarely documented in a “style guide” because that alone is also a rather tiresome task! but in my experience it's something that's rather crucial to have "locked down" at the start of a project.
+Also, and especially on larger teams, these preferences for how files should be named -- and/or how the imports, exports and declarations should be written is rarely documented in a “style guide” because that alone is also a rather tiresome task! But in my experience it's something that's rather crucial to have "locked down" at the start of a project.
In early 2018 I attempted to solve this problem by creating a node module aimed at automating the React “component” creation process, [node-tiny-template](https://www.npmjs.com/package/node-tiny-template):
-![landing page for the Node Tiny Template](node-tiny-template.jpg "Node Tiny Template")
+![landing page for the Node Tiny Template](./node-tiny-template.jpg "Node Tiny Template")
The CLI args allow you to pass in the “component name” which can then be used for the function declaration, the imports, the exports and test names, etc.
diff --git a/docs/blog/2020-05-22-happy-fifth-bday-gatsby/index.md b/docs/blog/2020-05-22-happy-fifth-bday-gatsby/index.md
index d6034f46dd7a0..97b256a7aab7f 100644
--- a/docs/blog/2020-05-22-happy-fifth-bday-gatsby/index.md
+++ b/docs/blog/2020-05-22-happy-fifth-bday-gatsby/index.md
@@ -11,8 +11,8 @@ tags:
The web is an incredible place. I’m so happy I get to help build it. I’ve been building websites and web apps for a long time now, and I spent a lot of that time thinking about and experimenting with what a perfect toolset for building for the web would look like. Five years ago those thoughts coalesced into the unveiling of a nascent framework I had decided to call Gatsby:
-> There's a lot of static site generators out there and I've played with several and written my own for my blog. They're all pretty much the same and not particularly interesting. I think a React.js based SSG can push the state of the art in three ways — easy no-page transitions, react.js style components, and leveraging the growing react.js ecosystem of tools and components.
-> Most stuff on the web are sites, not apps. And react.js components are just as powerful for sites as they are for apps so a kickass tool for building react.js sites would be very valuable.
+> There's a lot of static site generators out there and I've played with several and written my own for my blog. They're all pretty much the same and not particularly interesting. I think a React based SSG can push the state of the art in three ways — easy no-page transitions, React style components, and leveraging the growing React ecosystem of tools and components.
+> Most stuff on the web are sites, not apps. And React components are just as powerful for sites as they are for apps so a kickass tool for building React sites would be very valuable.
-- Opened as Issue #1, “Braindump of ideas,” by @KyleAMathews on the brand new Gatsbyjs/Gatsby GitHub repo, May 22, 2015.
@@ -32,7 +32,7 @@ So I set out to create a framework that would be:
- No reload page transitions. The initial html page would load followed quickly by a js bundle with the content for the rest of the site.
- Smart code splitting
- Themes that are installable separately
-- Support for markdown/Asciidoctor/other text formats
+- Support for Markdown/Asciidoctor/other text formats
- Plugins support
- Hot reloading built in
- A Docker image that autobuilds/server site.
@@ -42,17 +42,17 @@ Some of these things, ok lots of these things, are well known and appreciated pa
## Contemplating composable websites
-A couple months after that Issue #1 braindump I was messing around with an issue in the Reduxjs/redux repo -- discussing the possibility of using a static site generator to spin up a site to host Redux documentation on GH pages. The conversation led to another turning point moment in Gatsby’s evolution:
+A couple months after that Issue #1 braindump I was messing around with an issue in the `reduxjs/redux` repo -- discussing the possibility of using a static site generator to spin up a site to host Redux documentation on GitHub Pages. The conversation led to another turning point moment in Gatsby’s evolution:
> Woah. Just had an idea. What do you think about the idea of "composable" websites? Gatsby is already doing this to some extent as it has fallbacks for most critical files you need, though you can override them easily. But we could extend that concept further to something like Object.assign(Gatsby, website_base, actual_website).
-> So in practice how this would work is there'd be a base documentation site hosted on github. When you want a new docs site you'd just set the github url for the base site and then start adding markdown files. Anything else you'd want to modify could be set in the site config file.
+> So in practice how this would work is there'd be a base documentation site hosted on GitHub. When you want a new docs site you'd just set the GitHub url for the base site and then start adding Markdown files. Anything else you'd want to modify could be set in the site config file.
-This idea of “composable” websites eventually resulted in Gatsby Themes, plugins that include a gatsby-config.js file and add pre-configured functionality, data sourcing, and/or UI code to Gatsby sites. Essentially, modules that can be put together to form a single, holistic Gatsby site. Which in turn led to Gatsby Recipes as a way to address the challenge of translating an idea -- “I want to do x” -- to how “x” is done in Gatsby. Recipes help users take the literally thousands of plugins and themes that the Gatsby open source ecosystem now offers, and apply them to accomplishing desired tasks in the CLI while also enabling them to automate the process.
+This idea of “composable” websites eventually resulted in Gatsby Themes, plugins that include a `gatsby-config.js` file and add pre-configured functionality, data sourcing, and/or UI code to Gatsby sites. Essentially, modules that can be put together to form a single, holistic Gatsby site. Which in turn led to Gatsby Recipes as a way to address the challenge of translating an idea -- “I want to do x” -- to how “x” is done in Gatsby. Recipes help users take the literally thousands of plugins and themes that the Gatsby open source ecosystem now offers, and apply them to accomplishing desired tasks in the CLI while also enabling them to automate the process.
Gatsby is a great tool for so very many diverse and creative projects and it has been a genuine thrill over the past five years to see what's been built with it. And how many people have been busy building: as of now, our repo shows there are 200k public Gatsby sites on GitHub. 200k / ( 365 days \* 5 years old) = 110 sites a day 🎉!
-![screen shot of user count on gatsby github repository](https://lh6.googleusercontent.com/m_BAZRYXtxDgy4f4oxrtxMgtbGnIxlCpfXJUHS6oCoE_c1kTOslsjJFvJ1wKWkYjvWkwbIJuNBnNng78Z5je9se6KDleT5YEatR7N-0-NTB-VFLvfu3s-4CN7RTcIRMVZ6GOM55P)
+![Screen shot of user count on Gatsby GitHub repository](https://lh6.googleusercontent.com/m_BAZRYXtxDgy4f4oxrtxMgtbGnIxlCpfXJUHS6oCoE_c1kTOslsjJFvJ1wKWkYjvWkwbIJuNBnNng78Z5je9se6KDleT5YEatR7N-0-NTB-VFLvfu3s-4CN7RTcIRMVZ6GOM55P)
## Many hands
@@ -71,4 +71,4 @@ It’s truly exciting to look back to see how far we have come in the last five
So no matter what happens over the next five years, there are things that will not alter. Gatsby the open source framework is always going to be open source. Always going to be free, always going to be supported, and always with the community as co-pilot.
-_Ready to dive in for even more Gatsby goodness? Join us at our first-ever virtual Gatsby Days, two half days of speakers, demos, and All Things Gatsby coming up on June 2 & 3rd. Register now: https://www.gatsbyjs.com/virtual-gatsby-days-registration/_
+_Ready to dive in for even more Gatsby goodness? Join us at our first-ever Virtual Gatsby Days, two half days of speakers, demos, and All Things Gatsby coming up on June 2 & 3rd. Register now: https://www.gatsbyjs.com/virtual-gatsby-days-registration/_
diff --git a/docs/blog/2020-05-27-announcing-series-b-funding/index.md b/docs/blog/2020-05-27-announcing-series-b-funding/index.md
index ac23a7f9a79ab..d0df2c2b23545 100644
--- a/docs/blog/2020-05-27-announcing-series-b-funding/index.md
+++ b/docs/blog/2020-05-27-announcing-series-b-funding/index.md
@@ -21,7 +21,7 @@ It's time for a new way to build the web.
Gatsby was designed from the very beginning as a decoupled architecture for building websites by quickly and seamlessly gluing together modular best-fit services. Acting as the orchestration layer, Gatsby lets developers access the most productive and powerful technologies and practices currently available -- tools like Git, React, and GraphQL for hyper-efficient API-propelled data exchange to create websites and apps that can run anywhere. Gatsby sites are inherently secure (no servers and no database equals almost no attack surface), instantly scalable, and performant out of the box.
-We're also revolutionizing the build process. Gatsby empowers front end developers to harness powerful methodologies like continuous deployment to build and iterate quickly, getting sites and features in front of users fast. Gatsby's open source framework is endlessly flexible and extensible, thanks to our enormous plugin ecosystem -- [over 2000 plugins](https://www.gatsbyjs.org/plugins/) and growing daily. Since Gatsby sites are faster to build and easier to change, experimentation becomes easy and low cost, opening the door to continuous innovation.
+We're also revolutionizing the build process. Gatsby empowers front end developers to harness powerful methodologies like continuous deployment to build and iterate quickly, getting sites and features in front of users fast. Gatsby's open source framework is endlessly flexible and extensible, thanks to our enormous plugin ecosystem -- [over 2000 plugins](/plugins/) and growing daily. Since Gatsby sites are faster to build and easier to change, experimentation becomes easy and low cost, opening the door to continuous innovation.
Our developer community is growing over 10 percent month-over-month, and over 200,000 sites on GitHub alone have been built with Gatsby. [Online academies like Udemy](https://www.techrepublic.com/article/top-5-workplace-learning-trends-in-2020/) are reporting that Gatsby is among the most popular emerging tech skills professionals are looking to learn. And devs are using these skills to build some seriously cool projects, both personal and professional. Visually driven sites like [Spotify.Design](https://spotify.design/) have come to Gatsby for blazing fast page loads on image-rich pages, while [Little Caesars](https://littlecaesars.com/), the third largest pizza delivery chain in the world, chose Gatsby to make sure hungry customers enjoy the fastest possible ordering experience.
@@ -29,7 +29,7 @@ Our developer community is growing over 10 percent month-over-month, and over 20
From the start, Gatsby was designed for building sites and apps that would be fast no matter where they run. After five years of refining Gatsby's open source framework, that goal has largely been satisfied...though we will of course continue working to capture every last possible microsecond of performance gain while helping teams make smart performance decisions.
-> Page speed performance is a key metric for us in delivering an unparalleled shopping experience. Using Gatsby has allowed us to increase our page performance by 5-10x -- an exponential improvement not only for our customers, but for our team too. -- **Jeff Gnatek, Head of engineering, Butcherbox**
+> Page speed performance is a key metric for us in delivering an unparalleled shopping experience. Using Gatsby has allowed us to increase our page performance by 5-10x -- an exponential improvement not only for our customers, but for our team too. -- **Jeff Gnatek, Head of engineering, ButcherBox**
To take these performance gains to the next level we launched [Gatsby Cloud](https://www.gatsbyjs.com/), specialized cloud infrastructure built for teams who want their Gatsby sites functioning at full potential. With features like real-time previews, seamless deployments, and parallelized builds, Gatsby Cloud grants serious velocity for both developers and content creators.
@@ -51,15 +51,15 @@ We also just launched [Willit.build](https://willit.build/), a website providing
**Easy administration**
-Gatsby needs to be easy to use, no matter where you're starting from. Gatsby can do an incredible number of things thanks to an ecosystem of thousands of plugins and themes. With this incredible variety, though, comes the challenge of discovering how exactly to go about executing your choices. Gatsby's vast documentation can answer almost any question, and also we've already mapped out many of the workflows you can do with Gatsby. Now, what if you could just tell Gatsby what it is you want to do, and voilà! A few clicks later, Gatsby gets it all set up and running for you. We've [released an experimental version of this as Gatsby Recipes](https://www.gatsbyjs.org/blog/2020-04-15-announcing-gatsby-recipes/) -- a user-friendly infrastructure-as-code inspired approach we're developing with the community.
+Gatsby needs to be easy to use, no matter where you're starting from. Gatsby can do an incredible number of things thanks to an ecosystem of thousands of plugins and themes. With this incredible variety, though, comes the challenge of discovering how exactly to go about executing your choices. Gatsby's vast documentation can answer almost any question, and also we've already mapped out many of the workflows you can do with Gatsby. Now, what if you could just tell Gatsby what it is you want to do, and voilà! A few clicks later, Gatsby gets it all set up and running for you. We've [released an experimental version of this as Gatsby Recipes](/blog/2020-04-15-announcing-gatsby-recipes/) -- a user-friendly infrastructure-as-code inspired approach we're developing with the community.
No matter what that future looks like, though, we will also continue to double down on improving our developer experience for those already comfortable administering Gatsby from the command line.
**Access for all**
-Ultimately, we want to make Gatsby usable for everyone -- we want all Gatsby users to feel like [you belong here](https://www.gatsbyjs.org/docs/gatsby-core-philosophy/#you-belong-here).
+Ultimately, we want to make Gatsby usable for everyone -- we want all Gatsby users to feel like [you belong here](/docs/gatsby-core-philosophy/#you-belong-here).
-This includes things like providing [built-in support](https://www.gatsbyjs.org/docs/making-your-site-accessible/) for features like [accessible routing](https://www.gatsbyjs.org/blog/2020-02-10-accessible-client-side-routing-improvements/) and regularly sharing [best practices on accessibility](https://www.youtube.com/watch?v=qmcclQ7UPLk) with the community. It also means expanding our support for other languages through [localizing our documentation](https://www.gatsbyjs.org/contributing/translation/), an effort that now has over 340 contributors across 22 languages working together.
+This includes things like providing [built-in support](/docs/making-your-site-accessible/) for features like [accessible routing](/blog/2020-02-10-accessible-client-side-routing-improvements/) and regularly sharing [best practices on accessibility](https://www.youtube.com/watch?v=qmcclQ7UPLk) with the community. It also means expanding our support for other languages through [localizing our documentation](/contributing/translation/), an effort that now has over 340 contributors across 22 languages working together.
Making Gatsby available to everyone also means including users who aren't as comfortable on the command line or with code. That is why we are working towards a low-code (or even eventually no-code) approach to Gatsby, including exploring GUI-based features like a [Desktop](https://github.com/gatsbyjs/gatsby/issues/4201) app and other visual interfaces like [Admin](https://github.com/gatsbyjs/gatsby/pull/22713) and [Blocks UI](https://blocks-ui.com/). The possibilities of where we can take this are endless, and we're looking forward to working with the community to define what an equally eloquent and powerful low-code experience will look like for the web.
@@ -69,19 +69,19 @@ One thing that remains unchanged since Day Zero is our commitment to open source
- **Open-source staffing level.** We now have 22 full-time employees working on open-source code and documentation -- roughly ⅓ of our full-time staff and ½ of our engineering staff.
-- **Continued development.** Since our Series A announcement, we've shipped [many](https://github.com/gatsbyjs/gatsby/pull/20729) [improvements](https://github.com/gatsbyjs/gatsby/pull/20102) to Gatsby, including [support for Incremental Builds](https://www.gatsbyjs.org/blog/2020-04-22-announcing-incremental-builds/) in Gatsby Cloud, [better offline support](https://twitter.com/gatsbyjs/status/1175063002015514626), [UI improvements to documentation](https://www.gatsbyjs.org/blog/2019-08-07-gazette-august/#learning), [structured logging](https://github.com/gatsbyjs/gatsby/pull/14973), [asset prefixing](https://www.gatsbyjs.org/docs/asset-prefix/), [schema rebuilding](https://github.com/gatsbyjs/gatsby/issues/18939), [accessibility improvements to routing](https://www.gatsbyjs.org/blog/2020-02-10-accessible-client-side-routing-improvements/), [improved screenreader support](https://github.com/gatsbyjs/gatsby/issues/5581#issuecomment-575752718), and more.
+- **Continued development.** Since our Series A announcement, we've shipped [many](https://github.com/gatsbyjs/gatsby/pull/20729) [improvements](https://github.com/gatsbyjs/gatsby/pull/20102) to Gatsby, including [support for Incremental Builds](/blog/2020-04-22-announcing-incremental-builds/) in Gatsby Cloud, [better offline support](https://twitter.com/gatsbyjs/status/1175063002015514626), [UI improvements to documentation](/blog/2019-08-07-gazette-august/#learning), [structured logging](https://github.com/gatsbyjs/gatsby/pull/14973), [asset prefixing](/docs/asset-prefix/), [schema rebuilding](https://github.com/gatsbyjs/gatsby/issues/18939), [accessibility improvements to routing](/blog/2020-02-10-accessible-client-side-routing-improvements/), [improved screenreader support](https://github.com/gatsbyjs/gatsby/issues/5581#issuecomment-575752718), and more.
- **Support the ecosystem.** We employ the lead maintainers of [MDX](https://mdxjs.com/), [WPGraphQL](https://www.wpgraphql.com/), and [GraphiQL](https://github.com/graphql/graphiql), so they can continue to work on key projects that benefit more than just Gatsby. In addition, we have an active [OpenCollective](https://opencollective.com/gatsbyjs) where we contribute to key open source projects we rely on.
-- **Commercialization.** We're building a sustainable revenue base to [support our thriving open source community](https://www.gatsbyjs.org/blog/2020-02-11-founding-organizations/) by providing teams and enterprises purpose-built infrastructure for running their Gatsby sites with [Gatsby Cloud](https://gatsbyjs.com).
+- **Commercialization.** We're building a sustainable revenue base to [support our thriving open source community](/blog/2020-02-11-founding-organizations/) by providing teams and enterprises purpose-built infrastructure for running their Gatsby sites with [Gatsby Cloud](https://gatsbyjs.com).
- **Access.** Gatsby's open source framework will always be free. We also offer a permanent free tier on Gatsby Cloud for individuals. This guarantees community access to the best platform for building and deploying Gatsby sites.
## Let's build together
-Community got us here. Gatsby's open source community has invested its endless creativity into creating plugins, Gatsby Themes, and new [Gatsby Recipes](https://www.gatsbyjs.org/docs/recipes/) to evolve and extend what's possible for devs to build with Gatsby.
+Community got us here. Gatsby's open source community has invested its endless creativity into creating plugins, Gatsby Themes, and new [Gatsby Recipes](/docs/recipes/) to evolve and extend what's possible for devs to build with Gatsby.
-At the same time, developers don't work alone: Creating and maintaining a website and its content is the work of many hands. Gatsby enables collaboration through an approach we call [the content mesh](https://www.gatsbyjs.org/blog/2018-10-04-journey-to-the-content-mesh/), so content creators, editors, designers and marketers can work with their favorite tools. Gatsby's integrations with CMSs like WordPress, Contentful, and Drupal mean that developers can build modern websites while preserving their content creators' specialized workflows.
+At the same time, developers don't work alone: Creating and maintaining a website and its content is the work of many hands. Gatsby enables collaboration through an approach we call [the content mesh](/blog/2018-10-04-journey-to-the-content-mesh/), so content creators, editors, designers and marketers can work with their favorite tools. Gatsby's integrations with CMSs like WordPress, Contentful, and Drupal mean that developers can build modern websites while preserving their content creators' specialized workflows.
The web is an incredible medium. Anyone, anywhere can produce a site and ship their ideas to the world. We're committed to making Gatsby the way to build on the web -- for everyone.. Security, performance, accessibility, and access to the tools and workflows you prefer should be the default for how the web is built, not afterthoughts.
diff --git a/docs/blog/2020-05-29-gazette/index.md b/docs/blog/2020-05-29-gazette/index.md
index 818787d5232b5..8a14e6dd43d62 100644
--- a/docs/blog/2020-05-29-gazette/index.md
+++ b/docs/blog/2020-05-29-gazette/index.md
@@ -19,7 +19,7 @@ In May we also announced our [series B round of funding round](/blog/2020-05-27-
Your content editors can now enjoy “instant preview” with Strapi and Gatsby Cloud! If you're new to Strapi, it’s a JavaScript-based, open source CMS. and a great pair for Gatsby projects. The Gatsby starter the Strapi team made for this project is gorgeous 😍 .
-![Strapi blog screenshot](/strapi-blog.png)
+![Strapi blog screenshot](./strapi-blog.png)
Give Strapi a try with [this step-by-step tutorial](/blog/2020-05-12-strapi-instant-content-preview-plugin/).
@@ -27,7 +27,7 @@ Give Strapi a try with [this step-by-step tutorial](/blog/2020-05-12-strapi-inst
The nice thing about running your project on Gatsby Cloud is that you can go to sleep, wake up, and your site builds have gotten faster without you having to do anything. We're like a CI/CD tooth fairy.
-For example, AgilityCMS is [seeing 5 second builds](https://twitter.com/AgilityCMS/status/1257711270532452354) for their own 500-page website! How can this be? Some say it's [unicorn magic](https://twitter.com/3cordguy/status/1257079916434251780).
+For example, Agility CMS is [seeing 5 second builds](https://twitter.com/AgilityCMS/status/1257711270532452354) for their own 500-page website! How can this be? Some say it's [unicorn magic](https://twitter.com/3cordguy/status/1257079916434251780).
Again, you can take a peek at our build time benchmarks at [Will It Build](https://willit.build).
@@ -39,7 +39,7 @@ Thanks to a [collaboration with the Chrome team](https://web.dev/granular-chunki
How? By bundling a dependency that is used in at least 2 pages, Gatsby can chunk them together so you don't have to download duplicate libraries over and over again.
-This won't benefit first-page load, but it improves page navigation as your site needs less Javascript for the next route. Gatsby projects like Ghost’s website saw a 35% reduction in the overall JavaScript they shipped to browsers.
+This won't benefit first-page load, but it improves page navigation as your site needs less JavaScript for the next route. Gatsby projects like Ghost’s website saw a 35% reduction in the overall JavaScript they shipped to browsers.
### Faster, and Faster Configuration
@@ -47,29 +47,29 @@ When we launched the alpha of Gatsby Recipes in April, it caused a stir in the W
If you missed the initial launch, Paul Scanlon can bring you up-to-speed with ["Gatsby Recipes - What’s All the Fuss About?"](/blog/2020-05-21-gatsby-recipes/). Also, since the launch there’s been an avalanche of official and community made Recipes, including scripts for configuring:
-- React libraries like[React Helmet](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/gatsby-plugin-react-helmet.mdx) and [Preact](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/preact.mdx)
+- React libraries like [React Helmet](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/gatsby-plugin-react-helmet.mdx) and [Preact](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/preact.mdx)
- Themes and Starters, like [gatsby-theme-blog](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/gatsby-theme-blog.mdx) and [gatsby-theme-notes-starter](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/gatsby-theme-notes.mdx)
- Advanced configs, like [headless WordPress](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/wordpress.mdx) and [Progressive WebApps](https://raw.githubusercontent.com/gatsbyjs/gatsby/master/packages/gatsby-recipes/recipes/pwa.mdx)
-Learn how to develop your own Gatsby Recipes [here](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes). And if you’re looking for ideas, I could really use a Recipe that spins up placeholder sites for all of the unused domains I purchased last year. And for all of the domains I’m going to purchase - and not use - this year.
+Learn how to develop your own Gatsby Recipes from the [Gatsby Recipes README](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-recipes). And if you’re looking for ideas, I could really use a Recipe that spins up placeholder sites for all of the unused domains I purchased last year. And for all of the domains I’m going to purchase - and not use - this year.
### TypeScript Support
Gatsby loves the TypeScript community. When you pass one of them, you know exactly what type of person you’re dealing with.
-This month we made the Gatsby Typescript plugin part of core Gatsby, so you no longer need to install it to enable TypeScript support in your project. Read our [updated TypeScrip docs](/docs/typescript/) and the Pull Request that enacted this change(https://github.com/gatsbyjs/gatsby/pull/23547). Also [join the Twitter conversation](https://twitter.com/gatsbyjs/status/1258427651066400768).
+This month we made the Gatsby TypeScript plugin part of core Gatsby, so you no longer need to install it to enable TypeScript support in your project. Read our [updated TypeScript docs](/docs/typescript/) and the Pull Request that enacted this change (https://github.com/gatsbyjs/gatsby/pull/23547). Also [join the Twitter conversation](https://twitter.com/gatsbyjs/status/1258427651066400768).
### GraphQL Tracing
-In may we continued to improve our error messaging (see example [here](https://github.com/gatsbyjs/gatsby/pull/24186) and [here](https://github.com/gatsbyjs/gatsby/pull/23741)). But what about slow GraphQL queries? Well, Gatsby now supports performance tracing using the opentracing standard. You can to [enable tracing for GraphQL queries](/docs/performance-tracing/). This is useful because it allows you to debug why querying may be slow in your Gatsby project.
+In may we continued to improve our error messaging (see example [here](https://github.com/gatsbyjs/gatsby/pull/24186) and [here](https://github.com/gatsbyjs/gatsby/pull/23741)). But what about slow GraphQL queries? Well, Gatsby now supports performance tracing using the OpenTracing standard. You can to [enable tracing for GraphQL queries](/docs/performance-tracing/). This is useful because it allows you to debug why querying may be slow in your Gatsby project.
## 👩🚀 New in the Gatsby Community
### Gatsby Days is June 2 - 3
-[Register to attend](https://www.gatsbyjs.com/resources/gatsby-days/) our first ever virtual Gatsby Days!
+[Register to attend](https://www.gatsbyjs.com/resources/gatsby-days/) our first ever Virtual Gatsby Days!
We have a superb [lineup of speakers](/blog/2020-05-13-virtual-gatsby-day-speakers/) from the Gatsby community. And you’ll hear from Gatsby co-founder Kyle Mathews about what’s coming next.
@@ -107,13 +107,13 @@ And special thanks to our long time community member, **Horacio Herrera** for ma
### Gatsby Themes & Plugins
-Many exciting Gatsby Themes and Plugins premiered in May. There was [Gatsby Theme Catalyst](https://www.gatsbyjs.org/blog/2020-05-14-introducing-gatsby-theme-catalyst/), Eric Howey exciting exploration in theme architecture. Aravind Balla [launched gatsby-theme-andy](https://twitter.com/aravindballa/status/1260878161920716804), an ambitious theme for power note-taking. And Trevor Harmon [dropped gatsby-theme-shopify-manager](https://thetrevorharmon.com/blog/introducing-gatsby-theme-shopify-manager), a living demonstration of the talk he delivered at Gatsby Days LA, [“Sell Things Fast With Gatsby and Shopify”](https://www.youtube.com/watch?v=tUtuGAFOjYI).
+Many exciting Gatsby Themes and Plugins premiered in May. There was [Gatsby Theme Catalyst](/blog/2020-05-14-introducing-gatsby-theme-catalyst/), Eric Howey exciting exploration in theme architecture. Aravind Balla [launched gatsby-theme-andy](https://twitter.com/aravindballa/status/1260878161920716804), an ambitious theme for power note-taking. And Trevor Harmon [dropped gatsby-theme-shopify-manager](https://thetrevorharmon.com/blog/introducing-gatsby-theme-shopify-manager), a living demonstration of the talk he delivered at Gatsby Days LA, [“Sell Things Fast With Gatsby and Shopify”](https://www.youtube.com/watch?v=tUtuGAFOjYI).
All of the Gatsby Themes above are worth using and studying to accelerate your own work!
### Azure Static Web Apps
-Microsoft debuted [Azure Static Web Apps](https://azure.microsoft.com/en-us/services/app-service/static/) at the Build Conference, and we're excited to see provide first-class support for Gatsby projects. Follow along our new doc so you can [deploy your Gatsby site to Azure](https://www.gatsbyjs.org/docs/deploying-to-azure/).
+Microsoft debuted [Azure Static Web Apps](https://azure.microsoft.com/en-us/services/app-service/static/) at the Build Conference, and we're excited to see provide first-class support for Gatsby projects. Follow along our new doc so you can [deploy your Gatsby site to Azure](/docs/deploying-to-azure/).
### GraphQL for WordPress is growing!
diff --git a/docs/blog/2020-06-11-you-belong-here-commitment/index.md b/docs/blog/2020-06-11-you-belong-here-commitment/index.md
new file mode 100644
index 0000000000000..76a4cd211fe64
--- /dev/null
+++ b/docs/blog/2020-06-11-you-belong-here-commitment/index.md
@@ -0,0 +1,46 @@
+---
+title: You Belong Here
+date: 2020-06-11
+author: Bianca Feliciano Nedjar
+excerpt: "This is a pivotal time for the fight against systemic racism and injustice in the US. It has also sparked a lot of difficult reflection and realizations from those of us who would be allies: the understanding that we all own a piece of this. That we can, and we must, do better. At Gatsby we have been asking ourselves some hard questions about how we need to change so we can become better allies."
+tags:
+ - announcements
+ - diversity-and-inclusion
+ - community
+---
+
+A little more than two weeks ago, George Floyd was murdered. The days since then have marked a pivotal moment in the fight against systemic racism and injustice in the United States. We've witnessed a broad and representative cross-section of Americans take to the streets day after day in peaceful protest, demanding change. We are watching our communities turn pain into reflection and start to hold themselves responsible, asking how we got here and how we move forward. And we are awakening to wide recognition that we all own a piece of this -- that we can, and we must, do better. At Gatsby we have been asking ourselves some hard questions about how we need to change so we can become better allies.
+
+It is no secret that the tech industry is primarily white and male. As an industry built around innovation and disruption, tech has failed to do either when it comes to advancing equity. Our sector has failed to ensure fairness in hiring practices and career development for gender and racial/ethnic minorities, and all other underrepresented groups. At the root of this problem are conscious and unconscious biases deeply ingrained in our systems and culture. Implicit biases that reinforce privilege and cause us to fear rather than accept our differences. Until we recognize the power of those biases, until we begin the hard work of naming and deconstructing them to build genuine equity in the workplace, nothing will change. It is not enough to stand in solidarity with those who have been historically disenfranchised. We must now actively work to ensure equity, opportunity and advancement and remove any barriers blocking the way. But how best to do this?
+
+This is the conversation we are having at Gatsby. And it's not a new one. We are fortunate to be a community of knowledgeable and passionate individuals who have worked to raise matters of inequity and call for accountability both within and outside of our organization. But in reckoning with the pain of the Black community we have come face to face with the ways we have failed to be the allies we want to be. By failing to actualize aggressive action within our our organization we have reinforced the inequality our team members experience outside of Gatsby. Worse, this failure diminishes the promise of psychological safety inherent in calling ourselves a community.
+
+We are ready to change from within, deeply and permanently.
+
+We don't have all the answers. In fact, we're still trying to ensure we are asking the right questions. What we do have right now, though, is humility. We have the humility to accept that we have fallen short of living our stated core value: You belong here. We have the humility to require more from ourselves and each other. And we have the humility to know that, even so, there are times we will falter or fail in that pursuit. Yet we are steadfast in our commitment to keep trying.
+
+So, where do we go from here? As we move forward we believe it is important to commit ourselves publicly to this work.
+
+## Our Commitment
+
+**We commit to inclusion:** To understanding and challenging our own biases so that we can create a community that promotes interpersonal risk-taking and protects everyone's ability to contribute meaningfully without fear of harm to their self image, status or career.
+
+- **We commit to bringing in the experts** and partnering with Diversity & Inclusion leaders to evaluate organizational needs. And then implement programming with the intent of deconstructing bias, facilitating meaningful conversations, and building the necessary skills to identify, address and correct exclusionary behaviors or inequitable practices in real time.
+
+- **We commit to creating safe spaces** for all team members to share and understand their experience, and empower each other to call for change when necessary, fostering psychological safety and creating a culture of feedback and candor.
+
+- **We commit to expanding our organizational identity** by incorporating and celebrating the culture and values of all Gatsbyites.
+
+- **We commit to evaluating policies** pertaining to compensation, performance reviews and career advancement to determine if there is disparate impact on the basis of gender, race/ethnicity, age, family status, mental health or other factors and taking action where needed.
+
+**We commit to diversity:** To building a community of individuals whose unique perspectives and skills enrich our collective identity and make us a more effective and powerful team.
+
+- **We commit to a data-driven assessment** of our full-cycle talent acquisition process. From job descriptions to compensation, we want to understand where we lose talent from underrepresented groups.
+
+- **We commit to making impactful changes** to our interviewing practices by experimenting with iterations of blind recruitment and the Rooney rule. We want to remove any and all obstacles to a fair and equitable recruitment process.
+
+- **We commit to refining our employer brand** to ensure that [our core values](https://www.gatsbyjs.org/docs/gatsby-core-philosophy/) are represented in every touchpoint in the recruitment process and that our approach is differentiated so that it speaks to the experiences of all identities. This will allow candidates to make the best decision for themselves when it comes to joining our team.
+
+To make these intentions are made visible both inside and outside of Gatsby, **we commit to building measurable objectives** by which to assess our progress in both diversity and inclusion so that we may hold ourselves accountable. And, finally, **we commit to periodically publishing the results** of these objectives to show the community what we are doing and continue to invite further conversations.
+
+This is in no way a final or finished statement, but rather the foundation of all the work to come. An initial step taken humbly in the hope that you will hold us accountable as we learn and grow in this process. We hope you join us in the journey. Because you belong here.
diff --git a/docs/blog/author.yaml b/docs/blog/author.yaml
index 520e1c9616754..483ee6368200d 100644
--- a/docs/blog/author.yaml
+++ b/docs/blog/author.yaml
@@ -430,3 +430,6 @@
bio: "Dad all the time, mental health therapist full time, web developer in my spare time. I listen and care."
avatar: avatars/eric-howey.jpg
twitter: "@erchwy"
+- id: Bianca Feliciano Nedjar
+ bio: "Director of Employee Engagement and Development at Gatsby; Likes consuming mass quantities of television and film, dining al fresco and Reddit."
+ avatar: avatars/bianca-nedjar.jpg
diff --git a/docs/blog/avatars/bianca-nedjar.jpg b/docs/blog/avatars/bianca-nedjar.jpg
new file mode 100644
index 0000000000000..2522cabe9a99c
Binary files /dev/null and b/docs/blog/avatars/bianca-nedjar.jpg differ
diff --git a/docs/blog/gatsbygram-case-study/index.md b/docs/blog/gatsbygram-case-study/index.md
index 4918955675c06..52de43cbbda8e 100644
--- a/docs/blog/gatsbygram-case-study/index.md
+++ b/docs/blog/gatsbygram-case-study/index.md
@@ -553,8 +553,8 @@ npm run develop
While writing this post I scraped a few accounts and published their resulting
"Gatsbygram" sites:
-- https://iceland-gatsbygram.netlify.com
-- https://tinyhouses-gatsbygram.netlify.com
+- https://iceland-gatsbygram.netlify.app
+- https://tinyhouses-gatsbygram.netlify.app
_With thanks to Sam Bhagwatt, Sunil Pai, Nolan Lawson, Nik Graf, Jeff Posnick,
and Addy Osmani for their reviews._
diff --git a/docs/docs/ab-testing-with-google-analytics-and-netlify.md b/docs/docs/ab-testing-with-google-analytics-and-netlify.md
index b78c2ae6de88c..3d31ee70196af 100644
--- a/docs/docs/ab-testing-with-google-analytics-and-netlify.md
+++ b/docs/docs/ab-testing-with-google-analytics-and-netlify.md
@@ -6,7 +6,7 @@ Learn how to create an A/B test (otherwise known as a split test) with Google An
## Creating an A/B test with Netlify
-An A/B test compares changes on a web page. If you are creating an A/B test with Netlify, you can [use multiple Git branches containing variations of your site](https://docs.netlify.com/site-deploys/split-testing/#run-a-branch-based-test). If you are not familiar with Git branches, visit the [Git Guide](http://rogerdudler.github.io/git-guide/), which explains Git in detail.
+An A/B test compares changes on a web page. If you are creating an A/B test with Netlify, you can [use multiple Git branches containing variations of your site](https://docs.netlify.com/site-deploys/split-testing/#run-a-branch-based-test). If you are not familiar with Git branches, visit the [Git Guide](https://rogerdudler.github.io/git-guide/), which explains Git in detail.
Let’s say you read on Twitter that users spend more time on webpages with blue headers. You have a hunch that this might be correct, but you want some data to verify this claim.
diff --git a/docs/docs/adding-page-transitions-with-plugin-transition-link.md b/docs/docs/adding-page-transitions-with-plugin-transition-link.md
index 71a7ccefe1dfc..7f4be77523508 100644
--- a/docs/docs/adding-page-transitions-with-plugin-transition-link.md
+++ b/docs/docs/adding-page-transitions-with-plugin-transition-link.md
@@ -38,7 +38,7 @@ import TransitionLink from "gatsby-plugin-transition-link"
## Predefined transitions
-You can use the `AniLink` component to add page transitions without having to define your own custom transitions. It's a wrapper around `TransitionLink` that provides 4 predefined transitions: `fade`, `swipe`, `cover`, and `paintDrip`. You can preview them at [this demo site](https://gatsby-plugin-transition-link.netlify.com/).
+You can use the `AniLink` component to add page transitions without having to define your own custom transitions. It's a wrapper around `TransitionLink` that provides 4 predefined transitions: `fade`, `swipe`, `cover`, and `paintDrip`. You can preview them at [this demo site](https://gatsby-plugin-transition-link.netlify.app/).
To use AniLink, you will need to install the `gsap` animation library:
@@ -165,6 +165,6 @@ As always, check out [the installation docs](https://transitionlink.tylerbarnes.
- [Official documentation](https://transitionlink.tylerbarnes.ca/docs/)
- [Source code for plugin](https://github.com/TylerBarnes/gatsby-plugin-transition-link)
-- [Demo site](https://gatsby-plugin-transition-link.netlify.com/)
+- [Demo site](https://gatsby-plugin-transition-link.netlify.app/)
- [Blog post: 'Per-Link Gatsby page transitions with TransitionLink'](/blog/2018-12-04-per-link-gatsby-page-transitions-with-transitionlink/)
- [Using transition-link with react-spring](https://github.com/TylerBarnes/gatsby-plugin-transition-link/issues/34)
diff --git a/docs/docs/adding-pagination.md b/docs/docs/adding-pagination.md
index deaf68bbfef6d..8fbb6df1c47aa 100644
--- a/docs/docs/adding-pagination.md
+++ b/docs/docs/adding-pagination.md
@@ -128,6 +128,6 @@ The path for the first page is `/blog`, following pages will have a path of the
## Other resources
-- Follow this [step-by-step tutorial](https://nickymeuleman.netlify.com/blog/gatsby-pagination/) to add links to the previous/next page and the traditional page-navigation at the bottom of the page
+- Follow this [step-by-step tutorial](https://nickymeuleman.netlify.app/blog/gatsby-pagination/) to add links to the previous/next page and the traditional page-navigation at the bottom of the page
- See [gatsby-paginated-blog](https://github.com/NickyMeuleman/gatsby-paginated-blog) [(demo)](https://nickymeuleman.github.io/gatsby-paginated-blog/) for an extension of the official [gatsby-starter-blog](https://github.com/gatsbyjs/gatsby-starter-blog) with pagination in place
diff --git a/docs/docs/audit-with-lighthouse.md b/docs/docs/audit-with-lighthouse.md
index d592c91373614..2b2b56b43e821 100644
--- a/docs/docs/audit-with-lighthouse.md
+++ b/docs/docs/audit-with-lighthouse.md
@@ -32,13 +32,13 @@ Once this starts, you can now view your site at `http://localhost:9000`.
Now run your first Lighthouse test.
-1. Open the site in Chrome (if you didn't already do so) and then open up the Chrome DevTools.
+1. Open the site in Chrome (if you didn't already do so) and then open up the Chrome DevTools. (Lighthouse is also available for Firefox from [Firefox Add-ons](https://addons.mozilla.org/en-GB/firefox/addon/google-lighthouse/). )
-2. Click on the "Audits" tab where you'll see a screen that looks like:
+2. Click on the "Audits" tab, this may be a "Lighthouse" tab depending on which version you are using. You should see a screen that looks like:
![Lighthouse audit start](./images/lighthouse-audit.png)
-3. Click "Perform an audit..." (All available audit types should be selected by default). Then click "Run audit". (It'll then take a minute or so to run the audit). Once the audit is complete, you should see results that look like this:
+3. Choose whether to audit on Mobile or Desktop and then click "Generate Report". You will also see a list of all available audits that you can choose to run for this report. Once the audit starts it'll take around a minute depending on the site speed and which audits were selected. When that is complete, you should see results that look like this:
![Lighthouse audit results](./images/lighthouse-audit-results.png)
diff --git a/docs/docs/building-a-contact-form.md b/docs/docs/building-a-contact-form.md
index 0e786ced61cb0..02ec86aac77cc 100644
--- a/docs/docs/building-a-contact-form.md
+++ b/docs/docs/building-a-contact-form.md
@@ -78,8 +78,9 @@ Setting this up only involves adding a few form attributes:
```diff:title=src/pages/contact.js
-