Sam Selikoff, Ryan Toronto

Frontend First

A podcast about modern UI development on the web. Hosted by Sam Selikoff and Ryan Toronto.

Koniecznie odwiedź stronę podcastu i wesprzyj twórcę: frontendfirst.fm

Autor

Sam Selikoff, Ryan Toronto

Kategoria

Technology

Strona podcastu

frontendfirst.fm

Ostatni odcinek

12 gru 2024

Gdzie słuchać?

Podcasty w aplikacji Replaio Radio Już wkrótce

Podcasty trafią do aplikacji już wkrótce. Zainstaluj teraz i jako pierwszy zobacz nowe podejście do podcastów

Pobierz z Google Play Zainstaluj za darmo Android 5 mln+ pobrań · ocena 4,8 iOS niedługo

Odcinki

The SQL Injection Slide 06.11.2023

Ian Landsman & Aaron Francis join Sam to discuss React Server Actions & Server Components, why it's important to have one set of opinions, and yes, the infamous SQL Injection Slide at NextConf. This is a crossover episode with the excellent podcast Mostly Technical . Topics include: 0:00 - The Most Memed Man on the Internet 09:06 - High Floor vs. High Ceiling 19:20 - What the Hell Is Next? 23:22 -...

The Remix Architecture 14.10.2023

Sam and Ryan talk about the key parts of Remix’s architecture in the context of the Work Journal app from Build UI’s latest course. They discuss how Remix’s conventions around Links, Forms, Actions, and Loaders allow developers to eliminate boilerplate and take advantage of the best HTTP has to offer, while still providing a seamless way to enhance their UIs using the full power of client-side Rea...

Implementing RSC, Part 2: Server Actions 04.10.2023

Ryan continues to share the details behind his custom RSC implementation. He talks with Sam about how Server Actions allow the client to reference server-side code (in the same way client components allow the server to reference client-side code), how Server Actions are bundled and invoked, and the security concerns associated with blurring the lines between the server and the client. Topics inclu...

Implementing RSC, Part 1: Rendering 29.09.2023

Ryan shares how building his own RSC implementation from scratch helped him better understand React’s new paradigm. He and Sam talk about how a client React app can fetch an RSC Payload from a server endpoint to update the UI, how an RSC server renders and bundles Client code that’s part of a Server Component tree, and how a client-side Router can be used to fetch new RSC trees based on the URL. T...

Should a navigation and a refresh show the same page? 20.09.2023

Ryan and Sam talk about how to invalidate Next.js’ client-side cache when a different session makes changes to backend data, and ultimately discuss whether clicking a link to a URL vs. hitting refresh on that same URL should render the same page if no backend data has changed. Topics include: 0:00 - Intro 1:00 - Suspense boundary identity and the Await component 11:07 - How to refresh RSC using a...

Tim Neutkens on the Next.js App Router 16.08.2023

Tim joins Sam to talk about his work on the new app router in Next.js 13. He explains how the app router leverages Server Components and React’s new cache API to bring a new level of composability to server-side code, how Server Actions are being designed to enable partial revalidation in a single round trip to the server, and how to think about UI updates as a result of server-side state changes....

Understanding prop passing from RSC to Client Components 09.08.2023

Sam and Ryan discuss how TypeScript helped them understand the mechanics of how props get passed from Server Components to Client Components, and how to properly type client component props if the prop starts out as a rich data type on the server. They also clarify some points from last episode’s discussion about the RSC payload. Topics include: 0:00 - Intro 0:40 - Clarifying what the RSC Payload...

Server-side rendering vs. Server Components 12.07.2023

Sam and Ryan explore different ways to think about the RSC architecture, including what problems RSC solve, why RSC are valuable even in a world without server-side rendering, and how React’s reconciliation phase enables RSC to make partial updates to the UI as a result of server-side events. Topics include: 0:00 - Intro 5:45 - What if RSC were introduced before SSR? 10:54 - What does it mean to r...

Reusable pending UI for forms with Server Actions 05.07.2023

Ryan shares his thoughts on how Server Actions and the useFormStatus hook are letting him build reusable pending UI for any form in his Next.js side project. Sam talks about how TypeScript prevents an entire class of data-loading bugs that have plagued single-page applications built with a client-side cache. Topics include: 0:00 - Tailwind Connect 2:38 - Using TypeScript to prevent data-loading er...

How Suspense led to Server Components (React Roundtable reaction) 07.06.2023

Sam and Ryan share their thoughts on the recent React Roundtable with core team members Sebastian Markbåge and Andrew Clark. They talk about the evolution of Server Components from the perspective of solving the problem of fetching data in React apps, how SPAs have a lower baseline but higher ceiling in terms of the user experience they can deliver, and what they’d like to see from frameworks that...

Learning by copy-paste 24.05.2023

Sam and Ryan use some recent Twitter discussion on copying + pasting code (instead of abstracting it for reuse) as a springboard for a discussion about how their thinking on low-level UI components and design systems has changed over the years. Topics include: 0:00 - Intro 2:16 - Copy-paste vs. creating abstractions 11:43 - How we used to build shared UI components 15:34 - How we use UI components...

What problems do React Server Components solve? 17.05.2023

Sam and Ryan share their learnings from working with Server Components in earnest over the past week. They talk about how Server Components can simplify client components by passing them props, why it makes sense for a component that can run everywhere to be a Server Component by default, whether RSC is causing unnecessary churn in the ecosystem, and how to think about choosing Server Components v...

Implicit time zones and the TZ environment variable 11.05.2023

Sam shares some recent learnings around hydration mismatches when rendering time zoned dates on the server and the client. He talks about using the TZ environment variable to reproduce the issue locally, and how he solved his problem by avoiding impure format and transformation functions from date-fns. Topics include: 0:00 - Intro 0:50 - Sever vs. client time zone mismatches, and the TZ environmen...

React email previews and radial gradients 03.05.2023

Sam and Ryan talk about using MJML to design, build and send transactional emails with React directly in the browser. They also chat about how to use Framer Motion to get a CSS radial gradient to follow the mouse cursor and the differences between React state, refs, Motion Values, and external stores. Topics include: 0:00 - Intro 1:10 - Building in-browser email previews with MJML 18:50 - Using ra...

Blending modes and secure redirects 26.04.2023

Sam and Ryan talk about building an animated tabs component with CSS’s mix-blend-mode property and Framer Motion’s layout animations. They also talk about how to use the URL constructor in JavaScript to help implement secure arbitrary redirects, as well as their initial reactions to new framework APIs that blur the lines between server and client code. Topics include: 0:00 - Intro 0:35 - Animated...

React Aria Components 20.04.2023

Sam tells Ryan about his experience building an animated toggle with React Aria Components. He gives his first impressions of the new library and discusses some of functionality included from the lower-level React Aria hooks. Ryan also talks about his recent use of GitHub Copilot. Topics include: 0:00 - Intro 1:15 - Using GitHub Copilot to keep you working at higher levels of abstraction 8:15 - re...

JavaScript needs a model layer 12.04.2023

Sam and Ryan talk about updating Build UI to support lifetime memberships. They chat about the site’s current architecture, the strengths and weaknesses of objects vs. functions, how the full stack JavaScript community could benefit from a proper model layer like ActiveRecord, the challenges of using GraphQL on the backend, Prisma, and more. Topics include: 0:00 - Intro 1:09 - Current architecture...

Server Components and the React paradigm 15.03.2023

Ryan and Sam use some recent Twitter conversation to guide a discussion about the design and purpose of React Server Components. They talk about how client trees and rendered on the server today, why a server-side rendered prepass is wasteful in light of RSC, how hydration of a client tree works, why RSC are never hydrated, how RSC is a purely additive technology, how server and client components...

HTML, HTTP, and React 08.03.2023

Sam and Ryan share their thoughts on the latest server-centric developments taking place among React frameworks like Remix and Next.js. They discuss the declarative nature of HTML and HTTP, the evolution of frontend development from imperative libraries like jQuery to declarative libraries like React, why developers started creating SPAs in the first place, the power and limitations of server-side...

Caching strategies 01.03.2023

Sam and Ryan have an open-ended conversation about different caching APIs and what kinds of benefits they might afford app developers. They discuss transparent caching layers, cache keys and surrogate keys in systems like Fastly, how SSG is effectively a high-level caching solution, Next.js 13.2’s cache API, Russian doll caching in Rails, whether a fetch cache is too high-level of an abstraction,...

Saying goodbye to static generation 22.02.2023

Sam and Ryan chat about their recent work migrating Build UI from a statically generated site to a run-time server-rendered app using Next.js. They talk about their past experience working on server-rendered apps, the problems that static sites were created to solve, and the tradeoffs involved within the static-to-dynamic continuum. Topics include: 0:00 - Intro 2:05 - How we built EmberMap with SS...

Building user search with React Server Components 15.02.2023

Ryan talks about a demo he built in Next.js 13 with React Server Components. He explains how RSC driven by the URL eliminated client-side states, how he used React 18 Transitions to enhance the UI, and how he was able to fine-tune the experience differently for the initial render vs. subsequent client-side navigations. Topics include: 0:00 - Intro 1:37 - Overview of Ryan’s user search page 14:06 -...

Ship Small, Ship Fast 08.02.2023

Ryan and Sam read a recent article by Derrick Reimer called “Ship Small, Ship Fast” and offer their thoughts on it. They discuss how implementation details can lead to reductions in scope, the relationship between shipping small and agile, and why quickly getting the first steps of a user flow into production is a good protocol for software teams to follow. Topics include: 0:00 - Intro 2:06 - Ship...

Lying in TypeScript 26.01.2023

Sam and Ryan talk about seams in TypeScript programs where lies can sneak in. They chat about how API calls, form inputs, and URLs all relate to this problem, the similarity between drifting types and service mocks in testing, zod, and how type-safe languages like Elm eliminate this problem entirely. Topics include: 0:00 - Intro 2:41 - Lying in Typescript Links: Zod Elm language

Animating a Stable Diffusion side project 19.01.2023

Ryan tells Sam about a side project of his that involves running the text-to-image deep learning model Stable Diffusion on his laptop in response to web requests. Ryan asks Sam questions about animating this UI, including how to animate indeterminate progress, how to avoid unintentional layout animation, and how to automatically repeat a set of items while scrolling rather than stopping at the end...

Słuchaj podcastu Frontend First w Replaio

Radio i podcasty w jednej aplikacji - za darmo, bez zakładania konta. Zainstaluj już dziś i nie przegap premiery

Pobierz z Google Play

Replaio nie jest wydawcą podcastów; nazwy audycji, okładki i audio należą do ich autorów i są rozpowszechniane przez publiczne kanały RSS