• This repository has been archived on 21/Mar/2022
  • Stars
    star
    222
  • Rank 179,123 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Gatsby Desktop

A proof-of-concept desktop app for managing your Gatsby sites.

Installation

โš ๏ธ Warning: Gatsby Desktop is no longer being maintained

Installing built packages

  1. Click on releases and choose the installer for your platform.

Installing from source

  1. Clone the repo
  2. Run yarn
  3. yarn develop

Screenshots

Gatsby Desktop Gatsby Admin Logs

Architecture

Gatsby Desktop is an Electron app. All Electron apps have two primary processes:

  1. "main", which is a Node.js script which handles windowing, menus and similar native bits. Think of it as the server. It opens BrowserWindows which contain:
  2. "renderer": this is the UI of the app, which is HTML + JS. In Gatsby Desktop, this is of course a local Gatsby site. Unlike a regular web app, Electron renderers can import and use built-in Node.js modules, such as fs and child_process.

Gatsby Desktop can launch and run your local Gatsby sites. We spawn these in the main process, which maintains a list of running site. The renderer gets this list over IPC and stores it in React context. There are React hooks to make it easy to access the list of sites and whether or not they're running. The main process also auto-discovers any local Gatsby sites and watches these for changes.

Development

Gatsby Desktop is written in TypeScript. We use microbundle to compile and bundle the worker and main scripts. The renderer is a Gatsby site, which we run with gatsby develop during development, or SSR in production and serve from a local Express static server. yarn develop compiles and runs everything. It uses gatsby develop, so you have hot reloading, but bear in mind that this doesn't clean up the child processes properly, so if those are running you'll need to restart the process. It also watches and compiles the worker and main bundles.

To debug the renderer, use Chrome devtools and listen to port 8315.

Telemetry

If you opt-in to telemetry, the app sends anonymous information about how use it. This is mainly checking which features you use and how much you use them. This helps us prioritize which features to develop, and to improve the app. This is particularly important as it is a proof-of-concept. This is entirely optional though, so if you don't opt-in we don't track anything except the fact that you have opted-out. All other events are not sent. This setting is separate from the telemetry setting for Gatsby itself. You can see more details on telemetry in Gatsby at https://gatsby.dev/telemetry

Release process

Create a draft release in GitHub, with the tag as the new version number prefixed with v, e.g. v0.0.1-alpha.2. Update the version number in package.json to match, and commit. Push that to master and GitHub Actions should do a build and eventually attach the packaged files to the draft release. Once the build is complete, publish the draft release.

More Repositories

1

gatsby

The best React-based framework with performance, scalability and security built in.
JavaScript
55,268
star
2

gatsby-starter-blog

Gatsby starter for creating a blog
JavaScript
3,487
star
3

gatsby-starter-default

The default Gatsby starter
JavaScript
1,389
star
4

gatsby-starter-hello-world

Starter with the bare essentials needed for a Gatsby site
JavaScript
639
star
5

store.gatsbyjs.org

The Gatsby store for swag and other Gatsby goodies.
JavaScript
603
star
6

gatsby-source-wordpress-experimental

The upcoming v4 of gatsby-source-wordpress, currently in beta
JavaScript
385
star
7

gatsby-docker

Docker image that builds and hosts a Gatsby site
Shell
358
star
8

gatsby-starter-shopify

A Gatsby starter using the latest Shopify plugin showcasing a store with product overview, individual product pages, and a cart
JavaScript
288
star
9

wp-gatsby

WordPress plugin for gatsby-source-wordpress
PHP
167
star
10

gatsby-ja

Japanese translation of Gatsbyjs.org
JavaScript
151
star
11

gatsby-pt-BR

Brazilian Portuguese translation of Gatsbyjs.org
JavaScript
150
star
12

themes

This is a repo for Gatsby's official themes.
JavaScript
141
star
13

gatsby-starter-blog-theme

Starter for using the official gatsby blog theme
JavaScript
121
star
14

gatsby-starter-wordpress-blog

CSS
102
star
15

rfcs

RFCs for changes to Gatsby
85
star
16

gatsby-graphql-toolkit

TypeScript
79
star
17

gatsby-source-shopify

TypeScript
67
star
18

gatsby-starter-documentation

This starter is for Gatsby v0 and is not maintained
JavaScript
67
star
19

gatsby-starter-wordpress-homepage

JavaScript
63
star
20

gatsby-starter-theme-workspace

JavaScript
62
star
21

gatsby-starter-contentful-homepage

JavaScript
53
star
22

gatsby-starter-theme

A Gatsby theme starter using the official blog theme, and the official notes theme
JavaScript
52
star
23

api.gatsbyjs.org

The API for the Gatsby swag store.
JavaScript
47
star
24

tutorial-example

The example project built by following the Gatsby Tutorial: https://gatsbyjs.com/docs/tutorial/
JavaScript
45
star
25

gatsby-es

Gatsby documentation in Spanish
JavaScript
41
star
26

gatsby-starter-kontent-ai-homepage

JavaScript
39
star
27

gatsby-id

Indonesian translation of Gatsbyjs.org
JavaScript
36
star
28

gatsby-starter-kontent-ai-homepage-ts

TypeScript
34
star
29

gatsby-starter-landing-page

Create custom landing pages using Gatsby and Contentful
JavaScript
34
star
30

gatsby-ko

Korean translation of Gatsbyjs.org
JavaScript
30
star
31

mdx-deck-theme

The theme we use for Gatsby-related slide decks powered by `mdx-deck`
HTML
27
star
32

gatsby-starter-minimal

JavaScript
26
star
33

gatsby-starter-notes-theme

Starter for using the official gatsby notes theme
JavaScript
20
star
34

gatsby-starter-drupal-homepage

JavaScript
20
star
35

gatsby-ru

Gatsby documentation in Russian
JavaScript
20
star
36

gatsby-zh-Hans

Simplified Chinese translation of Gatsbyjs.org
JavaScript
19
star
37

gatsby-fr

French translation of Gatsbyjs.org
JavaScript
19
star
38

homepage-starters

Development setup for homepage starters with multiple CMS backends
JavaScript
18
star
39

gatsby-starter-datocms-homepage

JavaScript
16
star
40

gatsby-functions-beta

A showcase of Gatsby Functions for the public beta
JavaScript
15
star
41

gatsby-starter-kitchen-sink

This starter is for Gatsby v0 and is not maintained
JavaScript
13
star
42

peril-gatsbyjs

This repo houses the settings for Peril.
TypeScript
13
star
43

gatsby-starter-sanity-homepage

Create a homepage with Gatsby and Sanity
JavaScript
11
star
44

themejam.gatsbyjs.org

Website for the Gatsby Theme Jam
JavaScript
11
star
45

gatsby-starter-blog-theme-core

JavaScript
10
star
46

gatsby-starter-contentful-homepage-ts

TypeScript
9
star
47

gatsby-pl

Polish translation of Gatsbyjs.org
JavaScript
9
star
48

react-18-ecommerce-demo

gatsby-starter-shopify with react 18 features
JavaScript
9
star
49

gatsby-starter-minimal-ts

TypeScript
9
star
50

gatsby-hi

Hindi translation of Gatsbyjs.org
JavaScript
8
star
51

gatsby-starter-plugin

JavaScript
8
star
52

gatsby-starter-rendering-modes

An example starter using new rendering modes in Gatsby 4
JavaScript
7
star
53

gatsby-it

Italian translation of Gatsbyjs.org
JavaScript
7
star
54

gatsby-bn

Bengali translation of Gatsbyjs.org
JavaScript
7
star
55

gatsby-starter-sanity-homepage-ts

Create a homepage with Gatsby and Sanity
TypeScript
7
star
56

gatsby-tr

Turkish translation of Gatsbyjs.org
JavaScript
7
star
57

gatsby-i18n-source

Source repo for gatsbyjs.org translation
JavaScript
6
star
58

gatsby-starter-wordpress-homepage-ts

TypeScript
6
star
59

gatsby-web-creators

A repository of live coding examples from the Gatsby Web Creators livestream series
HTML
5
star
60

gatsby-partial-hydration-starter

Example on how to implement partial hydration in Gatsby
JavaScript
5
star
61

gatsby-de

German translation of Gatsbyjs.org
JavaScript
4
star
62

gatsby-starter-slices

A starter showcasing Gatsby 5 and Slices
JavaScript
4
star
63

gatsby-starter-mdx-basic

This functionality is now built into Gatsby. Run `npm init gatsby` from the command line and choose MDX as the data source to get started.
CSS
4
star
64

webinar-using-mdx

Sample repository implementing MDX pages in a new Gatsby site
CSS
4
star
65

gatsby-zh-Hant

Traditional Chinese translation of Gatsbyjs.org
JavaScript
3
star
66

gatsby-fi

Finnish translation of Gatsbyjs.org
JavaScript
3
star
67

will-it-generate

A utility to generate benchmark data of varying sizes with similar complexity
JavaScript
3
star
68

gatsby-provision-contentful

Provision Contentful Content for your Gatsby site
JavaScript
3
star
69

vscode-extension

Experimental vscode extension to improve your Gatsby experience
TypeScript
2
star
70

gatsby-vi

Vietnamese translation of Gatsbyjs.org
JavaScript
2
star
71

gatsby-starter-drupal-homepage-ts

TypeScript
2
star
72

gatsby-nl

Dutch translation of Gatsbyjs.org
JavaScript
2
star
73

gatsby-mn

Mongolian translation of Gatsbyjs.org
JavaScript
1
star
74

gatsby-en

(THIS IS A TEST REPOSITORY) English translation of Gatsbyjs.org
1
star
75

gatsby-fa

Persian translation of Gatsbyjs.org
JavaScript
1
star
76

gatsby-dev-sites-proxy

Proxies sites built for PRs from their S3 bucket
JavaScript
1
star
77

gatsby-starter-datocms-homepage-ts

TypeScript
1
star
78

gatsby-ca

Catalan translation of Gatsbyjs.org
JavaScript
1
star