When you’re new to Gatsby there can be a lot of words to learn. This glossary aims to give you a 10,000-foot overview of common terms and what they mean for Gatsby sites.
Abstract Syntax Tree: A tree representation of the source code that is found during a compilation step between two languages. For example, gatsby-transformer-remark will create an AST from Markdown to describe a Markdown document in a tree structure using the Remark parser.
Application Programming Interface: A method for one application to communicate with another. For example, a source plugin will often use an API to get its data.
The inclusive practice of removing barriers that prevent interaction with, or access to websites, by people with disabilities. When sites are correctly designed, developed and edited for accessibility, generally all users have equal access to information and functionality. Read about Gatsby’s Commitment to Accessibility.
The behind the scenes that the public does not see. This often refers to the control panel of your CMS. These are often powered by server-side programming languages such as Node.js, PHP, Go, ASP.net, Ruby, or Java.
A storage of information locally that might be used again, so computations and lookups can be retrieved faster from one place. Gatsby uses a cache to store information so it can build your site faster when you’re developing without needing to do the same work twice.
Command Line Interface: An application that runs on your computer through the command line and interacted with your keyboard.
Client-side refers to operations that are performed by the user’s browser in a client–server relationship in a computer network. In Gatsby, this is important when working with packages that rely on objects in the browser DOM, such as
navigator. See also: server-side, frontend, and backend.
Content Management System: an application where you can manage your content and have it saved to a database or file for accessing later. Examples of Content Management Systems include WordPress, Drupal, Contentful, and Netlify CMS.
A text-based interface to run commands on your computer. The default Command Line applications for Mac and Windows are
Command Prompt respectively.
Components are independent and re-usable chunks of code powered by React that, when combined, make up your website or app.
The configuration file,
gatsby-config.js tells Gatsby information about your website. A common option set in config is your sites metadata that can power your SEO meta tags.
The environment that Gatsby runs in. For example, when you are writing your code you probably want as much debugging as possible, but that’s undesirable on the live website or app. As such, Gatsby can change its behavior depending on the environment it’s in.
Environment Variables allow you to customize the behavior of your app depending on its environment. For instance, you may wish to get content from a staging CMS during development and connect to your production CMS when you build your site. With environment variables you can set a different URL for each environment.
The way files are organized. With Gatsby, it means having files in the same place as your website’s or app’s code instead of pulling data from an external source. Common filesystem usage in Gatsby includes Markdown content, images, data files, and other assets.
A markup language that every web browser is able to understand. It stands for Hypertext Markup Language. HTML gives your web content a universal informational structure, defining things like headings, paragraphs, and more. It is also key to providing an accessible website.
A feature in use when you run
gatsby develop that live updates your site on save of code in a text editor by automatically replacing modules, or chunks of code, in an open browser window.
As part of its data layer and build process, Gatsby will automatically infer a schema, or type-based structure, based on available data sources (e.g. Markdown file nodes, WordPress posts, etc.). More control can be gained over this structure by using Gatsby’s Schema Customization API.
Linting is the process of running a program that will analyze code for potential errors. The Gatsby project uses prettier to identify and fix common style issues. Another example of a linter commonly used in React projects is eslint-jsx-plugin-a11y, which checks for common accessibility issues in development.
A way of writing HTML content with plain text, using special characters to denote content types such as hash symbols for headings, and underscores and asterisks for text emphasis.
An HTML page.
Something that automatically happens based on your code and configuration. For example, you might configure your project to create a page for every blog post written, or read and display the current year as part of a copyright in your site footer.
This usually refers to either a member of the public (as opposed to your team) or the folder
/public in which your built website or app is saved.
The process of requesting specific data from somewhere. With Gatsby you normally query with GraphQL.
Routing is the mechanism for loading the correct content in a website or app based on a network request - usually a URL. For example, it allows for routing URLs like
/about-us to the appropriate page, template, or component.
An exact representation of how data is stored in a system, such as tables and fields in a database or a JSON file structure. In Gatsby, the GraphQL schema expresses all queryable data - or data that components can ask about as part of Gatsby’s data layer.
Gatsby builds static versions of your page that can be easily hosted. This is in contrast to dynamic systems in which each page is generated on-the-fly. Being static affords major performance gains because the work only needs to be done once per content or code change.
A Gatsby theme is like a WordPress theme that is composable (with other themes), extendable (with more logic), and replaceable (shadowing). Gatsby themes can have any facet of a Gatsby app packaged inside of them, and can also offer any number of knobs to turn features on or off.
A UI refers to a User Interface. In the field of human-computer interaction, a UI is a space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, while the machine simultaneously feeds back information that aids the user’s decision-making process (such as error messages or notifications).
Edit this page on GitHub