#006 — React ViewTransition + PWA in the Web

Date: June 19, 2026 | 19:00 London / 21:00 Kyiv
Format: Two talks · ~60 min
Guest: Oleksandr Blazheiko
YouTube: https://youtube.com/live/RJ9xqAfUl6M
Participants
Oleh Levchenko — Senior Full Stack JavaScript Developer (React / Node.js / AWS)
The AA · Cardiff, UK
YouTube @zloyleva · itfriday.community
Oleksandr Blazheiko — Software Development Engineer · Fullstack, 7+ years of experience
Ukraine
LinkedIn · itvibe.party
Building itvibe.party — a platform combining chat, a real-time AI translator, and a personal AI teacher. Third stream in a row — this time exploring what PWA can do in the modern web.
Key Takeaways
Talk 1 — React ViewTransition · Oleh Levchenko
- Browser
document.startViewTransition()has existed since 2022 (Chrome 111) — React<ViewTransition>handles all the complexity: setsview-transition-nameautomatically, calls the API, batches multiple parallelsetStatecalls into one animation - Pitfall #1 — tree order:
<ViewTransition>must be the outermost element; wrapping it in a<div>disables Enter/Exit animation — React sees thedivappearing, not theViewTransition - Shared Element: same
namein two different places of the tree → React recognises "the same" element and animates the "flight" between positions;nameuniqueness is required — dev mode warns on collision - List Reorder: use
key, notname—nameis for shared elements between different trees;keyis for elements moving within the same list useEffectfires only after the animation completes — guarantees no side effects during the transition- CSS:
enter="slide-in"→::view-transition-new(.slide-in)— full animation control; JS:onEntercallback via Web Animations API with mandatory cleanup (return () => anim.cancel()) - Suspense + ViewTransition: fallback → content transition gets cross-fade automatically with no extra code
- React Router:
viewTransitionprop on<Link>— page transition animations with no extra code - Canary only (
react@canary), DOM only;prefers-reduced-motion— not an option, it's hygiene
Talk 2 — PWA in the Web · Oleksandr Blazheiko
- PWA = HTML/CSS/JS that behaves like a native app: installable on device, works offline, receives push notifications — no app store required
- Three mandatory pillars: Service Worker (intercepts network requests, caches, offline), Web App Manifest (JSON metadata for installation), HTTPS (without it SW and most APIs are disabled)
- Service Worker lifecycle:
install(pre-cache resources) →activate(clean stale caches) →fetch(cache-first strategy: serve from cache, fall back to network) - manifest.json:
display: standaloneremoves the address bar;start_urldefines the entry point;iconswithpurpose: "any maskable"for adaptive icons across all platforms - Business benefits: one codebase instead of iOS + Android + Web; ~70% fewer bounces due to fast startup; updates without app store review
- PWA vs Native: installation and offline are there, hardware access is partial — but development cost and update time are incomparably lower
- whatpwacando.today — interactive showcase, itself a PWA; shows live which APIs your browser supports: camera, geolocation, Bluetooth, NFC, contacts, WebAuthn, push
- Project Fugu — Google/Microsoft/Intel initiative to close the gap between web and native: File System Access, Web Bluetooth, WebUSB, Web Serial, Web HID, Web NFC, Badging API and dozens more
- itvibe.party — Oleksandr's own project with PWA capabilities: chat + real-time AI translator + personal AI teacher
Timecodes
To be added after the stream.

