June 1 - 5, 2023
JS Nation
Amsterdam
JSNation 2023

The main JS conference of the year

Make a Game With PlayCanvas in 2 Hours
Jun 9, 14:00
Make a Game With PlayCanvas in 2 Hours
Workshop
Steven Yau
Steven Yau
In this workshop, we’ll build a game using the PlayCanvas WebGL engine from start to finish. From development to publishing, we’ll cover the most crucial features such as scripting, UI creation and much more.
Table of the content:
- Introduction
- Intro to PlayCanvas
- What we will be building
- Adding a character model and animation
- Making the character move with scripts
- 'Fake' running
- Adding obstacles
- Detecting collisions
- Adding a score counter
- Game over and restarting
- Wrap up!
- Questions
Workshop level
Familiarity with game engines and game development aspects is recommended, but not required.
Building WebApps That Light Up the Internet with QwikCity
Jun 12, 14:00
Building WebApps That Light Up the Internet with QwikCity
Workshop
Miško Hevery
Miško Hevery
Building instant-on web applications at scale have been elusive. Real-world sites need tracking, analytics, and complex user interfaces and interactions. We always start with the best intentions but end up with a less-than-ideal site.
QwikCity is a new meta-framework that allows you to build large-scale applications with constant startup-up performance. We will look at how to build a QwikCity application and what makes it unique. The workshop will show you how to set up a QwikCitp project. How routing works with layout. The demo application will fetch data and present it to the user in an editable form. And finally, how one can use authentication. All of the basic parts for any large-scale applications.
Along the way, we will also look at what makes Qwik unique, and how resumability enables constant startup performance no matter the application complexity.
Build a Universal Reactive Data Library with Starbeam
Jun 14, 16:00
Build a Universal Reactive Data Library with Starbeam
Workshop
Yehuda Katz
Yehuda Katz
This session will focus on Starbeam's universal building blocks. We'll use Starbeam to build a data library that works in multiple frameworks.
We'll write a library that caches and updates data, and supports relationships, sorting and filtering.
Rather than fetching data directly, it will work with asynchronously fetched data, including data fetched after initial render. Data fetched and updated through web sockets will also work well.
All of these features will be reactive, of course.
Imagine you filter your data by its title, and then you update the title of a record to match the filter: any output relying on the filtered data will update to reflect the updated filter.
In 90 minutes, you'll build an awesome reactive data library and learn a powerful new tool for building reactive systems. The best part: the library works in any framework, even though you don't think about (or depend on) any framework when you built it.
Table of contents
- Storing a Fetched Record in a Cell
- Storing multiple records in a reactive Map
- Reactive iteration is normal iteration
- Reactive filtering is normal filtering
- Fetching more records and updating the Map
- Reactive sorting is normal sorting (is this getting a bit repetitive?)
- Modelling cache invalidation as data
- Bonus: reactive relationships
Developing Dynamic Blogs with SvelteKit & Storyblok: A Hands-on Workshop
Jun 15, 13:00
Developing Dynamic Blogs with SvelteKit & Storyblok: A Hands-on Workshop
Workshop Free
Alba Silvente Fuentes
Roberto Butti
2 authors
This SvelteKit workshop explores the integration of 3rd party services, such as Storyblok, in a SvelteKit project. Participants will learn how to create a SvelteKit project, leverage Svelte components, and connect to external APIs. The workshop covers important concepts including SSR, CSR, static site generation, and deploying the application using adapters. By the end of the workshop, attendees will have a solid understanding of building SvelteKit applications with API integrations and be prepared for deployment.
How to Convert Crypto Currencies With GRPC Microservices in Node.js
Jun 16, 13:00
How to Convert Crypto Currencies With GRPC Microservices in Node.js
Workshop
Alex Korzhikov
Andrew Reddikh
2 authors
The workshop overviews key architecture principles, design patterns, and technologies used to build microservices in the Node.js stack. It covers the theory of the GRPC framework and protocol buffers mechanism, as well as techniques and specifics of building isolated services using the monorepo approach with lerna and yarn workspaces, TypeScript. The workshop includes a live practical assignment to create a currency converter application that follows microservices paradigms. It fits the best developers who want to learn and practice GRPC microservices pattern with the Node.js platform.
Prerequistes:
- Good understanding of JavaScript or TypeScript
- Experience with Node.js and writing Backend applications
-
Preinstall Node.js, npm
-
Preinstall Protocol Buffer Compiler
- We prefer to use VSCode for a better experience with JavaScript and TypeScript (other IDEs are also ok)
Beyond the Framework: Distributing Your Desktop App Like a Pro
Recording pending
Beyond the Framework: Distributing Your Desktop App Like a Pro
Workshop Free
Jonas Kruckenberg
Jonas Kruckenberg
Building apps using web technology is great; however, at times you may encounter limitations regardless of what framework you choose. During this workshop, we will talk about choosing a framework, common problems and how to overcome them.
Table of contents
- Introduction: The intertwined history of the Web and Apps
- So many desktop app technologies! How do I choose one?
- Common issues and how to think about apps
- Conclusion
0 To Auth In An Hour For Your JavaScript App
Recording pending
0 To Auth In An Hour For Your JavaScript App
Workshop Free
Asaf Shen
Asaf Shen
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.js backend + Vanilla JS frontend) to authenticate users with One Time Passwords (email) and OAuth, including:
- User authentication – Managing user interactions, returning session / refresh JWTs
- Session management and validation – Storing the session securely for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
React at Scale with Nx
Recording pending
React at Scale with Nx
Workshop Free
Isaac Mann
Isaac Mann
We're going to be using Nx and some its plugins to accelerate the development of this app.
Some of the things you'll learn:
- Generating a pristine Nx workspace
- Generating frontend React apps and backend APIs inside your workspace, with pre-configured proxies
- Creating shared libs for re-using code
- Generating new routed components with all the routes pre-configured by Nx and ready to go
- How to organize code in a monorepo
- Easily move libs around your folder structure
- Creating Storybook stories and e2e Cypress tests for your components
Table of contents: 
- Lab 1 - Generate an empty workspace
- Lab 2 - Generate a React app
- Lab 3 - Executors
- Lab 3.1 - Migrations
- Lab 4 - Generate a component lib
- Lab 5 - Generate a utility lib
- Lab 6 - Generate a route lib
- Lab 7 - Add an Express API
- Lab 8 - Displaying a full game in the routed game-detail component
- Lab 9 - Generate a type lib that the API and frontend can share
- Lab 10 - Generate Storybook stories for the shared ui component
- Lab 11 - E2E test the shared component
Bringing Your Web App to Native With Capacitor
Recording pending
Bringing Your Web App to Native With Capacitor
Workshop Free
Mike Hartington
Mike Hartington
So, you have a killer web app you've built and want to take it from your web browser to the App Store. Sure, there are a lot of options here, but most will require you to maintain separate apps for each platform. You want your codebase to be as close as possible across Web, Android, and iOS. Thankfully, with Capacitor, you can take your existing web app and quickly create native iOS and Android apps for distribution on your favorite App Store!
Contents: This workshop is aimed at beginner developers that have an existing web application, or are interested in mobile development. We will go over:
- What is Capacitor
- How does it compare to other cross-platform solutions
- Using Capacitor to build a native application using your existing web code
- Tidying up our application for distribution on mobile app stores with naming conventions, icons, splash screens and more
Build a Collaborative Notion-Like Product in 2H
Recording pending
Build a Collaborative Notion-Like Product in 2H
Workshop Free
Witek Socha
Witek Socha
You have been tasked with creating a collaborative text editing feature within your company’s product. Something along the lines of Notion or Google Docs.
CK 5 is a feature-rich framework and ecosystem of ready-to-use features targeting a wide range of use cases. It offers a cloud infrastructure to support the real-time collaboration system needs. During this workshop, you will learn how to set up and integrate CK 5. We will go over the very basics of embedding the editor on a page, through configuration, to enabling real-time collaboration features. Key learnings: How to embed, set up, and configure CK 5 to best fit a document editing system supporting real-time collaboration.
Table of contents:
- Introduction to the CK 5 ecosystem.
- Introduction to a “Notion-like” project template.
- Embedding CK 5 on a page.
- Basic CK 5 configuration.
- Tuning up CK 5 for a specific use case.
- Enabling real-time editing features.
Querying Blockchain Data with GraphQL
Recording pending
Querying Blockchain Data with GraphQL
Workshop Free
Simon Emanuel Schmid
Simon Emanuel Schmid
Curious about how data works in the world of blockchain? Join Simon in an engaging session about The Graph, the decentralized indexing protocol that makes it easy for blockchain developers to search and query blockchain data. 
Table of the contents:
- Understanding blockchain data
- Anatomy of a smart contract
- Indexing blockchain data with The Graph
- Accessing data on The Graph
- Recommended subgraphs
- Writing subgraphs overview
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
Recording pending
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
Workshop Free
Ryan Albrecht
Ryan Albrecht
You know that annoying bug? The one that doesn’t show up locally? And no matter how many times you try to recreate the environment you can’t reproduce it? You’ve gone through the breadcrumbs, read through the stack trace, and are now playing detective to piece together support tickets to make sure it’s real.
Join Sentry developer Ryan Albrecht in this talk to learn how developers can use Session Replay - a tool that provides video-like reproductions of user interactions - to identify, reproduce, and resolve errors and performance issues faster (without rolling your head on your keyboard).
Build and Deploy a Backend With Fastify & Platformatic
Recording pending
Build and Deploy a Backend With Fastify & Platformatic
Workshop Free
Matteo Collina
Matteo Collina
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:
- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).
- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.