To run Ghost, we first need to install the ghost cli. This can be done with npm now that Node.js is installed on the server. After installing the CLI we will create a directory `/var/www/ghost` that the actual installation of Ghost will occur in. We'll ... more
Unfortunately, the JavaScript interview has turned into a, "who knows the buzzwords". Forget about your skills with React, CSS, or modern tooling, the real question is can you explain the Big O Notation of a binary search? This talk is designed ... more
In our subcommand match we'll add a new function called `write` to handle our `Write` subcommand. We'll pass it the argument title and we'll "import" it from a library called `digital_garden`. ```rust use digital_garden::write; fn main() -> ... more
```shell cargo init ``` By default cargo initializes a new package containing a *binary* crate. The file that gets compiled into the binary is located at `src/main.rs`. This is by convention and we can specify different paths and names for binaries. We ... more
Cloudflare Workers let you write JavaScript Service Workers that run directly in Cloudflare's 120+ edge locations around the world. With a Cloudflare Worker, you can modify your site's HTTP requests and responses, make parallel requests, and even reply ... more
Are you confused about how authentication and authorization relate to GraphQL APIs? You’re not alone! It’s no secret that learning auth is hard on its own, let alone on top of GraphQL. Let’s demystify auth while learning how to use JSON Web Tokens (JWTs) ... more
In this video you'll learn how to deploy a React app to AWS using AWS Amplify Hosting's drag and drop folder functionality. The app will also automatically be globally distributed on AWS's global CDN. ... more
Our class-based component relies on instance variables to ensure it's only created once. ``` this.amountChanged = debounce(this.props.changeAmount, 500); ``` Functional components aren't classes and therefore don't have instance variables. Because of ... more
In addition to storing DOM references, the [useRef](https://reactjs.org/docs/hooks-reference.html#usecallback) hook can be used to store values without re-rendering the component. If you have a class component that stores and manipulates values using ... more
The [useEffect](https://reactjs.org/docs/hooks-effect.html) hook provides a way for components to declaratively state side effects that need to be run. By modifying the dependency array you can simulate certain React lifecycle methods such as `constructor`/`componentDidMount` ... more
In this lesson we convert our AmountField class component to a function component and then convert its state from `this.state`/`this.setState` to the [useState](https://reactjs.org/docs/hooks-state.html) hook. As in our earlier lesson we apply the following ... more
In this lesson we replace `React.createRef()` with the `React.useRef` hook. The API is almost identical, so the there's not much to it, if you're already familiar with refs. In React, refs provide a way to store references to native DOM elements. Throughout ... more
In this lesson we take all of the hooks and logic from our `` component and put them into a custom hook called `useCurrencyCodes()`. What's the difference between a custom hook and a function we can use to organize our logic? Not much, really. Because ... more
With React hooks it's common to write callback functions in our component body. Event handlers are a common example of this. Most of the time they work great, however, when you're passing those event handlers down to a child component or using them as ... more
In this lesson we take all of the hooks and logic from our `` component and put them into a custom hook called `useCurrencyCodes()`. What's the difference between a custom hook and a function we can use to organize our logic? Not much, really. Because ... more
With React hooks it's common to write callback functions in our component body. Event handlers are a common example of this. Most of the time they work great, however, when you're passing those event handlers down to a child component or using them as ... more
The [useEffect](https://reactjs.org/docs/hooks-effect.html) hook provides a way for components to declaratively state side effects that need to be run. By modifying the dependency array you can simulate certain React lifecycle methods such as `constructor`/`componentDidMount` ... more
In addition to storing DOM references, the [useRef](https://reactjs.org/docs/hooks-reference.html#usecallback) hook can be used to store values without re-rendering the component. If you have a class component that stores and manipulates values using ... more
In this lesson we replace `React.createRef()` with the `React.useRef` hook. The API is almost identical, so the there's not much to it, if you're already familiar with refs. In React, refs provide a way to store references to native DOM elements. Throughout ... more
Our class-based component relies on instance variables to ensure it's only created once. ``` this.amountChanged = debounce(this.props.changeAmount, 500); ``` Functional components aren't classes and therefore don't have instance variables. Because of ... more
In this lesson we convert our AmountField class component to a function component and then convert its state from `this.state`/`this.setState` to the [useState](https://reactjs.org/docs/hooks-state.html) hook. As in our earlier lesson we apply the following ... more
The sibling combinators are a neat way to select elements that are siblings or descendants of siblings to checkboxes. It provides a way to show and hide elements without the need for JavaScript. ... more
Use the HTML preprocessor Pug to generate markup for a form. Here we generate a set of labels and checkboxes. We link these using ES6 Template Literals with a loop index. ... more
Learn how to make a fully functioning Tic Tac Toe game that doesn't need any client-side JavaScript! For this course, we'll be using Pug and Stylus which are preprocessors for HTML and CSS respectively. Learn how to: - Generate markup with loops and template ... more
The sibling combinators are a neat way to select elements that are siblings or descendants of siblings to checkboxes. It provides a way to show and hide elements without the need for JavaScript. ... more
Use the HTML preprocessor Pug to generate markup for a form. Here we generate a set of labels and checkboxes. We link these using ES6 Template Literals with a loop index. ... more
Use `npm init gatsby` with the `y` flag to create an initial Gatsby site. The site includes a `package.json` with Gatsby, React, and `react-dom` installed, an empty `gatsby-config.js` file, and two files in `src/pages` - `index.js` and `404.js`. The repo ... more
Use `npm init gatsby` with the `y` flag to create an initial Gatsby site. The site includes a `package.json` with Gatsby, React, and `react-dom` installed, an empty `gatsby-config.js` file, and two files in `src/pages` - `index.js` and `404.js`. The repo ... more