Demo for my talk "Stream Away the Wait" – a talk about making excellent pending experiences.

Overview

🌊 Stream Away the Wait

When implementing the design of a user interface, we often finish before remembering that not everyone's running the app's services locally on their device. There's going to be network latency, long running database queries, and large datasets that can slow down the experience. We can and should do everything we can to speed things up, but not all of this is within our control. This means we need to start thinking about pending states. But pending UI is terrible.

In this talk, Kent will walk us through building a pending experience that is quite delightful. Ultimately taking advantage of React 18's new streaming APIs and a soon-to-be-released API in Remix to give a top-notch user and developer experience. Prepare to have your mind blown.


Build Status GPL 3.0 License Code of Conduct

Prerequisites

System Requirements

  • git v2.13 or greater
  • NodeJS 14 || 16 || 18
  • npm v8 or greater

All of these must be available in your PATH. To verify things are set up properly, you can run this:

git --version
node --version
npm --version

If you have trouble with any of these, learn more about the PATH environment variable and how to fix it here for windows or mac/linux.

Setup

Follow these steps to get this set up:

git clone https://github.com/kentcdodds/stream-away-the-wait-talk.git
cd stream-away-the-wait-talk
npm run setup

This will take some time. This repository has many projects in it that each need to have their own database setup. We also run type checking and the build to make sure things are ready to rock and roll 🤘

If you experience errors here, please open an issue with as many details as you can offer.

Running each app

Each directory in the apps directory is a Remix app. The easiest way to run these without having to cd into each directory is to use the dev.js script in the root of this repository:

# to run the first app:
node dev 1

Each will run on a unique port so you can run multiple apps at once.

Alternatively, rather than opening this whole repo in an editor window, you open each exercise folder in an individual editor window (this will make things like ⌘+P more useful).

Playground

The playground allows you to quickly change between the different apps via the advance script:

# To set the playground to the 4th app:
node advance 4

Then to run the app, run:

# starts the playground in dev mode
node play

Diff

You can us the diff.js script to be shown the differences between what's in any of the apps. For example:

# to be shown the differences between the fifth app and the sixth:
node diff 5 6

This can be handy for you to run when you think you're done but things aren't quite working as you expect.

You might also like...

Remix enables you to build fantastic user experiences for the web and feel happy with the code that got you there. In this workshop, we'll look at some more advanced use cases when building Remix applications.

💿 Advanced Remix Workshop Remix enables you to build fantastic user experiences for the web and feel happy with the code that got you there. In this

Dec 9, 2022

Remix enables you to build fantastic user experiences for the web and feel happy with the code that got you there. Get a jumpstart on Remix with this workshop.

💿 Remix Fundamentals Build Better websites with Remix Remix enables you to build fantastic user experiences for the web and feel happy with the code

Dec 25, 2022

Nftix-demo-ui - Demo UI used in my NFT course on Egghead.io

NFTix Demo UI This repository contains the UI used for my Egghead course on building a NFT ticketing system 🥚 🤓 If you're watching the videos, use t

Dec 17, 2022

In this project, you can create optional rooms and people can talk in the rooms

In this project, you can create optional rooms and people can talk in the rooms

CodeTalk In this project, you can create optional rooms and people can talk in the rooms. Login and Registration page Login page welcomes us. If you d

Mar 12, 2022

Examples for Evolllution talk about omni api's

These are examples for the 2022 Evolution Conference. These are only intended for learning puposes so you can learn and develop your own tool set. P

Jun 3, 2022

Talk about Azure SQL + Prisma

Talk - Power Up Your BackEnd Applications with Serverless Architecture & Azure SQL A demo related with the talk Power Up Your BackEnd Applications wit

Sep 13, 2022

Clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn from each other in real-time.

Clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn from each other in real-time.

Awesome Clubhouse The clubhouse is a new type of social network based on voice—where people around the world come together to talk, listen and learn f

Nov 9, 2022

Repository for the demos in the "Hello, Quarto!" talk

hello-quarto-demo Repository for the demos in the "Hello, Quarto!" talk Software RStudio: Version: Current release -- RStudio 2022.07.0+548 "Spotted W

Oct 12, 2022

Talk to anyone connected to your network, be it LAN or your hotspot. Doesn't require internet.

Talk to anyone connected to your network, be it LAN or your hotspot. Doesn't require internet.

Apophis CLI to talk to anyone connected to your network, be it LAN or your hotspot. Doesn't require internet. Installation Make sure you have NodeJS (

Oct 16, 2022
Comments
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 7% 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /slides/04.png | 842.98kb | 517.03kb | 38.67% | | /slides/02.jpg | 5,261.72kb | 5,151.49kb | 2.10% | | | | | | | Total : | 6,104.70kb | 5,668.52kb | 7.14% |


    📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
Owner
Kent C. Dodds
Improving the world with quality software · Husband, Father, Latter-day Saint, Teacher, OSS · @remix-run · TestingJavaScript.com · EpicReact.Dev · Be Kind
Kent C. Dodds
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Application that uses the localStorage to keep the information on the activities that are pending to be done and also those that are completed

Application that uses the localStorage to keep the information on the activities that are pending to be done and also those that are completed. It provides an option to edit activities and also delete them. The clear all applies to those that are marked as completed by selecting the checkbox.

Oscar Bermudez 8 Apr 8, 2022
Ethereum chain sniperbot for tokens. This bot sniffs the mempool for pending transactions for trading enabled and also liquidity add functions.

Ethereum chain sniperbot for tokens. This bot sniffs the mempool for pending transactions for trading enabled and also liquidity add functions.

null 12 Dec 5, 2022
Bootstrap 5 spinner/loading/pending indicator for ,