Optimistic Web

2022

BUT

FIRST...

 ⏰ gotta wake up

let’s play a game

cheap shot to get your attention 🦑

Spot theXatafly

from next slide until the end

count them

tweet number at me with 

#XataVibes

🏆  1st gets cool Xwag  🎁

(he/him)

User Interface

User Experience

Usability

{...design}
{...design}

UI

UX

Usability

Excuse me. That you?

click
mutation event
mutation request
response
update content
woohoo!

Don’t

go

chasing

waterfalls

💭 this song is from 1995

let’s try something

click
mutation event
mutation request
response
update content
woohoo!

what if...?

those 1 every 999

click
mutation event
mutation request
💥
update content
woohoo!
update content
Pardon. retry?

important notes

if your App/API fails often, you probably have a bug

a State Machine can make it easier to control this error/recovery flow

not a silver bullet

🤖

🐛

🔫

state machine

then

when?

when the response is not critical for the user experience

when you trust the availability of the resource

🐶

☀️

🤔

data submission

is

navigation

useTransition

useFetcher

useFetchers

useLoaderData

useActionData

useFormAction

useSubmit

🤫

loader function

when a page loads

`GET`

requests

⬇️

⚙️

action function

when a data mutates

`POST`

requests

⬆️

⚙️

`PUT`
`DELETE`
`PATCH`
`useLoaderData()`
`useActionData()`

useTransition()

GET form submission
POST / PUT / PATCH / DELETE form submission

from remix

not react

navigation
idle
idle
loading
idle
idle
submitting
idle
idle
submitting
loading

1️⃣

2️⃣

3️⃣

useFetcher()

This hook lets you plug your UI into your actions and loaders without navigating

-- from Remix docs

POST
PUT
DELETE
PATCH

Action

Function

Loader

Function

<Form>
<fetcher.Form>

vs

<form>

vs

show,

don’t tell

👀

thanks

being optimistic is cool

7

#XataVibes

Made with Slides.com