#node.js
SubscribeNode.js is a JavaScript runtime environment that allows developers to run JavaScript code outside of a web browser. It uses an event-driven, non-blocking I/O model to handle requests efficiently and is particularly suited for building scalable network applications. Node.js comes with a built-in package manager (npm) and a large ecosystem of libraries and modules that makes it easy to develop server-side applications.
ESM Loaders: Enhancing Module Loading in Node.js
JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top ContentThe talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
Node.js Compatibility in Deno
Node Congress 2022
34 min
Node.js Compatibility in Deno
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Out of the Box Node.js Diagnostics
Node Congress 2022
34 min
Out of the Box Node.js Diagnostics
This talk covers various techniques for getting diagnostics information out of Node.js, including debugging with environment variables, handling warnings and deprecations, tracing uncaught exceptions and process exit, using the v8 inspector and dev tools, and generating diagnostic reports. The speaker also mentions areas for improvement in Node.js diagnostics and provides resources for learning and contributing. Additionally, the responsibilities of the Technical Steering Committee in the TS community are discussed.
Towards a Standard Library for JavaScript Runtimes
Node Congress 2022
34 min
Towards a Standard Library for JavaScript Runtimes
Top ContentThere is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
Testing: Do More With Less
JSNation 2024
27 min
Testing: Do More With Less
This talk focuses on practical approaches for testing Node.js applications, including the use of Dora metrics and the testing trophy strategy. It emphasizes the importance of covering critical flows with integration and end-to-end tests, while also considering the cost and speed of different test types. The speaker recommends mocking third-party services and using snapshot testing, but warns about the potential for false positives. Playwright is suggested as a preferred tool, and the importance of automated test execution is emphasized.
Deep Dive into Undici
Node Congress 2024
24 min
Deep Dive into Undici
Undici is a modern HTTP client for Node.js that offers improved performance and advanced features. It supports HTTP 1.1 and recently added HTTP 2.0 support. Undici provides impressive performance, especially with Undici.Stream. It also supports HTTP 1.1 pipelining, which can significantly cut response time. Undici offers flexible connection management and dispatchers, as well as interceptors for customization. Undici v7 is coming with improved APIs and platformatic runtime for running multiple microservices in the same process.
Understanding Package Resolution in Node.js
Node Congress 2024
11 min
Understanding Package Resolution in Node.js
In this Talk, the speaker discusses package resolution in Node.js, covering topics such as CommonJS, ES modules, package.json structure, and package.json loader. The Talk also touches on conditional loading and file extension resolution, module import and export, module type determination based on file extensions and package.json, module resolution strategies in Node.js, and tips for improving loading time in ESM applications.
Milo, a New HTTP Parser for Node.js
Node Congress 2024
23 min
Milo, a New HTTP Parser for Node.js
Hello and welcome to Node Congress 2024. NearForm focuses on delivering modern and elegant solutions. Milo is a new HTTP parser written in Rust, designed to address the complexity and vulnerabilities of the current Node HTTP parser. Milo allows developers to opt-in for copying data being parsed for improved developer experience. It follows the latest RFCs for HTTP strictly and provides a common interface across different languages. Milo is being explored for C++ and WebAssembly integration, and future steps include performance improvements and regression testing.
Making My Node.js API Super Fast
Node Congress 2024
34 min
Making My Node.js API Super Fast
This talk focuses on improving performance in Node.js API development. It covers various areas such as optimizing database work, connection pool, JSON parsing, logging, and web framework selection. Key highlights include the use of Native Mongo Driver for better database performance, optimizing connection pool for improved throughput, replacing Express serializer for faster serialization and deserialization, and choosing Festify as an efficient web framework. Caching and authentication's impact on performance is discussed, along with recommendations for caching types. The talk also emphasizes considering environmental factors and human impact on performance. Fastify is highlighted as a recommended tool for Node.js performance optimization.
Creating an HTTP Server from Scratch with Node-addon-api, Libuv, and Milo
Node Congress 2024
18 min
Creating an HTTP Server from Scratch with Node-addon-api, Libuv, and Milo
Today's Talk focuses on creating an HTTP server from scratch using Node.js and native add-ons. The process involves implementing a TCP socket using LibuV for data exchange between the server and client. The Talk also covers invoking callbacks, creating a high-level abstraction for the HTTP server, and parsing HTTP data using an experimental HTTP parser called Milo. The project serves as a proof of concept, showcasing the ease of creating add-ons and interacting with low-level APIs in Node.js.
The Need for Speed: How AWS New JS Runtime is Redefining Serverless Latency
Node Congress 2024
25 min
The Need for Speed: How AWS New JS Runtime is Redefining Serverless Latency
Serverless services like AWS Lambda allow developers to build modern applications without provisioning servers or additional infrastructure. LLRT is a low latency runtime designed specifically for serverless environments and JavaScript applications. LLRT uses a lightweight JavaScript engine called Quick.js, achieving fast execution and performance with minimal memory consumption. LLRT is ideal for latency-critical applications, high-volume functions, and integration with AWS services. It significantly improves performance, reducing cold starts and providing consistent warm start times. Users are encouraged to test LLRT and contribute to its development.
Parsing Millions of URLs per Second
Node Congress 2024
14 min
Parsing Millions of URLs per Second
Today's talk explores the performance of URL parsing in Node.js and introduces the ADA URL parser, which can parse 6 million URLs per second. The ADA URL parser includes optimizations such as perfect hashing, memoization tables, and vectorization. It is available in multiple languages and has bindings for popular programming languages. Reach out to Ada URL and Daniel Lemire's blog for more information.
Guardians of the Applications: Conquering Node.JS App Monitoring
DevOps.js Conf 2024
21 min
Guardians of the Applications: Conquering Node.JS App Monitoring
Monitoring and observability are important for catching bugs before they become noticeable. Examples of monitoring issues include confusion and frustration when monitoring leads to misunderstandings. Teamwork is essential for effective monitoring, automation can streamline processes and improve efficiency. Custom monitoring is necessary to prevent hazards and unnecessary alerts can hurt productivity. Challenges include relying too much on monitoring without addressing root issues and struggling with manual configuration.
Exploring Node Modules for Test Automation
TestJS Summit 2023
19 min
Exploring Node Modules for Test Automation
This Talk explores the process of building a test automation library using node modules, with a focus on creating the project structure, building and testing the library, and publishing and versioning the package. It discusses the inclusion of helpful features like WAIT helpers and the use of libraries like Playwright and Cypress. The importance of clear documentation, pre-release versions, and version control is emphasized, along with the need for installation instructions and contribution guidelines.
Exploring Node.js Test Runner
TestJS Summit 2023
28 min
Exploring Node.js Test Runner
Today's Talk introduces the new Node.js test runner and its features, including filtering, sub-testing, and reporting. It also discusses executing and writing tests in Node.js, as well as the features of the Node.js testing library. The advantages of the Node.js test runner include the ability to create custom test reporters and use TypeScript. However, there are limitations such as a small ecosystem and limited libraries. Upcoming features include test planning, faster test running, and continuous evolution. The Q&A session covers topics like test runner speed, reporters, sharding, and parallelization.
5 Ways You Could Have Hacked Node.js
JSNation 2023
22 min
5 Ways You Could Have Hacked Node.js
Top ContentThe Node.js security team is responsible for addressing vulnerabilities and receives reports through HackerOne. The Talk discusses various hacking techniques, including DLL injections and DNS rebinding attacks. It also highlights Node.js security vulnerabilities such as HTTP request smuggling and certification validation. The importance of using HTTP proxy tunneling and the experimental permission model in Node.js 20 is emphasized. NearForm, a company specializing in Node.js, offers services for scaling and improving security.
What’s New in Node?
JSNation 2023
35 min
What’s New in Node?
Node version 20 introduces experimental permission features and single executables. The experimental loader flag and import.meta.resolve give developers control over module loading and resolution. Node 20 includes stabilized features like the test suite, array manipulation methods, resizable array buffers, and shared array buffers. Notable updates in Node 20 include the Regex vFlag, top-level await, and strategic initiatives. Promisified APIs, Web Crypto API, abort control, and streams are highlighted. Other features mentioned are the File API, Intl object, and Shadow Realm.
I Would Never Use an ORM
JSNation 2023
29 min
I Would Never Use an ORM
Top ContentWelcome to a talk on Object-Relational Mapping (ORM) and its potential pitfalls. The speaker discusses issues with modals and the MVC pattern, as well as the benefits of structuring code around system features instead. They introduce PlatformaticDB as a solution for easy backend development, showcasing its deployment and testing capabilities. The talk also covers integrating with Next.js, writing custom SQL queries, and the speaker's plans for future support and database compatibility.
Bun, Deno, Node.js? Recreating a JavaScript Runtime From Scratch
JSNation 2023
28 min
Bun, Deno, Node.js? Recreating a JavaScript Runtime From Scratch
This Talk explores the journey of learning and recreating Node.js from scratch, highlighting the main components and experimentation involved. It delves into implementing functions in V8 and setTimeout in Node.js, as well as the execution pipeline and the event loop. The collaboration between different JavaScript runtimes and the continuing evolution of Node.js are also discussed. The speaker shares their experience of exploring Node.js and writing a book, and hints at future projects involving React Native.
Type-safe bindings for Node.js with Rust and WebAssembly
Node Congress 2023
22 min
Type-safe bindings for Node.js with Rust and WebAssembly
This Talk explores TypeScript bindings for NodeJS with Rust and WebAssembly, providing an alternative approach for creating native NodeJS modules and automatically generating types. It delves into the use of WebAssembly and Rust for TypeScript modules, showcasing how Rust functions can be defined and imported using the wasm.bindgen library. The Talk also highlights the challenges of string conversion between Rust and JavaScript, the limitations of supporting Rust data types in JavaScript, and the seamless integration of Rust functions into TypeScript apps using tspy. It concludes with the recommendation of TSFI for type-safe bindings and showcases its usage in a TypeScript-based full-text search engine with WebAssembly support.
Using Machine Learning to Supercharge Your Node.js App
Node Congress 2023
9 min
Using Machine Learning to Supercharge Your Node.js App
Welcome to our talk on incorporating machine learning to your Node.js applications. Learn how to take your Node.js application to the next level with machine learning. Implementing machine learning in Node.js can be daunting, but with the right framework and approach, it can be simplified. Start with a simple model, gradually add complexity, and ensure high-quality data. Monitor and evaluate your models using metrics and consider scalability and reusing pre-trained models.
The State of Node.js Core
Node Congress 2023
24 min
The State of Node.js Core
Today's Talk discussed the state of Node.js core, with increasing downloads and over 2 million packages on npm. Node.js has a LTS schedule, with Node 14 currently in maintenance mode. It was recommended to aim for Node 18, as Node 16 and its version of OpenSSL will soon be end of life. Node 18, known as Hydrogen, is stable and has new features. The Talk also covered CLI testing, core modules, new features, and upcoming enhancements.
Bring Node.js into your browser with WebContainers
Node Congress 2023
21 min
Bring Node.js into your browser with WebContainers
This Talk discusses bringing Node.js into the browser using web containers. It covers the history of Node.js and the internet in the early 2000s, the possibilities of Node.js in the browser, and approaches to achieving this. It also explores Stackbits' journey and growth, innovation in web container design, and the functionality of web containers. The Talk emphasizes the importance of open source and collaboration in improving the web ecosystem.
Building a modular monolith with Fastify
Node Congress 2023
30 min
Building a modular monolith with Fastify
Top ContentFastify is a powerful tool for building web applications and APIs in Node.js, with millions of downloads per month. It promotes encapsulation and structuring through plugins and decorators, allowing for code and data segmentation. The talk emphasizes the importance of modularizing applications by domains and features, and showcases a demo of a typical Fastify application. The speaker also discusses the benefits of using Platformattic for refactoring and launching Fastify applications in the cloud. The Q&A section covers topics such as dependency injection and debugging, while also highlighting the importance of separating business logic from API contracts.
Creating an innovation engine with observability
Node Congress 2023
27 min
Creating an innovation engine with observability
Baseline provides observability for serverless architectures and has created an innovation engine within their team. They measure team performance using Dora metrics and the Accelerate book. Baseline emphasizes the importance of foundations, streamlined testing, and fast deployment. They practice observability-driven development and incorporate observability as part of their development lifecycle. Baseline believes in building a culture that fosters ownership and democratizes production.
Node.js startup snapshots
Node Congress 2023
28 min
Node.js startup snapshots
Top ContentThe Talk discusses the Startup Snapshot initiative in Node, which aims to improve startup performance by adding new features and optimizing initialization costs. Startup snapshots, serialized binary blobs, are used to speed up startup and can be generated for both the core and user applications. Custom snapshots allow deserializing a heap from a specified snapshot, skipping parsing and compilation. The Talk also addresses misconceptions and limitations of startup snapshots, and highlights the different use cases for heap snapshots and startup snapshots.
Next Generation Code Architecture for Building Maintainable Node Applications
Node Congress 2023
30 min
Next Generation Code Architecture for Building Maintainable Node Applications
Today's Talk focused on code architecture, modularization, and scaling in software development. The speaker discussed the benefits of separating code by domain and using tools like NX to improve productivity and enforce modular architecture. They also highlighted the importance of automating library creation and configuration. Additionally, the Talk covered code scaling and deployment strategies, including caching and automated code migrations. The speaker emphasized the flexibility and scalability of Fastify and the advantages of using a monorepo for front-end and back-end development.
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand magic behind Node.js
Node Congress 2023
29 min
Bun, Deno, Node.js? Recreating a JavaScript runtime from Scratch - Understand magic behind Node.js
The Talk explores the magic behind Node.js and delves into its components, including V8, libuv, and the C++ bridge. It discusses the workflow and execution process, the use of NodeMod, and the understanding of console functions. The Talk also covers Node.js functions and scheduling, the introduction of runtimes, and the collaboration between JavaScript runtimes. It concludes with insights on content production, the choice of Node.js, and the inspiration behind it.
Monitoring, Alerting, And Visualizing your Node.JS server infrastructure with Open Source tools
Node Congress 2023
31 min
Monitoring, Alerting, And Visualizing your Node.JS server infrastructure with Open Source tools
This Talk introduces monitoring, alerting, and visualizing Node.js server infrastructure with open source tools. It covers the use of time series databases for server monitoring and discusses the JavaScript client library. The InfluxDB platform offers features for data acquisition, visualization, and task scheduling. The Talk includes a live demo of a fake Express server and showcases the use of community templates and the Node.js dashboard. It also provides resources for further learning and discusses options for visualization with Grafana.
JS Character Encodings
Node Congress 2023
33 min
JS Character Encodings
Character encodings are important for converting characters into bytes. UTF-8 is the most commonly used encoding in JavaScript. JavaScript engines handle character encodings automatically. There are bugs in Node.js related to character encoding and string manipulation. It is important to be cautious when working with character encodings and to choose the appropriate method for string manipulation.
The tale of avoiding a time-based DDOS attack in Node.js
Node Congress 2023
29 min
The tale of avoiding a time-based DDOS attack in Node.js
Web applications face constant threats from DDoS attacks, including the new Zoloris attack that can bring down a server with minimal bandwidth. Node.js has had vulnerabilities in its timeout handling, but recent versions like Node 18 provide better protection. NGINX is recommended for protection against slow loris attacks due to its superior timeout handling. Mitigating slow loris attacks for WebSockets involves enforcing higher timeouts and shutting down idle clients. It is important to prioritize security over performance and use common sense in software development.
How to use ChatGPT with Node.js
Node Congress 2023
32 min
How to use ChatGPT with Node.js
Today's Talk introduces Chat GPT and its integration with Node.js, highlighting its exceptional performance and natural language capabilities. The speaker demonstrates how to interact with ChatGPT using Node.js and showcases examples such as selecting avatars and getting jokes. The Talk also discusses the use of ChargePT for extracting important information and interacting with databases. Important considerations when using ChatGPT, the potential of GPT-4, and the impact of AI on jobs are also covered. Security concerns and the use of extensions like Runme in Visual Code are mentioned as well.
The Road to Async Context
Node Congress 2023
26 min
The Road to Async Context
This Talk discusses the implementation and performance improvements of the async local storage API in Node and Cloudflare Workers. It explores the concept of continuations and execution contexts and how async local storage allows for passing contextual data through async flows. The talk also highlights the challenges in implementing async local storage in Node and the need for a standardized API. The introduction of async context as a replacement for async local storage is discussed, along with its benefits and the ongoing development of the async context API.
An Introduction to Deno for Node.js Developers
JSNation 2022
22 min
An Introduction to Deno for Node.js Developers
This Talk provides an introduction to Deno for Node.js developers, highlighting the differences in architecture and dependencies between the two runtimes. It discusses the Deno CLI and integrated toolchain, the Deno standard library and dependency management, as well as the Deno runtime and its core features. The Talk also covers Deno's permission system, its focus on web platform compatibility, and its support for TypeScript. Overall, it provides a comprehensive overview of Deno and its advantages over Node.js.
🚀 Supercharge your NodeJS with Rust
JSNation 2022
21 min
🚀 Supercharge your NodeJS with Rust
In this Talk, Dmitry Kudravtsev discusses how to supercharge JavaScript and Node.js using Rust. He introduces NEON, an open-source library for integrating Rust and JavaScript, and explains how to use it to export Rust functions to JavaScript. Dmitry also explores the performance benefits of using native modules written in Rust and WebAssembly. He compares the two approaches and highlights the faster performance of Rust native modules. He concludes by recommending WebAssembly for its ergonomics and portability, while suggesting native modules for extending Node.js with performance code.
GPU Accelerating Node.js Web Services and Visualization with RAPIDS
JSNation 2022
26 min
GPU Accelerating Node.js Web Services and Visualization with RAPIDS
Welcome to GPU Accelerating Node.js Web Services and Visualization with Rapids. Rapids aims to bring high-performance data science capabilities to Node.js, providing a streamlined API to the Rapids platform without the need to learn a new language or environment. GPU acceleration in Node.js enables performance optimization and memory access without changing existing code. The demos showcase the power and speed of GPUs and rapids in ETL data processing, graph visualization, and point cloud interaction. Future plans include expanding the library, improving developer UX, and exploring native Windows support.
Full-stack JS today: Fastify, GraphQL and React
React Summit 2022
25 min
Full-stack JS today: Fastify, GraphQL and React
The Talk discusses building a modern full stack application with JavaScript and GraphQL, emphasizing the importance of prioritizing the critical 20% of challenges. It highlights the benefits of building a productive and transparent tech stack with modularity and developer-friendly tools. The use of PostGrey as a relational database and Fastify as a server framework is recommended. The Talk also explores the advantages of using Mercurius and Urql for GraphQL implementation. Additionally, it mentions the use of React, SSR, and Fastify Vite for full-stack SSR and modular components. The Talk concludes by mentioning the advantages of this stack for complex functionality and the possibility of using Fastify in a serverless infrastructure.
Getting Real with NodeJS and Kafka: An Event Stream Tale
JSNation 2022
8 min
Getting Real with NodeJS and Kafka: An Event Stream Tale
This lightning talk introduces distributed computing and discusses the challenges, patterns, and solutions related to using Kafka for event sharing. It emphasizes the importance of separating services and using strong typing to avoid broken messages. The talk also covers Kafka's transaction configuration and guarantees, highlighting the need for proper configuration and the use of transaction IDs. Overall, it provides valuable insights into scaling companies, big data, and streaming platforms.
Writing universal modules for Deno, Node, and the browser
TypeScript Congress 2022
25 min
Writing universal modules for Deno, Node, and the browser
Deno is a modern runtime for TypeScript and JavaScript that runs out of the box and is secure by default. The Talk covers building a greeting message library with Deno, compiling Deno libraries for Node consumers, setting up the editor and writing code, writing tests and running them with dnotest, code formatting, linting, and publishing, publishing to NPM and running tests, and building and publishing the NPM package. The speaker emphasizes the ease of use and integration of Deno's tooling system.
Optimize Node.js Development Workflows in Kubernetes with Skaffold and Rancher Desktop
DevOps.js Conf 2022
9 min
Optimize Node.js Development Workflows in Kubernetes with Skaffold and Rancher Desktop
Lucan de Muela discusses how to optimize Node.js development workflows in Kubernetes using Scaffold and Rancher Desktop. He highlights the developer experience, cluster management simplification with Rancher Desktop, and build/release workflow optimization with Scaffold. He also mentions the ability to update Kubernetes versions and choose a container runtime, as well as the option to reset the cluster for a safe development environment.
Enter CDK: What this Means for the World of IaC
DevOps.js Conf 2022
13 min
Enter CDK: What this Means for the World of IaC
AWS CDK is a concept that allows you to use coding languages to create infrastructure as code, making it more flexible and powerful than traditional config languages. CDK offers benefits such as improved developer experience, multi-regional deployments, and a programmatic approach to infrastructure as code. It is a suitable choice for AWS users, particularly those familiar with CloudFormation. CDK can be used to migrate from CloudFormation to a more efficient and user-friendly infrastructure management tool. CDK also provides drift detection and supports multi-region deployment, making it a popular choice for managing infrastructure on AWS.
Evolving the Node HTTP Client with undici
Node Congress 2022
35 min
Evolving the Node HTTP Client with undici
Top ContentThe Talk discusses the current state of the Node HTTP client and the problems it faces, including the lack of support for HTTP pipelining and the intrinsic link between request and response objects. The speaker introduces the library Indichy, which aims to provide a more user-friendly API for HTTP in Node. The Talk highlights the performance advantages of using WebAssembly in the Umidigi HTTP client and the plans to include it in Node Core. The speaker also mentions the support for signals and the ability to post requests in Umidigi. Additionally, the Talk covers the customization options in Undici, the different types of dispatchers available, and the potential inclusion of Indichy in Node Core. Future plans include support for HTTP 2 and 3, DNS lookup enhancements, and improvements to fetch and pool scheduling. The Talk concludes by discussing the differences in TCP implementations across operating systems and the considerations for adding Web APIs and standards to Node Core.
A Glimpse Into the Future of Fullstack Development with Blitz.js
Node Congress 2022
32 min
A Glimpse Into the Future of Fullstack Development with Blitz.js
Today's Talk introduced Bleeds.js, a full-stack React framework built on top of Next.js. It eliminates the need for an API layer, allowing server code to run directly from the frontend. The Blitz framework is pivoting towards a framework-agnostic toolkit to bring more people to Bleeds and decouple it from any specific runtime. The new Bleed toolkit will include core features like zero API data layer and authentication, with additional features like JWT authentication and advanced data-aware authorization. The audience showed interest in the Blitz Pivot concept and the ETA for the stable 1.0 release is the end of March.
Serverless in Production, Lessons from the Trenches
Node Congress 2022
34 min
Serverless in Production, Lessons from the Trenches
This Talk provides valuable insights for those considering serverless in 2022, with a focus on troubleshooting and observability using Lumigo. It emphasizes the use of multiple AWS accounts and Org Formation for better control and scalability. Security considerations include securely loading secrets at runtime and implementing zero-trust networking. Optimizing Lambda performance is discussed, along with updates on serverless frameworks and the role of Terraform. The Talk also compares Honeycomb and Lumigo for observability in serverless applications.
A Comparison of Web Workers
Node Congress 2022
25 min
A Comparison of Web Workers
This Talk compares web workers, including dedicated workers, shared workers, and service workers. Web workers provide multithreading capabilities and use shared memory for higher performance. Dedicated workers have one parent and can execute on a separate thread. Shared workers can have multiple parents and are useful for communication across different windows. Service workers can intercept and proxy requests made from a web page and are useful for caching network assets and building progressive web apps.
Write Node like it's 2022
Node Congress 2022
7 min
Write Node like it's 2022
Let's write Node like it's 2022. We can now iterate over objects more easily with the for-in loop. Template literals make string concatenation and multi-line strings much simpler. The structured clone feature allows us to clone complex objects without the need for hacks like stringifying and parsing. Default parameters in JavaScript are now much more convenient. Async await eliminates the need for callbacks. Arrow functions inherit the scope, eliminating the need for 'this equals that'. Const prevents variable reassignment. Let helps catch errors earlier. Write code like it's 2022!
Understanding JavaScript Compilation
Node Congress 2022
8 min
Understanding JavaScript Compilation
Today's Talk explores the concepts of compilation and transpilation in JavaScript, highlighting the three steps involved: parsing, code transformation, and code generation. The process of traversing an abstract syntax tree is discussed, with examples of tools like Babel and ESLint that can be used for code transformations. Code transformation tools and techniques, such as CodeShift and T-TypeScript plugin, are introduced, emphasizing the power of abstract syntax trees and the visitor pattern. The summary concludes by encouraging further exploration of code refactoring and transformations using tools like Babel, TSLint, and astexplorer.net.
The Secret Life of Package Managers
Node Congress 2022
9 min
The Secret Life of Package Managers
npm install can be a mysterious process, but understanding how package managers work is essential. NPM solved problems like large node_modules, circular dependencies, and multiple instances of the same package. Managing package versions and conflicts is crucial for consistency across projects. Alternative approaches to package management, like PNPM and Yarn2, provide insights into the hidden complexities of package managers.
High Performance Node.js Powered by Rust and WebAssembly
Node Congress 2022
8 min
High Performance Node.js Powered by Rust and WebAssembly
This talk explores using Rust and WebAssembly to enhance the performance of Node.js applications. By leveraging Rust's efficiency and safety features, and compiling it into WebAssembly bytecode, developers can achieve high-performance computations while ensuring security. WebAssembly enables direct communication with native hardware and is optimized for server-side applications, making it suitable for tasks like AI inference and storage databases. Overall, this talk highlights the potential of combining JavaScript, Rust, and WebAssembly to build performant and portable applications.
Orders & Magnitude
Node Congress 2022
7 min
Orders & Magnitude
The Talk discusses the relationship between complexity and collaboration in software development. It highlights that collaboration is not always the answer to solving problems and that communication is crucial in software development. The concept of collective intelligence is introduced, which describes a group's capability to perform well together across tasks. The study mentioned in the Talk shows that collective intelligence is transferable among tasks, and skilled players rely on nonverbal cues and understanding the software. Lack of understanding can lead to difficulties in team performance and deployment.
Five Ways of Taking Advantage of Verdaccio, Your Private and Proxy Node.js Registry
Node Congress 2022
32 min
Five Ways of Taking Advantage of Verdaccio, Your Private and Proxy Node.js Registry
Verdash is a lightweight and proxy private Node.js registry that allows you to host and publish private packages. It offers five ways to use it, including publishing packages with npm workspaces and handling conflicts. Verdash improves project productivity and continuous integration by caching dependencies and versions. Security considerations are important, and Verdash provides security features like rate limiting. It can be used as a registry for open source projects and offers flexibility and customization options.
The Road to JSON Import Support in Node.js
Node Congress 2022
16 min
The Road to JSON Import Support in Node.js
This Talk discusses the road to JSON import support in NodeJS, covering the history and implementation of JSON modules. It explores security concerns and the proposal for import assertions. The Talk also explains how to use JSON modules in NetJS and the availability of support in different browsers. It mentions working with dynamic imports and future plans for adding more modules in Node Core. Additionally, it addresses the syntax differences between ESM and CommonJS and the challenges of overcoming them.
Server-side Auth with Remix, Prisma, and the Web Platform
Node Congress 2022
34 min
Server-side Auth with Remix, Prisma, and the Web Platform
Top ContentThis Talk is about server-side authentication with Remix, Prisma, and the web platform. It covers adding authentication to a Remix app, troubleshooting and login setup, handling user login and session creation, creating user sessions and redirects, handling user ID retrieval and validation, and working with cookies in Remix. The speaker emphasizes that Remix is ready for production and suitable for enterprise apps. Remix simplifies the mental model and improves performance by bridging the network gap between the front end and back end.
The Future of JavaScript Runtimes
Node Congress 2022
34 min
The Future of JavaScript Runtimes
Today's Talk explores the future of JavaScript runtimes, their evolution, and impact on software development. It discusses the historical trends of JavaScript, the adoption of new tools and libraries, and the convergence of Node and Deno. The emergence of isolate clouds and their potential to replace traditional VMs and containers is also highlighted. Additionally, the talk touches on the possibilities of JavaScript in exotic use cases, its impact on machine learning, and the potential for TypeScript to become the de facto language for JavaScript development.
Monitoring Errors and Slowdowns with a JS Frontend and Node Backend
Node Congress 2022
8 min
Monitoring Errors and Slowdowns with a JS Frontend and Node Backend
Sentry is code monitoring for developers, specifically designed for the application layer. It helps identify error details, frequency, release, user information, and stack trace. Source maps can be uploaded to see the original source code and suspect commits can be identified. Performance monitoring helps identify slowdowns and determine the cause. Automating alerts and investigating errors helps gain instant context and trace errors across different projects.
Automated Application Security Testing with StackHawk
Node Congress 2022
9 min
Automated Application Security Testing with StackHawk
StackHawk is a dynamic application security testing tool that integrates with CI-CD workflows and simplifies finding and fixing security issues. The scan results include detailed descriptions of identified issues, along with links and request/response details for replaying the attack. The StackHawk YAML configuration allows for specifying application location, environment, and additional options for authentication and scanning exclusions.
The Evolution of Deploying Node on Servers and Platforms
Node Congress 2022
8 min
The Evolution of Deploying Node on Servers and Platforms
Today's talk covers the evolution of deploying Node on servers and platforms, including physical servers, monolith servers, PaaS, containers, and serverless. Node deployment has become easier over the years thanks to the evolution of Node.js. Each deployment method has its pros and cons, with serverless offering lower costs and simpler backend code. However, it also has drawbacks like vendor locking and unsuitability for long-term tasks. Overall, Node.js deployment has evolved from on-premise to containers to serverless.
How to Register a Domain Using Node and the DNSimple API in 5 min
Node Congress 2022
6 min
How to Register a Domain Using Node and the DNSimple API in 5 min
Today's Talk is a demo of the DnSimple node client, including the installation process, authentication, domain availability check, and registration. The speaker emphasizes testing in the sandbox environment before moving to production. Setting up DNS records and registering domains are also covered, with the importance of verifying the code's functionality. Additional information about other clients and the DNSimple API is available at dnsimple.com/API.
Mastering Error Handling Node.js
Node Congress 2022
21 min
Mastering Error Handling Node.js
Top ContentThis Talk explores error handling in Node.js, including types of errors, handling techniques, and debugging. It discusses the use of exceptions, callbacks, and promises for error handling. The importance of proper error handling and the benefits of using error classes, expressive error messages, and automated testing are emphasized. The speaker also addresses the use of TypeScript and test-driven development for error prevention. Overall, the Talk provides valuable insights and techniques for mastering error handling in Node.js.
Database Access on the Edge with Cloudflare Workers & Prisma
Node Congress 2022
31 min
Database Access on the Edge with Cloudflare Workers & Prisma
This Talk discusses database access on the edge with CloudFlare workers and the challenges of serverless platforms. It explores solutions for database access, including CloudFlare-specific solutions and using Prisma data proxy. The Prisma toolkit and demo are showcased, demonstrating how to convert an application to use a database. The process of setting up Prisma Data Platform and deploying the application to CloudFlare workers is explained. The Talk concludes with insights on database usage and the differences between serverless, CDN, and the Edge.
Static first websites with Cloudflare Workers
Node Congress 2022
30 min
Static first websites with Cloudflare Workers
The Talk covers the historical landscape of web development, the rise of static site generators, the serverless revolution, edge computing, and using Cloudflare services to enhance static websites. It explores the challenges of early web development, the shift to static sites and client-side rendering, and the advantages of server-side and client-side rendering. It also discusses Cloudflare services like Cloudflare workers, KV, durable objects, and HTML rewriter for building fast and minimal hosting solutions. The Talk highlights the use of DurableObjects for analytics and integration, dynamic content on static sites, JAMstack, and the advantages of using Cloudflare Workers for automatic deployment, multiple language support, and combining static pages with JavaScript functions. It introduces the concept of edge computing and the difference between Cloudflare Pages and Workers. It also touches on error handling and the use of HTML rewriter, Cloudflare KVstore, and DurableObjects for managing state and storing dynamic data.
GraphQL Caching Demystified
GraphQL Galaxy 2021
21 min
GraphQL Caching Demystified
Today's Talk focuses on GraphQL caching and improving performance using Fastify and Mercurius. The experiment involves federated services, resolver caching, and load testing with AutoCANON. Enabling caching with a 0 second TTL can increase throughput by 4 times. The AsyncCacheDedupe module allows for efficient caching and avoiding unnecessary computations. Redis pipelining has improved requests per second by 100 times. Cache invalidation is an ongoing topic of development.
Using Next.JS and Redux for Epic Noscript Web Apps
React Advanced Conference 2021
21 min
Using Next.JS and Redux for Epic Noscript Web Apps
This Talk explores developing web applications that work without JavaScript enabled in the browser, while still enjoying the benefits of modern web technologies. The speaker demonstrates converting an existing application to work without JavaScript by wrapping buttons in a form and preventing the default submit event. React helpers are introduced to handle async actions and the speaker shows how to make a counter app work without JavaScript by removing unnecessary callbacks and changing buttons to a button component. The talk also covers adding a form and a surprise feature, and emphasizes that by leveraging forms and an event-based store, applications can seamlessly work with or without JavaScript.
Aleph.js - Build your React app in Deno
React Finland 2021
26 min
Aleph.js - Build your React app in Deno
A demo on Aleph.js about good development experience and deno runtime.
Using Feature Flags to Enable Testing in Production
Node Congress 2021
29 min
Using Feature Flags to Enable Testing in Production
Today's Talk discusses enabling tests in production, including challenges with staging environments, the use of feature flags for testing, and automating feature flag testing. It also covers running tests in production while ensuring no impact on real users, determining what to test in production, recommended tools and dependencies, and mitigating risks. The importance of testing in production and shifting the testing culture is emphasized, along with the need for a solid automation framework and managing feature flag dependencies.
What's New in npm?
DevOps.js Conf 2021
26 min
What's New in npm?
Welcome to my talk on what's new in the NPM CLI. NPMv7 introduced many new capabilities, including installing peer dependencies by default. npm v7 also introduced support for workspaces, allowing the definition of projects within your root project. The NPM team is continuously improving the CLI with weekly releases and is working on exciting features in collaboration with GitHub. NPM is not an acronym for Node Package Manager, and the CLI will continue to improve with the support of the growing team.
GitHub Actions for Node.js Apps
DevOps.js Conf 2021
32 min
GitHub Actions for Node.js Apps
GitHub Actions allow for continuous integration tasks, defined in YAML files, that can be versioned and reviewed through pull requests. Workflows can be triggered by events such as pull requests or merges, and steps can refer to external GitHub repositories. Docker containers can be built and deployed using GitHub Actions, with configuration setup and deployment defined in YAML files. Values can be used and shared between GitHub Actions, and Node.js internals can be instrumented for performance monitoring.
Introduction to the AWS CDK: Infrastructure as Node
Node Congress 2021
34 min
Introduction to the AWS CDK: Infrastructure as Node
The AWS CDK is an infrastructure as code tool that supports multiple programming languages and helps mitigate concerns about vendor lock-in. It uses JSII to support different languages and allows you to write code once and get the same API across different languages. The CDK simplifies resource creation and management in AWS, addressing the verbosity and error-proneness of CloudFormation. CDK applications consist of apps and stacks, with stacks mapping to CloudFormation stacks. The CDK provides a more compact and familiar syntax compared to CloudFormation, making it easier for JavaScript developers to handle the entire stack.
Troubleshooting your Serverless Node.js doesn't have to be a Pain
DevOps.js Conf 2021
27 min
Troubleshooting your Serverless Node.js doesn't have to be a Pain
Welcome to the DevOpsJS conference where Jeff Hopper introduces his Slack bot called LGTM ReplyGIF for posting GIFs on his behalf. He troubleshoots issues with the serverless Node code, uses CloudWatch logs and stack traces for debugging, and ships logs to Elasticsearch for analysis. Jeff explores troubleshooting options with Rollbar and discusses serverless deployment recommendations. The audience is invited to contribute to the Slack bot project, and the session concludes with thanks from Jeff.
Don’t Try This at Home: Synchronous I/O in Node.js
Node Congress 2021
32 min
Don’t Try This at Home: Synchronous I/O in Node.js
This Talk explores synchronous IO in Node.js and the advantages of asynchronous IO. It discusses exceptions to synchronous IO and approaches to achieving synchronous IO in Node.js, including using WASI and native add-ons. The Talk also covers mixing workers with atomics for synchronous IO and embedding Node.js to create a synchronous worker. Additionally, it touches on TypeScript migration, optimizations in Node.js, and experiences and advice on contributing to Node.js.