GraphQL Playground to showcase the power of GraphQL. Write your queries and documentation with MDX and display queries in an interactive GraphiQL window. It can source from your localhost or a remote URL (e.g. Codesandbox). Using the Gatsby Theme @lekoarts/gatsby-theme-graphql-playground
.
Also be sure to check out other Free & Open Source Gatsby Themes and my Personal Website.
- MDX for the navigation and content
- Automatically converts GraphQL code blocks with the meta field
preview
to live previews in a GraphiQL iframe - Theme UI-based theming
- Light Mode / Dark Mode
Deploy this starter with one click on Netlify:
Use the Gatsby CLI to clone the site and install dependencies:
npx gatsby new gatsby-starter-graphql-playground https://github.com/LekoArts/gatsby-starter-graphql-playground
cd gatsby-starter-graphql-playground
Start the site by running npm run develop
.
Your site is now running at http://localhost:8000
!
If you want to learn more about how you can use a Gatsby starter that is configured with a Gatsby theme, you can check out this shorter or longer tutorial. The tutorials don't exactly apply to this starter however the concepts are the same.
Important Note: Please read the guide Shadowing in Gatsby Themes to understand how to customize the underlying theme!
This starter creates a new Gatsby site that installs and configures the theme @lekoarts/gatsby-theme-graphql-playground
.
Have a look at the theme's README and files to see what options are available and how you can shadow the various components including Theme UI. Generally speaking you will want to place your files into src/@lekoarts/gatsby-theme-graphql-playground/
to shadow/override files. The Theme UI config can be configured by shadowing its files in src/gatsby-plugin-theme-ui/
.
Create a file at src/@lekoarts/gatsby-theme-graphql-playground/data/navigation.mdx
to edit the navigation.
First, create a new entry in your navigation.mdx
file. If this file doesn't exist yet, see the step above.
You need to create a "classic" markdown list, like:
- Welcome
- Basics
- [GraphQL Introduction](/graphql-introduction)
You'll now see a navigation that has two sections (Welcome and Basics) of which Basics has a sub-menu.
Now, create a new file at docs/graphql-introduction.mdx
. The filename has to be the same as the link you used in the navigation.
Add a title to the frontmatter of the MDX file and place the GraphQL query you wish to display in the GraphiQL iFrame as the first item.
---
title: GraphQL Introduction
---
```graphql preview
{
...your
query
goes
here
}
```
Normal text can go here.
## Normal markdown too
You need to write your query with graphql preview
so that the theme can pick it up. You also must place it directly after the frontmatter.
Create a file at src/@lekoarts/gatsby-theme-graphql-playground/data/index.mdx
to edit the text.
The static
folder contains the icons, social media images and robots.txt
. Don't forget to change these files, too! You can use Real Favicon Generator to generate the image files inside static
.
If you have general questions or need help with Gatsby, please go to one of the support platforms mentioned in Gatsby's documentation. If you have a specific question about this project, you can head to the GitHub Discussions of the repository.
Looking for more guidance? Full documentation for Gatsby lives on Gatsby's website.
To learn more about Gatsby themes specifically, I recommend checking out the theme docs.
-
For most developers, I recommend starting with the in-depth tutorial for creating a site with Gatsby. It starts with zero assumptions about your level of ability and walks through every step of the process.
-
To dive straight into code samples, head to Gatsby's documentation. In particular, check out the How-to Guides and Reference items in the primary navigation.
Thanks for using this project! I'm always interested in seeing what people do with my projects, so don't hesitate to tag me on Bluesky and share the project with me.
Please star this project, share it on Social Media or consider supporting me on GitHub Sponsors!