Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

JSNATION THE QUALITY OF THE OUTCOME OFTEN DEPENDS ON QUALITY OF THE TOOLS

Slide 3

Slide 3 text

JSNATION CAN AI TRANSFORM COMPLEXITY INTO CLARITY?

Slide 4

Slide 4 text

GET ASSISTANCE IN DEVTOOLS WITH AI

Slide 5

Slide 5 text

UNDERSTAND ERRORS IN DEVTOOLS USING AI

Slide 6

Slide 6 text

ASK ABOUT SOURCES …OR NETWORK OR WEBPERF

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

JSNATION WITH EXTENSIBILITY YOUR TOOLS EVOLVE AS QUICKLY AS YOU DO

Slide 9

Slide 9 text

HIGHLIGHT UPDATES WHEN COMPONENTS RE-RENDER

Slide 10

Slide 10 text

REACT DEVTOOLS BADGES SERVER COMPONENTS!

Slide 11

Slide 11 text

SERVER LOGGING IN NEXT.JS

Slide 12

Slide 12 text

TOGGLE SUSPENSE FALLBACKS WITH REACT DEVTOOLS

Slide 13

Slide 13 text

REACT COMPILER SUPPORT IN DEV TOOLS

Slide 14

Slide 14 text

INSPECT HOOKS WITH REACT DEVTOOLS

Slide 15

Slide 15 text

CUSTOM HOOK DEBUGGING WITH USEDEBUGVALUE

Slide 16

Slide 16 text

JSNATION EXPERIMENT FREELY WITHOUT TOUCHING THE ORIGINAL CODE

Slide 17

Slide 17 text

“EDIT” LIVE PAGES WITH DEVTOOLS

Slide 18

Slide 18 text

AUTO-FIX COLOR CONTRAST

Slide 19

Slide 19 text

“EDIT” LIVE PAGES WITH OVERRIDES

Slide 20

Slide 20 text

OVERRIDE THE CONTENT OF XHR AND FETCH REQUESTS

Slide 21

Slide 21 text

OVERRIDE HTTP RESPONSE HEADERS!

Slide 22

Slide 22 text

PASTE ENTIRE HEADER STRINGS TO OVERRIDE THEM

Slide 23

Slide 23 text

DEV TOOLS TIP: HIDE CHROME EXTENSION REQUESTS

Slide 24

Slide 24 text

DEVTOOLS NOW HAS HUMAN-READABLE HTTP STATUS CODES

Slide 25

Slide 25 text

EMULATE A FOCUSED PAGE IN ELEMENTS > STYLES

Slide 26

Slide 26 text

JSNATION LAB PERFORMANCE DATA SHOW’S WHAT’S POSSIBLE. FIELD SHOWS WHAT’S REAL.

Slide 27

Slide 27 text

MONITOR LOCAL & FIELD PERFORMANCE

Slide 28

Slide 28 text

RECOMMENDATIONS IN LIVE METRICS “Real users may have slower interactions due to slower CPU speeds” “Screen size can influence LCP”

Slide 29

Slide 29 text

GET INSIGHTS RIGHT IN THE PERFORMANCE PANEL LCP by phase Layout shift culprits Third-parties Render blocking requests And more

Slide 30

Slide 30 text

ANNOTATE + SHARE PERFORMANCE FINDINGS

Slide 31

Slide 31 text

DEVTOOLS HAS A BUNDLE ANALYZER

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

What is input responsiveness? FIRST INPUT DELAY TOTAL BLOCKING TIME TIME TO INTERACTIVE INP

Slide 34

Slide 34 text

Click ➡ Open Menu

Slide 35

Slide 35 text

Click ➡ Add to Cart

Slide 36

Slide 36 text

OPTIMIZING INP FOR REACT APPS https://dub.sh/YGjr0UR

Slide 37

Slide 37 text

REACT 18+ CONCURRENT RENDERING IMPACT From sync to concurrent rendering • Rendering is interruptible • Enables better prioritization of user interactions • Impact: • Desktop: 46% improvement (450ms → 240ms) • Mobile: 54% improvement (1.1s → 500ms https://dub.sh/YGjr0UR

Slide 38

Slide 38 text

BREAKING UP LONG TASKS Yield to the main thread between operations https://dub.sh/YGjr0UR • Track events were causing main thread blocking • Solution: Yield to main thread between operations • Impact • Implementation using setTimeout(0) or scheduler API • 19% improvement in INP (saved ~120ms)

Slide 39

Slide 39 text

REACT RE-RENDERING OPTIMIZATIONS • Simplify complex custom hooks causing re-rendering • Replace React Router APIs with window.location/history • Colocate functions within useE ff ect • Memoize selectors properly • Impact • Another 45% INP improvement Before After

Slide 40

Slide 40 text

FINAL RESULTS & KEY RECOMMENDATIONS Pro fi ling with Chrome & React DevTools can help lead to signi fi cant gains • Results: • INP General: 69% improvement (850ms → 260ms) • INP Mobile: 72% improvement (1.1s → 300ms) • INP Desktop: 66% improvement (440ms → 150ms) • Key Recommendations: • Simplify abstractions (smaller hooks, colocated state) • Defer non-UI related code • Properly memoize selectors • Break up long tasks https://dub.sh/YGjr0UR

Slide 41

Slide 41 text

JSNATION A SEAMLESS USER EXPERIENCE COMES FROM SWEATING THE SMALL STUFF.

Slide 42

Slide 42 text

PUSH THE WEB FORWARD JSNATION

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

ANIMATION INSPECTOR

Slide 48

Slide 48 text

CAPTURE ANIMATIONS AND EDIT @KEYFRAMES LIVE

Slide 49

Slide 49 text

NEXT.JS + VIEW TRANSITIONS Built with https://github.com/shuding/next-view-transitions

Slide 50

Slide 50 text

DEBUGGING LAYERS WITH DEVTOOLS

Slide 51

Slide 51 text

JSNATION WHEN WORK FEELS LIKE PLAY YOU’RE DOING SOMETHING RIGHT.

Slide 52

Slide 52 text

SPICY CONSOLE LOGS

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

DEBUG THE WEB FORWARD JSNATION