---
title: "Two Threads of Lynx.js Part 2"
description: "Learn how Lynx.js uses a dual-threaded model, how its APIs work, and what it means for performance in this live session with Lukasz Chludzinski and Kewin Wereszczynski."
url: https://www.callstack.com/events/two-threads-of-lynx-js-part-2
updated: 2026-10-24T08:39:22.697Z
---

# Two Threads of Lynx.js Part 2

Learn how Lynx.js uses a dual-threaded model, how its APIs work, and what it means for performance in this live session with Lukasz Chludzinski and Kewin Wereszczynski.

_Livestream · 12/2/2025, 5PM [CET] · Online · Recording: 02:16:29 · Category: Cross-Platform_

Organizer: Callstack

Speakers: Łukasz Chludziński (Engineering Manager @ Callstack), Kewin Wereszczyński (Software Engineer @ Callstack)

[Watch the recording](https://www.youtube.com/watch?v=orWqH_CyQ7c)

### Continuing the Lynx.js exploration

This article summarizes the second installment in an ongoing exploration of Lynx.js and its two-thread runtime model. Building on [the first session](https://www.callstack.com/events/two-threads-of-lynx-js), the focus shifts to further practical work with Lynx, using the official [Product Detail tutorial](https://lynxjs.org/guide/start/tutorial-product-detail) as a reference point. Rather than introducing new concepts from scratch, this part extends earlier findings and observations.

### Revisiting the two-thread execution model

Lynx.js separates application logic from UI work by default, running user code on a background thread while reserving the main thread for rendering and interaction-critical tasks. This distinction is reflected directly in the API, where thread-specific bindings are exposed as part of component props. As a result, execution context becomes explicit and encourages deliberate placement of logic based on performance and responsiveness requirements.

### Working through the product detail tutorial

The session follows the Product Detail tutorial step by step, assembling a screen with a swipeable image gallery and supporting UI elements. Along the way, the example highlights how JSX structure, styling, and assets are organized in a Lynx project. While many patterns resemble familiar web or React workflows, thread-aware directives introduce an additional layer to how components and interactions are designed.

### Interaction flow and performance considerations

The swiper example provides a practical view into how interactions are handled across threads. Touch and scroll-related logic that requires immediate UI feedback is moved onto the main thread, while other computation remains on the background thread. Observing these decisions in a working example helps clarify how Lynx’s two-thread model is intended to reduce latency without overloading the main thread.

### What comes next

This second part continues to establish a foundation for understanding Lynx.js execution and interaction patterns. With the basics of thread separation and main-thread bindings covered, future explorations can focus on more advanced communication between threads and broader application scenarios.
