Remote
In-person
2023-04-14T07:00:00.000Z
2023-04-14T08:00:00.000Z
2023-04-14T09:00:00.000Z
2023-04-14T10:00:00.000Z
2023-04-14T11:00:00.000Z
2023-04-14T12:00:00.000Z
2023-04-14T13:00:00.000Z
2023-04-14T14:00:00.000Z
2023-04-14T15:00:00.000Z
2023-04-14T16:00:00.000Z
2023-04-14T17:00:00.000Z
JS-torm Track
2023-04-14T07:10:00.000Z
Opening Ceremony
2023-04-14T07:20:00.000Z
Deno 2.0
Ryan Dahl
Deno

Deno 2.0 is imminent and it's bringing some big changes to the JavaScript runtime. In this talk, we'll introduce the new features including import maps, package.json auto-discovery, and bare specifiers. We'll discuss how these improvements will help address issues like duplicate dependencies and disappearing dependencies. Additionally, we'll delve into the built-in support for deno: specifiers on the deno.land/x registry and its role in providing a recommended path for publishing. Come learn about how these updates will shape the future of the JavaScript ecosystem and improve backwards compatibility with Node applications.

2023-04-14T07:50:00.000Z
QnA with Ryan Dahl
2023-04-14T08:10:00.000Z
The Road to Async Context
James M Snell
Cloudflare

The AsyncLocalStorage API is arguably one of the most important relatively recent additions to Node.js. Today we are seeing implementations being added to other runs such as workerd, deno, and bun. And there is an effort underway in TC-39 to introduce a new AsyncContext API to the language. This talk will introduce async context tracking with AsyncLocalStorage and AsyncContext and discuss how the model is evolving as it is being implemented across multiple platforms.

2023-04-14T08:30:00.000Z
QnA with James M Snell
2023-04-14T08:50:00.000Z
How to use ChatGPT with Node.js
Lizz Parody
Stateful

ChatGPT is revolutionizing the internet. In January 2023, ChatGPT reached over 100 million users, making it the fastest-growing consumer application to date. Don't miss this talk and learn how to To use ChatGPT in a Node.js application, we will use: OpenAI API to interact with the ChatGPT model, we will get an API key from OpenAI, and then use an API client library to make requests to the API from your Node.js code. Learn hacks on how to optimize your productivity with ChatGPT and have fun with artificial intelligence!

2023-04-14T09:10:00.000Z
QnA with Lizz Parody
2023-04-14T09:20:00.000Z
Coffee Break
2023-04-14T09:50:00.000Z
tRPC - Move Fast and Break Nothing
Alexander Johansson
Tola

How, why and how to use tRPC by the creator of it.

2023-04-14T10:10:00.000Z
QnA with Alexander Johansson
2023-04-14T10:30:00.000Z
JS Character Encodings
Anna Henningsen
MongoDB

Character encodings can be confusing for every developer, providing pitfalls even for the most experienced ones, so a lot of the time we want to end up with something that “just works” without an in-depth understanding of the involved concepts. In this talk, Anna will give an overview over what they are, what the JavaScript language provides to interact with them, and how to avoid the most common mistakes in Node.js and the Web.

2023-04-14T10:50:00.000Z
QnA with Anna Henningsen
2023-04-14T11:00:00.000Z
Lunch Break
2023-04-14T11:50:00.000Z
Opening Ceremony №2
2023-04-14T12:00:00.000Z
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand the magic behind the Node.js Core
Erick Wendel
Erick Wendel Training - Professional Educator

Bun, Deno, and many other JavaScript runtimes have been hyped, but do you know why? Is it that easy to make a runtime from scratch?

I've been researching the secret behind Node.js' power and why there are so many new JavaScript runtimes coming up. Breaking down each key component used on Node.js I've come to interesting conclusions that many people used to say whereas in practice it works a bit differently.

In this talk, attendees will learn the concepts used to create a new JavaScript runtime. They're going to go through an example of how to make a JavaScript runtime by following what's behind the scenes on the Node.js project using C++. They'll learn the relationship between Chrome's V8 and Libuv and what makes one JavaScript runtime better than others.

This talk will cover the following topics:

  • What's a JavaScript Engine - V8
  • Why Node.js uses Libuv
  • How to create a JS Runtime from scratch
2023-04-14T12:20:00.000Z
QnA with Erick Wendel
2023-04-14T12:40:00.000Z
Next Generation Code Architecture for Building Maintainable Node Applications
Juri Strumpflohner
Nx

In today's fast-paced software development landscape, it's essential to have tools that allow us to build, test, and deploy our applications quickly and efficiently. Being able to ship features fast implies having a healthy and maintainable codebase, which can be tricky and daunting, especially in the long-run. In this talk, we'll explore strategies for building maintainable Node backends by leveraging tooling that Nx provides. This includes how to modularize a codebase, using code generators for consistency, establish code boundaries, and how to keep CI fast as your codebase grows.

2023-04-14T13:00:00.000Z
QnA with Juri Strumpflohner
2023-04-14T13:10:00.000Z
Coffee Break
2023-04-14T13:40:00.000Z
Lightning talks
The database magic behind 40Mio ops/s — Michael Hirschberg,
Eval All the Strings! - Hardened JavaScript — Zbyszek Tenerowicz,
Tools for Better Observability in NodeJS Serverless IoT Applications — Alina Dima,
Game Changer! Building Search Into Your Applications — Karen Huaulme
2023-04-14T14:30:00.000Z
Node.js startup snapshots
Joyee Cheung
Igalia

V8 provides the ability to capture a snapshot out of an initialized heap and rehydrate a heap from the snapshot instead of initializing it from scratch. One of the most important use cases of this feature is to improve the startup performance of an application built on top of V8. In this talk we are going to take a look at the integration of the V8 startup snapshots in Node.js, how the snapshots have been used to speed up the startup of Node.js core, and how user-land startup snapshots can be used to speed up the startup of user applications.

2023-04-14T14:50:00.000Z
QnA with Joyee Chueng
2023-04-14T15:10:00.000Z
Building a Modular Monolith with Fastify
Matteo Collina
Platformatic

In my journey through Nodeland, I saw most teams struggling with the free-form nature of Node.js development: there are no guardrails for maximum flexibility. Yet, not all paths offer a smooth ride. How to build applications that are well-organized, testable, and extendable? How could we build a codebase that would stand the test of time? In this talk, we will explore how to avoid the trap of Singletons to create robust Node.js applications through the use of Fastify plugins: we will build a modular monolith!

2023-04-14T15:30:00.000Z
QnA with Matteo Collina
2023-04-14T15:40:00.000Z
Closing Ceremony
2023-04-14T15:50:00.000Z
Break Before Party
2023-04-14T17:00:00.000Z
Afterparty
NodeHive Track
2023-04-14T08:10:00.000Z
The Edge & Databases: Everything Everywhere All at Once
Alex Ruheni
Prisma

Cloudflare Workers and Edge Functions bring the Serverless model to the next level by letting developers deploy code instantly globally to give it exceptional performance, reliability, and scale.

Having server-side applications execute close to where their users are located brings greater performance and drastically improves the user experience of an app. However, due to their limited runtime environment, working with your favorite traditional database is challenging since it can’t be accessed in CloudFlare Workers directly. Prisma solves this problem in multiple ways.

The goal of the talk is for developers to understand what the Edge really means, how it works, and how to work with your favorite traditional database on the Edge.

2023-04-14T08:30:00.000Z
QnA with Alex Ruheni
2023-04-14T08:50:00.000Z
The Tale of Avoiding a Time-Based DDOS Attack in Node.JS
Paolo Insogna
NearForm

Web applications are commonly vulnerable to several Distributed Denial of Service attacks, sometimes in unexpected ways. An example is the SlowLoris attack, an exploit that leads to service interruption by simply sending the data to the server as slowest as possible. In this talk I will tell the tale of how it took almost 13 years for Node to be completely protected by SlowLoris attack. I will also show that sometimes prioritizing performance can lead to incorrect fixes that can result in a false sense of protection.

2023-04-14T09:10:00.000Z
QnA with Paolo Insogna
2023-04-14T09:20:00.000Z
Coffee Break
2023-04-14T09:50:00.000Z
Prototype Pollution in JavaScript
Vladimir de Turckheim
Datadog

In 2018, a new attack vector against JavaScript codebases has been published: Prototype Pollution. At first glance, it seemed pretty limited in impact: it would basically be a good way to crash some code. However, multiple cases of Remote Code Executions have happened based on this vector. In this talk, we will clarify what are prototype pollutions, their real impact and of to prevent them from happening in your codebase.

2023-04-14T10:10:00.000Z
QnA with Vladimir de Turckheim
2023-04-14T10:30:00.000Z
Building Multiplayer Applications with Cloudflare Workers & Durable Objects
Matt Alonso
Сloudflare

Durable Objects, part of the Cloudflare Workers platform, are the solution for strongly consistent storage and coordination on the edge. In this talk, you will learn about Durable Objects, why they are suited for collaborative use-cases, and how to build multiplayer applications with them!

2023-04-14T10:50:00.000Z
QnA with Matt Alosno
2023-04-14T11:00:00.000Z
Lunch Break
2023-04-14T11:50:00.000Z
Opening Ceremony №2
2023-04-14T12:00:00.000Z
Monitoring, Alerting, And Visualizing your Node.JS server infrastructure with Open Source tools
Zoe Steinkamp
InfluxData

When monitoring Node.js, you can track your applications’ performance and availability by finding bottlenecks and fixing errors. You can identify issues by specifically looking at metrics like Process memory usage, Average response time, CPU usage, and more. If you add monitoring of the other components of your entire stack, you will gain a comprehensive view of what could be impacting application performance. At that point, it can point out the problem at the code level — allowing you to track down and fix those issues before they negatively impact end user experience. This talk will focus on the tools available from the Open Source time series database InfluxDB. It will be using the open source node.js telegraf plugin, so you can easily collect key metrics to help you get that view into your application. We will be using the Node.js Monitoring Template which is prebuilt and equipped to monitor an applications' performance and availability. All code examples will be in Javascript, and we will also go over the javascript library for those who are working in other javascript server environments, or who want to export data to their preferred visualization tools.

2023-04-14T12:20:00.000Z
QnA with Zoe Steinkamp
2023-04-14T12:40:00.000Z
GraphGL with Mercurius and Prisma, Love at First Sight
Luca Del Puppo
eDreams ODIGEO

In this speech, I'll talk about the benefit of using GraphQL and show a small demo of an endpoint created with Fastify Mercurius and Prisma.

2023-04-14T13:00:00.000Z
QnA with Luca Del Puppo
2023-04-14T13:10:00.000Z
Coffee Break
2023-04-14T13:40:00.000Z
Disrupting full-text search industry with JavaScript
Michele Riva
OramaSearch

How can a JavaScript-based search engine retrieve millions of records in a matter of microseconds? Why is JavaScript the right language to implement a true isomorphic application to be deployed everywhere, from mobile applications to edge networks? In this talk, we will see how Lyra, a full-text search engine written in JavaScript, is challenging the search industry with an incredible combination of performance and developer experience.

2023-04-14T14:10:00.000Z
QnA with Michele Riva
2023-04-14T14:30:00.000Z
Creating an innovation engine with observability
Boris Tane
Baselime

How Baselime created a culture where it's possible to move fast, break as little as possible, and recover from failures gracefully. The culture is technically underpinned by Node.js, Event-Driven Architectures (EDAs), and Observability (o11y).

2023-04-14T14:50:00.000Z
QnA with Boris Tane
Speaker QnA Rooms
2023-04-14T08:00:00.000Z
Ryan Dahl's Room
2023-04-14T08:40:00.000Z
James M Snell's Room
2023-04-14T08:40:00.000Z
Alex Ruheni's Room
2023-04-14T09:20:00.000Z
Lizz Parody's Room
2023-04-14T09:20:00.000Z
Paolo Insogna's Room
2023-04-14T10:30:00.000Z
Alexander Johansson's Room
2023-04-14T10:30:00.000Z
Vladimir de Turckheim's Room
2023-04-14T11:00:00.000Z
Anna Henningsen's Room
2023-04-14T11:00:00.000Z
Matt Alonso's Room
2023-04-14T12:30:00.000Z
Erick Wendel's Room
2023-04-14T12:30:00.000Z
Zoe Steinkamp's Room
2023-04-14T13:10:00.000Z
Juri Strumpflohner QnA Room
2023-04-14T13:10:00.000Z
Luca Del Puppo's Room
2023-04-14T14:25:00.000Z
Michele Riva's Room
2023-04-14T15:00:00.000Z
Joyee Cheung's Room
2023-04-14T15:00:00.000Z
Boris Tane's Room
2023-04-14T15:50:00.000Z
Matteo Collina's Room
Discussion Rooms
2023-04-14T12:40:00.000Z
Deno - Discussion Room
Ryan Dahl
Deno
2023-04-14T14:30:00.000Z
Node.js - Discussion Room
James M Snell
Cloudflare
2023-04-17T14:00:00.000Z
2023-04-17T15:00:00.000Z
2023-04-17T16:00:00.000Z
2023-04-17T17:00:00.000Z
2023-04-17T18:00:00.000Z
Runtimes Up Track
2023-04-17T14:00:00.000Z
Opening
2023-04-17T14:05:00.000Z
Server Components with Bun
Jarred Sumner
Oven

An early look at using server components via Bun’s new bundler, with and without React.

2023-04-17T14:15:00.000Z
AWS Lambda Under the Hood
Luca Mezzalira
AWS Cloud

In this talk I explain how the AWS Lambda service works explaining the architecture, how it scales and how a developer should think about when they design their software using Lambda functions.

2023-04-17T14:35:00.000Z
Bring Node.js into your browser with WebContainers
Sylwia Vargas
StackBlitz

In this talk, I'd love to inform and inspire the community to push the limitations of web development running Node.js inside the browser. I will cover how and why we developed WebContainers, what our roadblocks and limitations were and are, how we've worked with the community to make the technology better and what has already been enabled and built with WebContainers.

2023-04-17T15:00:00.000Z
Break
2023-04-17T15:05:00.000Z
Fresh: a new full stack web framework for Deno
Nick Taylor
Netlify

Fresh is a web framework based on Web standards built to run on the edge anywhere you can run Deno. Fresh takes inspiration from existing frameworks to provide features like file-based routing, Islands architecture, server-side rendering and Typescript. Another compelling reason to consider Fresh is that there is no build step.

2023-04-17T15:30:00.000Z
Tale of Two Repos
Tally Barak
Yoobic

Not all monorepos are made the same, and not all teams are equal. Managing a monorepo is way more than just ""let's select this tool or that tool"". It comprises many design decisions that you need to make for the product and for the developers.

In this talk, I will go over the main monorepos challenges - packages installation and linking, development and deployment processes - and describe the possibilities that exist for each stage.

At the end of the talk, you will have a simple and powerful model that will help you in making the right choice of tools and processes for your monorepo.

2023-04-17T15:50:00.000Z
The State of Node.js Core
Colin Ihrig
Node.js Technical Steering Committee

Node.js, as a platform, is constantly changing and evolving. Node's core is a melting pot of features from our own community, as well as dependencies such as V8 and libuv. This talk will cover the latest developments in Node core.

2023-04-17T16:20:00.000Z
Roll you own JavaScript runtime
Bartek Iwańczuk
Deno

In this talk we’ll create a small JavaScript runtime from scratch in Rust. We’ll leverage the same ecosystem of components that Deno uses to show that rolling a bespoke runtime fitting your needs is simple and fun in 2023

2023-04-17T16:40:00.000Z
Lightning Talks
Supply Chain Security Experience — Bradley Farias,
Using Machine Learning to Supercharge Your Node.js App — Marian Villa,
Measuring the Cost of a GraphQL Query with mercurius-explain — Marco Ippolito
2023-04-17T17:00:00.000Z
Break
2023-04-17T17:10:00.000Z
Parse, Don’t Validate. Using TypeScript, JSON Type Definition and Ajv Library to Improve Security and Performance of your APIs by Ensuring Data Correctness on Type Level
Evgeny Poberezkin
SimpleX Chat

Most JavaScript applications use JSON.parse to create any object first, and then validate and narrow the data type to the expected one. This approach has performance and security problems, as even if the data is invalid, the whole JSON string needs to be parsed first before the data is validated, instead of failing at JSON parsing stage (e.g., if number is passed instead of string in some property).

Many languages support parsing of JSON strings directly into the expected types, but it is not natively supported in JavaScript or TypeScript.

In this talk we will show how the powers of TypeScript combined with the new specification JSON Type Definition (RFC 8927) and Ajv library can be used to parse your data directly into the expected application-defined type faster than JSON.parse, and also how to serialize data of a known type approximately 10 times faster than JSON.serialize.

2023-04-17T17:35:00.000Z
Securing Your Software Supply Chain
Darcy Clarke
GitHub

The software supply chain is under constant attack and threat actors are finding new ways to exploit and profit off the cracks in its foundations. Of course, the JavaScript ecosystem is at the heart of this problem as it has grown accustomed to relying on small, interdependent modules made available through the largest software registry in the world (npm). Learn more about the current and future state of the ecosystem as well as dive into new tooling and resources you'll need to protect yourself and your projects this year and beyond.

2023-04-17T17:55:00.000Z
Type-safe bindings for Node.js with Rust and WebAssembly
Alberto Schiabel
Prisma

This talk will teach you how to write performance-critical Node.js modules without the burden of distributing platform-dependent artifacts and using the C/C++ toolchain. You will discover how to smoothly integrate Rust code into your Node.js + TypeScript application using WebAssembly. You will also learn how to avoid the typical WebAssembly serialization issues, and understand when other alternatives like Neon or Napi.rs are preferable. Together, we will cross the language bridge between Rust and Node.js while preserving the familiar DX you're used to.

2023-04-17T18:20:00.000Z
Observability with diagnostics_channel and AsyncLocalStorage
Stephen Belanger
Datadog

Modern tracing products work by combining diagnostics_channel with AsyncLocalStorage. Let's build a tracer together to see how it works and what you can do to make your apps more observable.

2023-04-17T18:40:00.000Z
Closing Ceremony
Speaker QnA Rooms
2023-04-17T14:15:00.000Z
Jarred Sumner's Room
2023-04-17T14:35:00.000Z
Luca Mezzalira's Room
2023-04-17T15:05:00.000Z
Sylwia Vargas's Room
2023-04-17T15:30:00.000Z
Nick Taylor's Room
2023-04-17T15:50:00.000Z
Tally Barak's Room
2023-04-17T16:20:00.000Z
Colin Ihrig's Room
2023-04-17T16:40:00.000Z
Bartek Iwańczuk's Room
2023-04-17T17:35:00.000Z
Evgeny Poberezkin & Jason Green's Room
2023-04-17T17:55:00.000Z
Darcy Clarke's Room
2023-04-17T18:20:00.000Z
Alberto Schiabel's Room
2023-04-17T18:40:00.000Z
Stephen Belanger's Room
Discussion Rooms
2023-04-17T14:35:00.000Z
Alternatives to JSON Schema - Discussion room
Evgeny Poberezkin
SimpleX Chat
Alex Korzhikov
Instructor, Mentor
Jason Green
Threads Styling
Nikolay Matvienko
Grid Dynamics
2023-04-17T15:30:00.000Z
Security - Discussion Room
Bradley Farias
Socket Security Inc.
Darcy Clarke
GitHub