Learn from the best cherry-picked trainers
Pro workshops at JSNation
Hands-on workshops will be run both in-person & remotely via Zoom.
The workshops listed below are not included in the Full conference ticket and should be bought separately. We'll be happy to provide a 15% discount in case you buy 3 and more workshop tickets. Just email us at [email protected].
React Future (Server Components and Actions) (in-person)
You’re interested in how far React can take the component model. Everyone is. While React has not yet officially released server components and actions as features in a stable version of React, you want to understand how these features work because you’d like to use them within one of the frameworks built on top of React which has support for them.
In this workshop we won’t be using any frameworks. In fact you might say we’ll be building our own framework. It’s important for you to understand at least one or two layers below where you typically operate to be able to use your abstractions effectively. So we’ll be working with the raw/unreleased/experimental/futuristic APIs for React Server Components and React Server Actions.
Once you finish this workshop, you’ll finally have the proper mental model for what server components and actions will do for you as an every day React app developer. Whatever kind of React app you’re building (and whatever architecture you have), you’ll find ways to apply these future features to your application eventually and after this workshop you’ll be eager to do so for the DX and UX improvements they provide.
In this workshop we’ll cover:
- The relationship between client and server components and their respective module graphs
- Streaming serialized React elements
- Submitting forms to server actions
- Managing pending state for server actions
- Providing great loading UX with optimistic UI
Currently working on this (stay tuned).
November 20, 9:00-18:00 EST. In-person in NY. Venue: TBA.
Advanced TypeScript (in-person)
You know TypeScript. But do you really know TypeScript?
Join Josh Goldberg, author of Learning TypeScript (O’Reilly) in a deep dive into your favorite strongly typed flavor of JavaScript. We’ll learn how to really use the type system to your advantage to help write readable, type-safe, TypeScript code.
This interactive workshop will build up your TypeScript mastery through the following sections:
- Structural typing: Recapping how the type system fundamentally works with inferred vs. explicit object types
- Using IDE features: Code navigation, name completions, and error debugging that level up any JavaScript and/or TypeScript developer
- Shape satisfaction: Showing different ways to create objects that partially or completely adhere to shapes, including with the new satisfies keyword
- Type modifiers: Using the keyof and typeof type-system-only keywords to infer types from values or other types
- Generics: Using type parameters, especially in conjunction with keyof and typeof, to introduce reusability into the type system
- Conditional types: Introducing logic into the type system for some truly dynamic types
- Mapped types: Transforming existing types into new ones for flexibility and reusability
- Miscellaneous: You tell me! We’ll spend the rest of the day covering any questions you have.
You'll emerge from this workshop ready and able to utilize all these wonderful tricks and more to bend TypeScript to your will.
November 20, 9:00-18:00 EST. In-person in NY. Venue: TBA.
TypeScript, Deep Dive (remote)
More and more projects are using TypeScript. This workshop will provide a deep dive into the language, and basic TypeScript knowledge is assumed. We will briefly discuss the design philosophy of TypeScript, and then cover all the lesser-known or harder features. That is: do all the cool and weird meta programming stuff (TS is turing complete!) and learn the tricks you won't find in the handbook.
So join if you feel like you're writing too much type annotations to make TypeScript happy! We'll dive deep into how type inference and control flows works, and how you can make the compiler work for you. We'll discuss all the fancier language constructs like:
- ReturnType<>, Parameters<>
- typeof, keyof
- Mapped types
- ConditionalTypes
- Function overloading
- Discrimination unions
- Type guards and type assertions
- String template types
- (Variadic) tuple types
October 30-31, 11:00-15:00 EST. Remote via Zoom.
Mocking Techniques in Vitest (remote)
In this 2-days workshop you will finally understand mocking in JavaScript. You are going to look at the mental models behind mocking as a tool, as well as practice various mocking techniques you need in your day-to-day testing life.
- Boundaries. Learn what mocking actually is, why and when you should use it, and what it does to your tested code.
- Functions. Discover how to use mock functions, spy on existing functions, and mock function behaviors in tests.
- Date and time. Wield the power of space and time to mock date, time, timers, and even event loop ticks.
- Network. Gain full control over the network in your tests using Mock Service Worker. Learn how to intercept any request you want, and mock its response, including error responses, network errors, and response timings.
You don't have to have any prior experience with automated testing to complete this workshop. Having a basic experience with JavaScript, however, is required as we won't be covering things like objects, functions, imports/exports as a part of this workshop. Having a prior experience with testing frameworks is preferred.
Suitable for any level. There's a ton of material to learn if you've just started testing yesterday as well as if you've been doing it for years.
November 11-12, 10:00-14:00 EST. Remote via Zoom.
Advanced React Workshop: What's New in React (remote)
In this workshop we’ll dive into the latest advancements in React and best practices for building modern React apps. We’ll take a look at modern NextJS and Remix along with React’s new “React Server Components”. We’ll also talk about improving the data-fetching strategies of your SPAs along with options for migrating your SPA to modern React Router.
Learn how to prevent data-fetching waterfalls and also leverage modern caching strategies. Learn modern strategies for performance and data streaming. Learn React Server Components and how they differ from traditional SSR in React. Learn new ways of managing form data with React Server Components. Understand how to better use transitions and optimistic UI for better user experiences. Understand your React architecture and rendering options: SSR, CSR, RSC, SPA and MPA. Explore differences between NextJS and Remix.
November 13-14, 10:00-14:00 EST. Remote via Zoom.
Trainers
Kent C. Dodds is a world renowned speaker, teacher, and trainer and he's actively involved in the open source community as a maintainer and contributor of hundreds of popular npm packages. He is the creator of EpicReact.Dev and TestingJavaScript.com. He's an instructor on egghead.io and Frontend Masters. He's also a Google Developer Expert. Kent is happily married and the father of four kids. He likes his family, code, JavaScript, and Remix.
Hi, I’m Josh! I’m an independent full time open source developer. I work on projects in the TypeScript ecosystem, most notably typescript-eslint: the tooling that enables ESLint and Prettier to run on TypeScript code. I’m also the author of the O’Reilly Learning TypeScript book, a Microsoft MVP for developer technologies, and an active conference speaker. My personal projects range from static analysis to meta-languages to recreating retro games in the browser. Also cats.
Open source fanatic, speaker and trainer. Author of MobX, MobX-State-Tree, Immer and a plethora of smaller packages. On a continuous quest to make programming as natural as possible. React, JavaScript and TypeScript fan. Working at Facebook on dev tooling for mobile developers.
Brad Westfall has been teaching Web Development since 2010 including bootcamp instruction, online videos, conference speaking, writing at CSS-Tricks.com, and corporate training for ReactTraining.com. He loves to connect with students by helping them achieve their technical goals and by distilling complex concepts into simple instruction.