October 25 - 29, 2024
In collaboration with
👍
👏
😆
😲
🎉
🚀
📝
* Use Note emoji to mark highlights, we'll generate clips and save to your bookmarks
Ballard Track
Ballard Track QnA Rooms
Tharp Track
Tharp Track QnA Rooms
Discussion Rooms
Opening
How React Router Became a Framework icon
Mark Dalgleish «‎How React Router Became a Framework»
Exploring Modern Databases in React Applications icon
Aleksandra Sikora «‎Exploring Modern Databases in React Applications»
Panel Discussion: Difficulties of Adopting RSC From a Framework and Library Sides
Break
State-of-the-art React Server Components Developer Tooling icon
Tobbe Lundberg «‎State-of-the-art React Server Components Developer Tooling»
Is React Really Dying? icon
Jack Herrington «‎Is React Really Dying?»
Break
React Query API Design – Lessons Learned icon
Dominik Dorfmeister «‎React Query API Design – Lessons Learned»
Make Real: tldraw's AI Adventure icon
Steve Ruiz «‎Make Real: tldraw's AI Adventure»
How React Compiler Performs on Real Code icon
Nadia Makarevich «‎How React Compiler Performs on Real Code»
How an RSC Framework Enables Server Actions icon
Daishi Kato «‎How an RSC Framework Enables Server Actions»
Perfecting Your Profiling icon
Stephen Cooper «‎Perfecting Your Profiling»
Closing Ceremony
Opening
React Server Components in AI Applications icon
Tejas Kumar «‎React Server Components in AI Applications»
Designing Effective Documentation: Lessons Learned Building the Redux Docs icon
Mark Erikson «‎Designing Effective Documentation: Lessons Learned Building the Redux Docs»
Chat With Your Components icon
Theodore Vorillas «‎Chat With Your Components»
Turning It up to Eleven icon
Bret Little «‎Turning It up to Eleven»
Break
Prioritise Content Over Components icon
Simeon Griggs «‎Prioritise Content Over Components»
Why React Should Not Adopt Signals icon
Andreas Roth «‎Why React Should Not Adopt Signals»
Introducing Design System Into Mature Codebase icon
Kasia Jastrzebska «‎Introducing Design System Into Mature Codebase»
Server-Driven UI: Building Dynamic React Applications icon
Dipanshu Gupta «‎Server-Driven UI: Building Dynamic React Applications»
Break
Expo Prebuild, Demystified icon
Jamie Birch «‎Expo Prebuild, Demystified»
Maestro & Expo: Crafting the Future of Efficient e2e Testing icon
Mathieu Fedrigo «‎Maestro & Expo: Crafting the Future of Efficient e2e Testing»
Break
Astro – Island Technology in the Name of Optimization icon
Szymon Chmal «‎Astro – Island Technology in the Name of Optimization»
Increasing Your Sphere of Influence as a Staff Engineer icon
Ian Schwartz «‎Increasing Your Sphere of Influence as a Staff Engineer»
Closing
Opening
Beyond React Testing Library: Testing React Libraries (and library-like code) icon
Lenz Weber-Tronic «‎Beyond React Testing Library: Testing React Libraries (and library-like code)»
Building a Fast Website for Every Single Visitor icon
Medhat Dawoud «‎Building a Fast Website for Every Single Visitor»
Performance Testing Is Hard. Can AI Help? icon
Alexandre Moureaux «‎Performance Testing Is Hard. Can AI Help?»
Break
We Accidentally Built a Plugin SDK for Micro Frontends icon
André Bauer «‎We Accidentally Built a Plugin SDK for Micro Frontends»
Break
Breaking through the Browser Barrier (With Expo) icon
Cedric van Putten «‎Breaking through the Browser Barrier (With Expo)»
Understanding the New Event Loop in React Native icon
Mo Khazali «‎Understanding the New Event Loop in React Native»
React's Secret Weapon: Leveraging Concurrent Features for Top-Notch Performance icon
Dara Olayebi «‎React's Secret Weapon: Leveraging Concurrent Features for Top-Notch Performance»
Diving Into Server Islands icon
Elian Van Cutsem «‎Diving Into Server Islands»
Opening
Advanced Playwright Techniques for Flawless Testing icon
Debbie O'Brien «‎Advanced Playwright Techniques for Flawless Testing»
Observability for React Developers icon
Carly Richmond «‎Observability for React Developers»
GraphQL in the World of React Server Components
Securing Server-Rendered Applications – Next.js Case icon
Eric Burel «‎Securing Server-Rendered Applications – Next.js Case»
Break
5 Best Practices for Preventing Chaos in Tailwind CSS icon
Nina Torgunakova «‎5 Best Practices for Preventing Chaos in Tailwind CSS»
Scaling React Performance: From Basic to Advanced Code-Splitting Techniques icon
Gil Eckstein «‎Scaling React Performance: From Basic to Advanced Code-Splitting Techniques»
Rendering Data That Disagree icon
Thomas Ballinger «‎Rendering Data That Disagree»
Gain Performance! Take Your Run Time to Build Time icon
Rohit Singh «‎Gain Performance! Take Your Run Time to Build Time»
Break
Long Frames and INP – Understanding the Post Load Performance icon
Vinicius Dallacqua «‎Long Frames and INP – Understanding the Post Load Performance»
Let's Build Suspense 🥁 icon
Julian Burr «‎Let's Build Suspense 🥁»
Is Bun 'Actually' Faster? icon
Devlin Duldulao «‎Is Bun 'Actually' Faster?»
Break
CSS Is More Powerful Than You Think! Building React Search in CSS icon
Evyatar Alush «‎CSS Is More Powerful Than You Think! Building React Search in CSS»
Scaling Fast – Engineering Lessons From ~15 Years of Tech Startups icon
Swizec Teller «‎Scaling Fast – Engineering Lessons From ~15 Years of Tech Startups»
Closing
Published recordings
See all
Mastering React Server Components and Server Actions in React 19
React Advanced 2024React Advanced 2024
160 min
Mastering React Server Components and Server Actions in React 19
Workshop
Maurice de Beijer
Maurice de Beijer
Calling all React developers! Join us for an immersive 4-hour workshop diving deep into React Server Components and Server Actions. Discover how these game-changing technologies are revolutionizing web development and learn how to harness their full potential to build lightning-fast, efficient applications.
Explore the world of React Server Components, seamlessly blending server-side rendering with client-side interactivity for unmatched performance and user experience. Dive into React Server Actions to see how they combine client-side interactivity with server-side logic, making it easier to develop interactive applications without traditional API constraints.
Get hands-on experience with practical exercises, real-world examples, and expert guidance on implementing these technologies into your projects. Learn essential topics such as the differences between Server and Client Components, optimizing data fetching, passing data effectively, and maximizing performance with new React hooks like useActionState, useFormStatus and useOptimistic.
Whether you're new to React or a seasoned pro, this workshop will equip you with the knowledge and tools to elevate your web development skills. Stay ahead of the curve and master the cutting-edge technology of React 19. Don't miss out - sign up now and unleash the full power of React!
The Journey From React Frontend Development to Fullstack Development With Next.js
React Advanced 2024React Advanced 2024
143 min
The Journey From React Frontend Development to Fullstack Development With Next.js
Workshop
Eric Burel
Eric Burel
Join us as we journey from React frontend development to fullstack development with Next.js. During this workshop, we'll follow along the official Next.js Learn tutorial with Eric Burel, professional trainer and author of NextPatterns.dev. Together, we'll set up a Next.js website and explore its server-side features to build performant apps.
- Introduction: discovering Next.js and its server-centric philosophy- Crafting a perfectly optimized multi-page website- Making sense of Next.js server-side rendering capabilities- Conclusion: how Next.js empowers you as a React developer
AI for React Developers
React Advanced 2024React Advanced 2024
142 min
AI for React Developers
Featured Workshop
Eve Porcello
Eve Porcello
Knowledge of AI tooling is critical for future-proofing the careers of React developers, and the Vercel suite of AI tools is an approachable on-ramp. In this course, we’ll take a closer look at the Vercel AI SDK and how this can help React developers build streaming interfaces with JavaScript and Next.js. We’ll also incorporate additional 3rd party APIs to build and deploy a music visualization app.
Topics:- Creating a React Project with Next.js- Choosing a LLM- Customizing Streaming Interfaces- Building Routes- Creating and Generating Components - Using Hooks (useChat, useCompletion, useActions, etc)
Scaling Fast – Engineering Lessons From ~15 Years of Tech Startups
React Advanced 2024React Advanced 2024
27 min
Scaling Fast – Engineering Lessons From ~15 Years of Tech Startups
Hey, we'll discuss scaling fast and engineering lessons learned in the last 15 years of tech startups. Scaling involves three things: business, team, and tech. Business scalability relies on sales and customer acquisition costs. Engineering is a tool the business uses. Scaling the team is vital as tech problems are often people problems. Team structure affects architecture and product development process. Organize teams based on purpose, not technology. Spend less time being blocked by other teams. Ship features without getting blocked. Own your own mess. Focus on product engineering partnership. Build faster using feedback cycles. Build appropriate solutions for your use case. Let go of ego and experiment with different approaches. Engineers own their own mess. Avoid work in progress. Finish the work and focus on fixing it later. Have a conversation before writing code. Scaling the tech is easier than you think. Pick an off the shelf design. Save innovation for core parts. Pick existing solutions. Focus on solving the problem. Don't waste time trying to predict future scale. Scale will surprise you. Do what works for your business. Push back on unnecessary complexity. Understand the cost of ideas. Modify the situation to fit existing design. Architecture is like a dependency graph on your code. Reduce architectural complexity by organizing code based on what it does. Use vertical models and avoid creating excessive dependencies. On the client, use vertical modules. On the back end, consider a service-oriented architecture. Start with a monolith and transition to microservices if necessary. Use folders instead of microservices when you have a small team. Use vertical models and contract or type-driven development to define clear APIs and interfaces. Avoid highly interconnected code and duplication. Focus on data structures to avoid complexity and the need for translation layers. Building translation layers can lead to slow user experience. Vertical teams aligned with vertical code allow for fast problem-solving, full control of features, and efficient data handling. Understanding the entire domain enables faster development with fewer bugs.
CSS Is More Powerful Than You Think! Building React Search in CSS
React Advanced 2024React Advanced 2024
23 min
CSS Is More Powerful Than You Think! Building React Search in CSS
Hello, everybody. Today, I'm going to talk about how I solved actual challenges in React using only CSS. One of the main packages I maintain is EmojiPicker React, with hundreds of thousands of weekly downloads. It has all the features you'd expect from an EmojiPicker, but the search capability was slow. I managed to fix it using CSS. Let me show you how. The search functionality relies on global state and requires updating each emoji individually, resulting in excessive DOM work. Virtualization or virtual scrolling is not a viable solution due to the non-uniform emoji list. By examining the DOM, I discovered that each emoji had an area label with search-related information. This led me to investigate further and implement a solution from scratch. We create a new component called CSS search, which takes a value as a string. If the value is empty, we return null. We remove all emojis from the emoji list if there are search results. Emojis that match the search term are displayed. Performance is instantaneous. Empty categories are removed using the CSS has attribute. The CSS not and has selectors are used to remove empty categories. A counter is used to display the count of emojis found. By using flexbox and order, we can position the after element at the beginning of the list. CSS nesting allows us to nest everything under the emoji list, simplifying the structure. The performance of the search is still very fast. I created the flareup package, a CSS in JS library specifically for NPM packages. Flareup solves compatibility issues and works on SSR and CSR. Emoji-picker-react uses flareup to render emojis without JavaScript. Flareup places a style element on the DOM, making it easy to use.
Increasing Your Sphere of Influence as a Staff Engineer
React Advanced 2024React Advanced 2024
26 min
Increasing Your Sphere of Influence as a Staff Engineer
Welcome to my talk at React Advanced 2024, How to Increase Your Impact as a Staff Engineer. In this presentation, I will give actionable tips on increasing your influence as a staff developer. Staff engineers have responsibilities such as identifying inefficiencies, performing background tasks, and balancing sprint work with staff-eng tasks. They also share knowledge through documentation and mentorship, and drive high-impact projects. Staff engineers ensure high-quality code through testing, advocacy for best practices, and innovation. To build influence, lead by example, be a mentor, and prioritize documentation and project management. Strategic thinking and problem-solving are crucial for staff engineers. Broadening expertise, showcasing work, and having public visibility are important for career growth and recognition. Open sourcing code and public engagement are valuable for staff engineers. Thank you for attending the talk!
Is Bun 'Actually' Faster?
React Advanced 2024React Advanced 2024
24 min
Is Bun 'Actually' Faster?
Welcome to React Advanced London. Today's agenda: what is bun? Features, benchmark, demo, key takeaways. Bun provides a better developer experience, faster CI, and decreased app file size. Building bun on top of Zig prioritizes performance, stability, and compatibility. Install bun with npm or download the binary from the official website. Bun is a comprehensive development toolkit with a fast and efficient package manager. Learn how to benchmark CLI commands using Hyperfine with flags. Compare different package managers. Bond is fast and provides a few features in its package manager: install, add, remove, update, link. Test the bond test runner against vtest and jest using hyperfine. Discover the features supported by the test runner and the importance of bundling in JavaScript applications. Learn about the main.js code, the performance comparison of different bundlers, and the features offered by Bun, including loaders and macros. Explore macros in Bonn and how to optimize the code by including the type macro. Discover the benefits of Bonn, such as reducing CPU usage and fast installation of node dependencies.
Astro – Island Technology in the Name of Optimization
React Advanced 2024React Advanced 2024
20 min
Astro – Island Technology in the Name of Optimization
Hello everyone. My name is Szymon Chmal and I am a Senior React Native Developer at CallStack. Today I'm going to introduce you to ASTRA, a powerful tool in modern web development that optimizes content delivery while providing the flexibility of modern JavaScript frameworks. ASTRA allows you to create blazing fast static websites without needing any JavaScript by default. It's perfect for sites that are mostly static but have a few interactive features. ASTRA is trusted by industry leaders like Microsoft and Porsche. It's built with content-driven pages in mind and supports integration with popular UI libraries like React, Vue, and Tailwind. ASTRA keeps things simple with file-based routing.
Let's Build Suspense 🥁
React Advanced 2024React Advanced 2024
20 min
Let's Build Suspense 🥁
Hi, my name is Julian, and I'm extremely excited to talk about suspense. Suspense allows you to render fallback UI while waiting for asynchronous tasks to resolve, making it the unsung hero of React components. In today's talk, I will explain why suspense is crucial for React server components. Before diving into server components, let's understand the history of web rendering and the problems it posed. We then introduced server-side rendering (SSR) and static-side generation (SSG) to address these issues. However, SSR had problems like large bundle sizes, slow hydration, and sluggish initial server response time. React server components solve these problems by allowing us to differentiate between static and dynamic components. But to address the third problem, we need suspense. Today, we'll build a simplified version of suspense on the server to demonstrate its conceptual working and how it improves the rendering process from classical SSR to streaming and out-of-order streaming. Let's dive into the code by building a movie app called Notflix. We have different sections like the title, cast members, and similar movies. The components fetch their own data asynchronously, making them server components. In the classical way of server-side rendering, we loop through the children, execute them as server components, and render the HTML response. To improve the user experience, we introduce streaming, which allows us to start the response on the server, keep the connection open, and add to the response document as data becomes available. By using the write method provided by Express, we can write to the response stream instead of collecting all the HTML. Dealing with promises in sequence ensures that components are rendered in the correct order. Although the server-side rendering has improved, there is still no loading state or proper handling of suspended children. To address this, we introduce suspense on the server and build a suspense component with a fallback UI and children. We keep track of suspended children using a simple object with unique identifiers. In the renderer, we check the suspended object and loop through the entries to handle each suspended child. To replace the loading state with the content once it's available, we need to execute asynchronous functions to collect and concatenate the content, delete the entry from the suspended object, and use JavaScript to handle the swapping of elements in the browser. To replace the fallback renderer with the content, we need to wrap the fallback in a diff and add an identifier using a data attribute. We can use the CSS trick of 'display: contents' to prevent the diff from affecting the layout. Next, we wrap the available content in a template tag to add it to the document without rendering. Finally, we use custom elements and a connected callback to swap the loading boundary with the content based on the identifier. This allows us to replace multiple fallback renderers. By wrapping each section in its own boundary, the user experience is significantly improved as each section can load independently. This approach also emphasizes the importance of using the platform's existing features and functionality, such as browser caching, to enhance performance. Thank you for watching and enjoy the rest of the conference!
Long Frames and INP – Understanding the Post Load Performance
React Advanced 2024React Advanced 2024
23 min
Long Frames and INP – Understanding the Post Load Performance
Welcome to my talk on long frames and INP, understanding the post-load performance. The rail model introduced in 2015 provides recommendations for responsiveness and organizing JavaScript work around user input. Metrics like FCP, FMP, and LCP measure visual completeness, while metrics like first interactive and CPU idle assess CPU idleness. Total blocking time measures the impact of long tasks on page responsiveness, and TTI assesses when the browser can respond to interactions reliably. INP is a user-centric responsiveness metric that encompasses all potential causes of slow interactions. The long animation frame API improves attribution and helps pinpoint performance problems. Tools like Vercel toolbar and trace viewer on PerfLab can visualize interaction to next paint. INP and long animation frames provide valuable insights for improving web experiences.

Free perks

Full-access remote attendee gets

hands-on workshops with field experts
Participate in hands-on sessions and get certificates
Speakers’ personal video rooms
Hang out with well-know JavaScript developers and ask them anything
Q&A Discord channels
Enjoy chatting with the speakers in Discord space

Discussions

Join discussions focusing on specific technologies. Hang out with people who are on the same page. Discussion rooms on October 25 will be held in a hybrid format, while on October 29 in a remote format.

Why Don’t We Use React Suspense More? logo

Why Don’t We Use React Suspense More?

DiscussionRoom
Oct. 25, 12:30
Dominik Dorfmeister closeupStephen Cooper closeupTobbe Lundberg closeupDaishi Kato closeupJack Herrington closeup
Dominik Dorfmeister, Stephen Cooper, Tobbe Lundberg, Daishi Kato, Jack Herrington,
What Three Libraries Would You Bring to a Pub Fight logo

What Three Libraries Would You Bring to a Pub Fight

DiscussionRoom
Oct. 25, 13:30
Steve Ruiz closeupJack Herrington closeupCedric van Putten closeupSzymon Chmal closeup
Steve Ruiz, Jack Herrington, Cedric van Putten, Szymon Chmal,
Is Using AI Code Cheating? logo

Is Using AI Code Cheating?

DiscussionRoom
Oct. 29, 15:00
Alexandre Moureaux closeupAleksandra Sikora closeupTobbe Lundberg closeupSteve Ruiz closeupEric Burel closeupCedric van Putten closeupIan Schwartz closeupSzymon Chmal closeupJamie Birch closeupNina Torgunakova closeup
Alexandre Moureaux, Aleksandra Sikora, Tobbe Lundberg, Steve Ruiz, Eric Burel, Cedric van Putten, Ian Schwartz, Szymon Chmal, Jamie Birch, Nina Torgunakova,
React Compiler - Has it Been as Good as You Hoped? logo

React Compiler - Has it Been as Good as You Hoped?

DiscussionRoom
Oct. 29, 16:00
Lenz Weber-Tronic closeupCedric van Putten closeup
Lenz Weber-Tronic, Cedric van Putten,

Our MCs

Jani Eväkallio avatar
Jani Eväkallio
Software Engineer
Jani Eväkallio is a full-stack software engineer living the startup life in London.
Eli Schutze avatar
Eli Schutze
Sling Money
Software engineer based in London. Originally from Nicaragua, Eli is also a speaker and community organiser, so when she’s not working you can find her at tech events, teaching people to code or tweeting.
Mettin Parzinski avatar
Mettin Parzinski
Miro
Father, husband, squash player, quite bad at chess, metalhead, aspiring woodworker. Working in the developer experience team at Miro to enable other developers to create awesome plugins for Miro boards.
Nathaniel Okenwa avatar
Nathaniel Okenwa
Twilio
Nathaniel is a Developer Evangelist at Twilio working to create magical moments for developers with their products. He is a die hard fan of JavaScript, sports, superheroes and mixed martial arts. His life goals are to have Batman's brains, Deadpool's humour, T'Challa's fashion sense, Killmonger's Wokeness, and Thanos' determination! He serves the Javascript community in the UK and the rest of Europe.

Sponsors


Would like to join the community and improve your tech brand?
Check out the sponsors' offers

Platinum
  • Ag Grid logo
  • MUI logo
Gold
  • Contentful logo
Tech
  • FocusReactive logo
  • Hygraph logo
Silver
  • Bloomberg logo
  • EdgeDB logo
  • RedwoodJS logo
  • bettermarks logo
Media
  • DevIT Jobs logo
  • Jack Herrington logo
  • ATTS logo
  • JSMastery logo
  • React Status logo
Community
  • Unicorn Club (Black logo) logo
  • PragueJS logo
  • Kiel React (Native) Meetup logo
  • GrazJS logo
  • Software Craft Luxembourg logo
  • DeveD logo
  • BeerJS Skopje  logo
  • This Week In React logo
  •  Angular Rome logo
  • React Brussels logo
  • Front(end | &) Beers logo
  • Meet.js Poland logo
  • JavaScript London logo
  • Remix London logo
  • Infoshare logo
  • CopenhagenJS logo
  • React Vienna logo
  •  ReactJS Göteborg logo
  • GreeceJS logo
  • RomaJS logo
  •  Torino .NET logo
  • JSLovers logo
  • Remix Vienna logo
  • GDG Toruń logo
  • Coders In Hoods logo
  • Gdańsk TypeScript Meetup logo
  • .NET Usergroup Zentralschweiz logo
  •  Bologna JS Meetup logo
  • She Can Code logo
  • React Africa logo
  • Theodo.apps logo
  • Expo logo
  • React India logo
  • Women Coding Community logo