November 18 - 21, 2024
In collaboration with
👍
👏
😆
😲
🎉
🚀
📝
* Use Note emoji to mark highlights, we'll generate clips and save to your bookmarks
Community track
Community Track Q&A Rooms
Residents Track
Residents Track Q&A Rooms
Discussion Rooms
Opening Ceremony
The Ai-Assisted Developer Workflow: Build Faster and Smarter Today icon
Addy Osmani «‎The Ai-Assisted Developer Workflow: Build Faster and Smarter Today»
Short break
Your App Crashes My Browser icon
Stoyan Stefanov «‎Your App Crashes My Browser»
Rspack Recently Was Awarded Breakthrough of the Year at JSNation icon
Zack Jackson «‎Rspack Recently Was Awarded Breakthrough of the Year at JSNation»
Break
Modern JavaScript: Leveling Up Arrays and Intl icon
Mariko Kosaka «‎Modern JavaScript: Leveling Up Arrays and Intl»
Standardizing Signals in TC39 icon
Daniel Ehrenberg «‎Standardizing Signals in TC39»
Break
Svelte 5: North Star icon
Rich Harris «‎Svelte 5: North Star»
Lightning Talks
Break
From the Crypt to the Code: Web Security Explored Through Horror Movies icon
Ramona Schwering «‎From the Crypt to the Code: Web Security Explored Through Horror Movies»
A Look Ahead at Web Development in 2025 icon
Wes Bos «‎A Look Ahead at Web Development in 2025»
Closing Ceremony
Opening
Advanced Playwright Techniques for Flawless Testing icon
Debbie O'Brien «‎Advanced Playwright Techniques for Flawless Testing»
Manual to Magical: AI in Developer Tooling icon
Tobbe Lundberg «‎Manual to Magical: AI in Developer Tooling»
Leveraging Data Flow Programming for Scalable and Efficient AI Systems in Distributed Environments icon
Satoshi Nakajima «‎Leveraging Data Flow Programming for Scalable and Efficient AI Systems in Distributed Environments»
The Dilemmas I Faced When Building a Component Library icon
Andrico Karoulla «‎The Dilemmas I Faced When Building a Component Library»
Break
Modern & Secure Streaming on the Web icon
Katarzyna Dusza «‎Modern & Secure Streaming on the Web»
Watch Me Run Malware From NPM icon
Zbyszek Tenerowicz «‎Watch Me Run Malware From NPM»
A Different Kind of Serverless: A Case Study for SQLite and Whisper.cpp icon
Chris Griffing «‎A Different Kind of Serverless: A Case Study for SQLite and Whisper.cpp»
In Memory of Travails icon
Gabriel Schulhof «‎In Memory of Travails»
It’s Time to Fall in Love With CSS (Again) icon
Tony Alicea «‎It’s Time to Fall in Love With CSS (Again)»
Break
Scaling a11y icon
Tim Damen «‎Scaling a11y»
Local-First: A Crazy New Way to Build Apps icon
Anselm Eickhoff «‎Local-First: A Crazy New Way to Build Apps»
Nue: The UX Framework for the Web icon
Tero Piirainen «‎Nue: The UX Framework for the Web»
Web Workers: Handling Heavy Processing on the Client Side icon
Kevin Uehara «‎Web Workers: Handling Heavy Processing on the Client Side»
JavaScript Took Over the Server, Its Time It Takes Over the Database Too icon
Benjamin Swerdlow «‎JavaScript Took Over the Server, Its Time It Takes Over the Database Too»
Break
Temporal: Modern Dates and Times in JavaScript icon
Philip Chimento «‎Temporal: Modern Dates and Times in JavaScript»
AI-Powered E2E UI Testing: Faster Creation, Easier Maintenance icon
Daniel Ostrovsky «‎AI-Powered E2E UI Testing: Faster Creation, Easier Maintenance»
Unlocking Fun Experiments: Exploring the Web Speech API icon
Ana Rodrigues «‎Unlocking Fun Experiments: Exploring the Web Speech API»
Twenty Years of Web Testing: From Selenium's Dawn to Vitest's Promise icon
Jessica Sachs «‎Twenty Years of Web Testing: From Selenium's Dawn to Vitest's Promise»
Closing
No Seriously: htmx is Pro-JavaScript! icon
Carson Gross «‎No Seriously: htmx is Pro-JavaScript!»
What's New in Vite 6 icon
Dominik Göpel «‎What's New in Vite 6»
Break
Green Bytes: How Enhancing Web Vitals Contributes to Environmental Sustainability icon
Dimitris Kiriakakis «‎Green Bytes: How Enhancing Web Vitals Contributes to Environmental Sustainability»
Simplified Animations on the Web icon
Mike Hartington «‎Simplified Animations on the Web»
Break
Benchmark Rusty Parsers in JS icon
Herrington Darkholme «‎Benchmark Rusty Parsers in JS»
Five Ways To Make Your Thinking Visible In Engineering Collaboration icon
Karen Li «‎Five Ways To Make Your Thinking Visible In Engineering Collaboration»
Break
1000 Ways to Autocomplete icon
CJ Reynolds «‎1000 Ways to Autocomplete»
Porting Turborepo to Rust icon
Nicholas Yang «‎Porting Turborepo to Rust»
Opening
Build RAG from Scratch icon
Phil Nash «‎Build RAG from Scratch»
Unlocking the Potential of Real-Time Event-Driven Applications With JavaScript icon
Jarred Utt «‎Unlocking the Potential of Real-Time Event-Driven Applications With JavaScript»
Breaking the Code Behind Realtime Collaboration With Websockets icon
Vitor Norton «‎Breaking the Code Behind Realtime Collaboration With Websockets»
Stop Guessing, Start Measuring: Quantifying Accessibility icon
Giamir Buoncristiani «‎Stop Guessing, Start Measuring: Quantifying Accessibility»
Break
Monorepos & Spaceships – Navigating Successfully Through Code and Cosmos icon
Max Kless «‎Monorepos & Spaceships – Navigating Successfully Through Code and Cosmos»
The Performance Impact of Generated JavaScript icon
Abhijeet Prasad «‎The Performance Impact of Generated JavaScript»
Computer Vision on Your Browser With SVG Filters icon
Adam Klein «‎Computer Vision on Your Browser With SVG Filters»
Fast, Flexible Virtual Scrolling With Functional Programming icon
Adam Niederer «‎Fast, Flexible Virtual Scrolling With Functional Programming»
Experimentation Driven Development icon
Graham McNicoll «‎Experimentation Driven Development»
Break
SolidStart: The Shape of Frameworks to Come icon
Daniel Afonso «‎SolidStart: The Shape of Frameworks to Come»
Module Federation: Divide, Conquer, Share! icon
Nataly Rocha «‎Module Federation: Divide, Conquer, Share!»
inlang - Using Version Control to Solve i18n icon
Samuel Stroschein «‎inlang - Using Version Control to Solve i18n»
Micro Frontends and Security icon
Florian Rappl «‎Micro Frontends and Security»
Advanced Mathematics and Data Analysis With JavaScript icon
Gunj Joshi «‎Advanced Mathematics and Data Analysis With JavaScript»
Break
Building Bridges: How Open Source Contributions Enhance Your Web Development Career icon
Pachi Parra «‎Building Bridges: How Open Source Contributions Enhance Your Web Development Career»
Ensuring Typescript Code Quality With expect-type icon
Misha Kaletsky «‎Ensuring Typescript Code Quality With expect-type»
Observability Matters: This Time for Frontend icon
Yash Verma «‎Observability Matters: This Time for Frontend»
The Roof Is on Fire? icon
Theodore Vorillas «‎The Roof Is on Fire?»
Closing
Published recordings
See all
Building Robust Web Applications with Test-Driven Development and Playwright
JSNation US 2024JSNation US 2024
145 min
Building Robust Web Applications with Test-Driven Development and Playwright
Workshop
Maurice de Beijer
Maurice de Beijer
Get ready to take your front-end development skills to the next level with our hands-on workshop. In this four-hour session, you will learn the ins and outs of test-driven development using Playwright, a powerful tool that will revolutionize your web development workflow.Are you tired of spending endless hours debugging issues in your web applications? Dive deep into writing tests before writing code, ensuring top-notch quality and functionality in your web applications. Say goodbye to manual testing and hello to automated tests that catch bugs early in the development process.Join us for an interactive and fun workshop where you'll gain the confidence to elevate your front-end development game and build web applications like a pro. Don't let common pain points like inconsistent UI behavior or regression issues slow you down - learn how to effectively use Playwright to avoid these pitfalls and streamline your development process.Don't miss this opportunity to unlock the full potential of test-driven development with Playwright – sign up now and get ready to uplevel your skills!
Advanced TypeScript for Bun and Node.js
JSNation US 2024JSNation US 2024
103 min
Advanced TypeScript for Bun and Node.js
Workshop
Adrian Hajdin
Adrian Hajdin
Learn the full potential of TypeScript by using advanced features like Type Inference, Type Guards, Generics, Transformers, and Utility Types with asynchronous programming in both Node.js (using Express.js) and Bun.js (using Hono.js), all while understanding best practices for building strongly typed APIs with different databases.OverviewIn this workshop, we’ll kick off with a discussion on the recent updates in Node.js and Bun.js, focusing on their built-in TypeScript support. You'll learn how to set up TypeScript in both runtimes and create strictly typed APIs using Express.js and Hono.js. Through hands-on demos, we'll explore integration with various databases like MongoDB and Postgres, leveraging advanced TypeScript features to build robust applications. By the end of the workshop, you'll be equipped with the knowledge to optimize TypeScript code for performance and design patterns, ensuring your APIs are both efficient and maintainable.Learning Goals- Introduction to Node.js’s and Bun.js’s TypeScript support- Advanced TypeScript Features: Generics, Type Guards, Mapped Types, etc.- Middleware and Dependency Injection with Express.js and Hono.js- Design Pattern and Performance Enhancements in TypeScript- Unit and Integration Testing with TypeScript- Database Integration: MongoDB, Postgres, Prisma, and others- Best Practices for Robust API Development in both Node.js and Bun.js
Twenty Years of Web Testing: From Selenium's Dawn to Vitest's Promise
JSNation US 2024JSNation US 2024
22 min
Twenty Years of Web Testing: From Selenium's Dawn to Vitest's Promise
Watch video: Twenty Years of Web Testing: From Selenium's Dawn to Vitest's Promise
My goal with this talk was to answer the question of why we have another test runner. The talk breaks down the history of web testing into three chunks: the click-through era, browser war one, and browser war two. It discusses the motivations behind browser test runners and node test runners, highlighting Karma as the first node-based runner that gained popularity. The rise of node-based test runners like Ava, Tape, Mocha, and Jest is attributed to their stability and ease of use compared to Karma. Jest faced challenges with module loading and transpiling, but its non-opinionated abstraction made it a suitable choice. The shift towards environment-aware runners like VTest allows for safer testing and aligns with the need for transpilation across different environments. Lastly, the talk touches on the future of test tooling and the implications of AI on testing.
Unlocking Fun Experiments: Exploring the Web Speech API
JSNation US 2024JSNation US 2024
21 min
Unlocking Fun Experiments: Exploring the Web Speech API
Watch video: Unlocking Fun Experiments: Exploring the Web Speech API
Hello, JS Nation! Today, I'll show you how I created gamified karaoke using Web Speech API. The Web Speech API has two parts: speech recognition and speech to text. It was originally built for karaoke but can also be used for forms and dictation. There are some quirks with the speech recognition API, such as limited microphone input and variation in implementation and privacy concerns across browsers. The speaker demonstrates how to implement speech recognition in a karaoke application and tests its error matching capabilities. Other interesting points include voice interface design considerations and the value of engaging in fun and unproductive side projects.
The Roof Is on Fire?
JSNation US 2024JSNation US 2024
18 min
The Roof Is on Fire?
Hi there. I'm Teodor, a web developer building Proxima, an open source analytics platform. In June 2021, a wildfire burned down a huge area near my house in Athens. I had an idea to build a low-cost, open, and accessible device to monitor and alert authorities of fire outbreaks. JavaScript is event-driven and perfect for IoT applications. DeviceScript is a versatile framework for writing code targeting IoT development boards. We can expand device functionality by adding sensors for temperature, humidity, gas, and flames. We can establish a mesh network using Painless Mess for wider coverage. LoRa can be used for off-grid emergency setups. AI and ML techniques can be applied for failure forecasting and running inference on the device. The VALS BME 688 gas sensor can improve detection accuracy. USC team is working on a model to predict high wildfire danger areas. Innovation thrives at the intersection of ideas and technology.
AI-Powered E2E UI Testing: Faster Creation, Easier Maintenance
JSNation US 2024JSNation US 2024
10 min
AI-Powered E2E UI Testing: Faster Creation, Easier Maintenance
Hello, everyone. Today we are going to explore AI-powered end-to-end testing. Unlike unit tests, UI testing has a huge layer of obstructions between the source code and the rendered UI. The source code includes HTML, CSS, and TypeScript, which are transpiled into JavaScript and bundled with tools like Webpack. AI can generate tests effectively for standard websites or blogs, but it may struggle with niche applications behind strict authorization or on-premise tools. AI-powered end-to-end testing for complex scenarios requires our guidance. We use meaningful data test IDs and follow the page objects model pattern. Additionally, we rely on useful tools like the end-to-end test helper in-browser extension and the continue IDE extension. Now, let's proceed to the demo, where we will create tests for the Pokemon application, including the ability to filter by name or type. We will navigate to the Pokemon details page and use our extension to manage settings and prompts. Additionally, we will create the details page object together and generate the test file. The Pokemon details page has 105 elements. We can view the elements for debugging purposes, including page object name, Pokemon details page, and system message. We will copy the page object and save it to a file. We need to make it exportable. Then, we will use the extension to create an end-to-end test and pass the context. I will use all the open files, including the page objects and the test case itself. I will send them to EI along with the predefined prompt. There is a system message and additional information we need to be aware of. The test runs successfully, and that concludes this part.
Temporal: Modern Dates and Times in JavaScript
JSNation US 2024JSNation US 2024
22 min
Temporal: Modern Dates and Times in JavaScript
I'll speak today about the temporal proposal, which adds modern date and time handling to JavaScript. Temporal is an API that'll be available in browsers soon and will add a built-in library for dates and times, avoiding the need for external libraries like Moment. It offers strong typing with different types for different data, such as calendar dates with or without time. Temporal objects are immutable and designed to work with JavaScript's internationalization facilities. It addresses deficiencies in the global date object and introduces types like instant and plain types for accurate representation of time and dates across time zones. With the old date, representing a date without a time can be problematic, especially in time zones where midnight is skipped due to daylight saving time. Temporal introduces types like plain date, plain time, plain year month, plain month day, and zone date time to accurately represent different scenarios. Additionally, there is a type called duration for arithmetic operations and unit conversion. Now that I've introduced you to the cast of characters in temporal, it's time to show how to accomplish a programming task. We'll start with an easy task: getting the current time as a timestamp in milliseconds using the instant type. To convert between Temporal types, you can either drop or add information. The two zone date time method is used for conversion and requires adding a time zone and a time. Although Temporal objects are immutable, you can create new objects with replaced components using the with method. Migrating from the old date object to Temporal offers a more reliable solution and avoids potential bugs. Check out the documentation for more details and enjoy using Temporal in your codebase!
Observability Matters: This Time for Frontend
JSNation US 2024JSNation US 2024
24 min
Observability Matters: This Time for Frontend
Watch video: Observability Matters: This Time for Frontend
Hi, everyone! My name is Yash Varma, and I'm a software engineer and computer researcher. I'm an open telemetry enthusiast, working on creating a vendor-neutral observability framework. Today's talk is titled as Observability Matters, this time for frontend. We'll cover the evolution of ZEP, the understanding of observability, current state of front-end monitoring tools, core essence of front-end observability, and front-end observability direction. Observability is about understanding what's happening inside the system based on its internal behavior or output. Front-end developers often lack observability compared to back end developers. Synthetic monitoring and real user monitoring are two common tools used by frontend developers. Front-end observability allows us to understand application performance for different users and situations, connecting the dots and gaining insight into core web vitals and user sessions. It's time to adopt observability as a culture and break down silos between front-end and back-end to better understand the entire user experience.
JavaScript Took Over the Server, Its Time It Takes Over the Database Too
JSNation US 2024JSNation US 2024
13 min
JavaScript Took Over the Server, Its Time It Takes Over the Database Too
Watch video: JavaScript Took Over the Server, Its Time It Takes Over the Database Too
Hi, I'm Ben, the CEO of Freestyle. We're building Cloud State, a JavaScript runtime that allows you to write your entire application in TypeScript. We believe that bringing all the layers into TypeScript natively can greatly improve team efficiency. By marking a class as 'at cloud state', it becomes persistent and can be deployed without a SQL database. Connecting to the front end is as simple as accessing the functions directly. CloudState enables the sharing of back-end data infrastructure as packages, eliminating the need for web servers and endpoints. Freestyle chat is an open-source chat solution that can be easily integrated into applications. Cloud State has the potential to transform databases like Node.js did to servers, making development better for JavaScript users.
Ensuring Typescript Code Quality With expect-type
JSNation US 2024JSNation US 2024
9 min
Ensuring Typescript Code Quality With expect-type
Expect Type is a library for type-level testing in TypeScript. It allows you to write tests for your types, ensuring that they stay what you want them to be as your code base evolves. The library supports a wide range of TypeScript features, including type guards, advanced features, and generic type testing. It also integrates with various test frameworks, including VTest. Best practices include testing only helpful things, making generics specific, and running tests as part of CI pipelines. Understanding error messages and fixing type errors are important aspects of using the library.

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 November 18 will be held in a hybrid format, while on November 21 in a remote format.

Evolution of Ecosystem/Language logo

Evolution of Ecosystem/Language

DiscussionRoom
Nov. 18, 16:00
Daniel Ehrenberg closeupJoran Quinten closeupRich Harris closeupMisha Kaletsky  closeup
Daniel Ehrenberg, Joran Quinten, Rich Harris, Misha Kaletsky ,
Simplicity vs Complexity in Modern Development Tools  logo

Simplicity vs Complexity in Modern Development Tools

DiscussionRoom
Nov. 18, 19:30
Daniel Ehrenberg closeupJoran Quinten closeupNicholas Yang closeupRich Harris closeupDominik Göpel closeupZack Jackson closeup
Daniel Ehrenberg, Joran Quinten, Nicholas Yang, Rich Harris, Dominik Göpel, Zack Jackson,
AI and Developer Tooling logo

AI and Developer Tooling

DiscussionRoom
Nov. 21, 15:30
Shivay Lamba closeupDimitris Kiriakakis closeupFlorian Rappl closeupAlvaro Saburido closeup
Shivay Lamba, Dimitris Kiriakakis, Florian Rappl, Alvaro Saburido,
Performance Prioritisation logo

Performance Prioritisation

DiscussionRoom
Nov. 21, 16:30
Daniel Ehrenberg closeupDimitris Kiriakakis closeupFlorian Rappl closeupVinicius Dallacqua closeupYash Verma closeup
Daniel Ehrenberg, Dimitris Kiriakakis, Florian Rappl, Vinicius Dallacqua, Yash Verma,

Our MCs

CJ Reynolds avatar
CJ Reynolds
Syntax.fm / Sentry
CJ is a Software Developer, Educator and Maker. He makes videos for Syntax.fm and streams himself teaching and coding on the Twitch and YouTube channel Coding Garden.
Daphne Oakes avatar
Daphne Oakes
Grow Therapy
Daphne is a comedian, software engineer, and conference speaker. She is on a mission to bring comedy into tech and has brought to conferences: a "He-Man" sing-along, AI-themed cha-cha slide, and a Pokemon speaker introduction. She's an engineer at Grow Therapy and previously worked at Lyft, Shopify, and Yelp. Based in Seattle, she enjoys improv, sketch writing, and hostel-hopping around the world. What makes her happiest in life is meeting people. So, if you want to yap with her all day, reach out to her through social media!
Henri Helvetica avatar
Henri Helvetica
command-h
Henri is a developer who has turned his interests to a passionate mix of site performance engineering with pinches of user experience. That, combined with his leadership of the Toronto Web Performance meetup, JAMstack Toronto meetup and curating conference content, has led to COMMAND-H — a small org in support of all his passions: people and developers. When not reading the deluge of daily research docs and case studies, streaming, or profiling sites in his favourite tool, Henri is focusing on running the fastest 5k possible (surprise surprise), encouraging a healthy lifestyle and sharing it all via #devsWhoRun.
Beau Carnes avatar
Beau Carnes
freeCodeCamp.org Teacher
Beau Carnes is a teacher and developer at freeCodeCamp.org, a community of people from all around the world who are learning to code together. Beau manages the freeCodeCamp.org YouTube channel, which has around 10M subscribers, making it the most subscribed software channel on YouTube. Beau has helped many people learn to code and start a tech career.

Sponsors


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

Platinum
  • Nx logo
Gold
  • Storyblok logo
  • Bloomberg logo
  • Squid logo
Tech
  • FocusReactive logo
  • Hygraph logo
Silver
  • Fiberplane logo
  • Elastic logo
Media
  • VueSchool logo
  • DevIT Jobs logo
  • JSMastery logo
  • Dave Gray logo
  • SitePoint logo
  • Certificates.dev logo
  • Syntax.fm logo
  • JS Party logo
Community
  • React Montreal logo
  • This Dot Labs logo
  • Unicorn Club logo
  • AngularSP logo
  • Le Wagon São Paulo logo
  • OttawaJS logo
  • Beginning Web Development logo
  • ABN AMRO logo
  • New York Software Engineers logo
  • ForwardJS Ottawa Meetup logo
  • Stack Builders logo
  • React India logo
  • Dev Dive Meetup logo
  • FloridaJS logo
  • NashJS logo
  • Chicago JavaScript logo
  • hackbuddy logo
  • HFX.js Meetup logo