---
title: "A Qwik break from React?"
publication: "JavaScript Weekly"
issue: 673
published_at: "2024-02-01"
canonical_url: "https://javascriptweekly.com/issues/673"
---

Plus htmx 2.0 alpha 1, Deno 1.40, and TypeScript 5.4 beta. |        

#​673 — February 1, 2024 

[Read on the Web](https://javascriptweekly.com/issues/673)  

Together with [![Mescius\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_454,h_111/e_make_transparent/co_white,e_outline:7/iwtw1igi5mjsbp1jqfn5.png)](https://developer.mescius.com/wijmo/flexgrid-javascript-data-grid?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=Wijmo-JS-Weekly-Primary-Sponsor-Jan-2024)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kg6j7kokshl6rozy843j.jpg)](https://js.cytoscape.org/)  

[Cytoscape.js: Graph/Network Visualization and Analysis Library](https://js.cytoscape.org/) — Handy if you need to model and/or visualize relational data, like biological data or social networks. There are many demos to enjoy here. [GitHub repo.](https://github.com/cytoscape/cytoscape.js) 

Max Franz   

[Announcing TypeScript 5.4 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4-beta/) — TypeScript gains `Object.groupBy` and `Map.groupBy`, a new `NoInfer<T>` utility type is introduced to stop TypeScript from digging in to match against inner types during inference, and lots of smaller bits and pieces covered in this lengthy post. The final release is expected in March. 

Daniel Rosenwasser   [![\](https://copm.s3.amazonaws.com/5d53aad7.png)](https://developer.mescius.com/wijmo/flexgrid-javascript-data-grid?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=Wijmo-JS-Weekly-Primary-Sponsor-Jan-2024) 

[FlexGrid by Wijmo: The Industry-Leading JavaScript DataGrid](https://developer.mescius.com/wijmo/flexgrid-javascript-data-grid?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=Wijmo-JS-Weekly-Primary-Sponsor-Jan-2024) — A fast and flexible DataGrid for building modern web apps. Key features and virtualized rendering are included in the grid module. Pick and choose special features to keep your app small. Built for JavaScript, extended to Angular, React, and Vue. 

Wijmo from MESCIUS inc sponsor   

[Deno 1.40: Now with the Temporal API](https://deno.com/blog/v1.40) — Most releases of the [Deno](https://deno.com/) JS runtime seem significant lately, but 1.40’s implementation of the [Temporal API](https://tc39.es/proposal-temporal/docs/), [decorators](https://github.com/tc39/proposal-decorators), and [more WebGPU features](https://deno.com/blog/v1.40#webgpu-windowing--bring-your-own-window) ups the ante on the path to v2. 

The Deno Team   

**IN BRIEF:** 

- [Some Node.js security releases](https://nodejs.org/en/blog/vulnerability/february-2024-security-releases) are anticipated next Tuesday (Feb 6.)
- TIL: The [pnpm](https://pnpm.io/) project maintains [a frequently updated benchmark of package managers](https://pnpm.io/benchmarks) (well, npm, pnpm and Yarn, anyway.)
- 🏀 [Bouncy Ball](https://sparkbox.github.io/bouncy-ball/) shows a live comparison of 22 ways to animate a bouncing ball in the browser. Most are JS-based and show the code.
- [Porffor](https://porffor.goose.icu/) is an experimental, ahead-of-time JS to WASM compiler. 

**RELEASES:** 

- [htmx 2.0.0-alpha1](https://v2-0v2-0.htmx.org/posts/2024-01-26-htmx-2-0-0-alpha1-is-released/) – There's [a draft 1.x→2.x migration guide](https://v2-0v2-0.htmx.org/migration-guide-htmx-1/) showing what will be affected (not a_lot_).
- [Puppeteer 21.10.0](https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v21.10.0) – Node.js API for Chrome - now with experimental `browser.debugInfo`.
- [Neutralinojs 5.0](https://neutralino.js.org/docs/release-notes/framework/#v500) – Lightweight cross platform desktop app framework.
- [Primate 0.28](https://primatejs.com/blog/release-028), [Prisma 5.9](https://github.com/prisma/prisma/releases/tag/5.9.0), [Ember 5.6](https://blog.emberjs.com/ember-released-5-6/), [Pixi.js 7.4](https://github.com/pixijs/pixijs)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ba8j8bjpme7em14kn4fd.jpg)](https://thenewstack.io/take-a-qwik-break-from-react-with-astro/)  

[Take a Qwik Break from React with Astro](https://thenewstack.io/take-a-qwik-break-from-react-with-astro/) — Paul Scanlon compares React to [Qwik](https://qwik.dev/) using several examples and concludes that Qwik is at least worth exploring as a React alternative. 

Paul Scanlon   

[Import Assertions and Import Attributes](https://v8.dev/features/import-attributes) — Shu-yu Guo, of both TC39 and the V8 team at Google, explains how import assertions matured into import _attributes_ and are enabled by default in V8 v12.3. 

Shu-yu Guo (V8)   

[A Next.js App Router Migration: The Good, Bad, and Ugly](https://www.flightcontrol.dev/blog/nextjs-app-router-migration-the-good-bad-and-ugly) — A team rebuilt their main dashboard from scratch using a modern Next.js approach and here’s some of what they encountered, good and bad, before concluding that they wish they’d considered [Remix](https://remix.run/)instead. 

Brandon Bayer (Flightcontrol)   

[Improving Enterprise Design Systems](https://www.crowdcast.io/c/stackblitz-design-systems?utm_source=js-weekly&utm_medium=secondary&utm_campaign=ds-webinar) — Live stream for design system builders and users: How can we make working with design systems more seamless? 

StackBlitz sponsor   

[Squeezing the Last Bit of JS Performance for my Automation Game](https://ruoyusun.com/2024/01/23/cividle-optimization.html) — The author is building [CivIdle](https://www.cividle.com/), a casual ‘idle’ civilization building game, using [Pixi.JS](https://pixijs.com/). As an idle game, it needs to simulate time that passed behind the scenes which meant a lot of optimization was in order. 

Ruoyu Sun   

[Starting and Publishing a Library: The Modern Way](https://advancedweb.hu/modern-javascript-library-starter/) — A walk through the steps involved in creating and packaging a library, publishing a package, adding testing, and automatically publishing it all to the NPM registry. 

Tamás Sallai   

[How to Test Web Bluetooth with Puppeteer](https://developer.chrome.com/blog/test-web-bluetooth-with-puppeteer) — Use Puppeteer to test features that use the Web Bluetooth API in Chrome. 

Masso and Beaufort   

[The Absolute Minimum Every Software Developer Must Know About Unicode](https://tonsky.me/blog/unicode/) — A modern extension to a classic 2003 article by Joel Spolsky. 
Nikita Prokopov   

[Tackling Flaky Tests with Cypress and Playwright through Network Synchronization](https://www.bigbinary.com/blog/tackling-flaky-tests-in-cypress-and-playwright) 
Shreya Kurian   

[Why I'm Excited for Biome's Type Inference](https://arendjr.nl/2024/01/why-im-excited-for-biomes-type-inference) 
Arend van Beelen jr.  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pgvnpsmvw6jj8folyt08.jpg)](https://yantra.gg/labyrinthos/)  

[Labyrinthos.js: A Procedural Generator for Mazes, Etc.](https://yantra.gg/labyrinthos/) — The interactive demo on the homepage will give you the basic idea, but the library implements a variety of algorithms for creating mazes and terrain, including the use of Perlin noise, growing trees, spiral backtracking, and more. [GitHub repo.](https://github.com/yantra-core/Labyrinthos.js) 

Yantra Works   

[The Most Comprehensive User Management Platform](https://clerk.com/?utm_source=sponsorship&utm_medium=newsletter&utm_campaign=cooper_press&utm_content=02-01-2024) — Clerk offers drop-in auth & user management with prebuilt UI components, feature-rich SDKs & APIs for the modern web. 

Clerk sponsor   [![\](https://res.cloudinary.com/cpress/image/upload/w_240,e_sharpen:60,q_auto/mwe8dbkchtaaazekkzx3.jpg)](https://react-resizable-panels.vercel.app/) 

[React Resizable Panels: Components for Resizable Panels](https://react-resizable-panels.vercel.app/) — If you want users to be able to resize content panels with dividers, try this. The site has many code-based examples showing off the features. v2 supports resizing multiple intersecting panels at once. [GitHub repo](https://github.com/bvaughn/react-resizable-panels). 

Brian Vaughn   

[Husky 9: Git Hooks Made Easier](https://github.com/typicode/husky/releases/tag/v9.0.1) — [Husky](https://typicode.github.io/husky/) provides a structured way to use git hooks to do things like auto-lint your commit messages or code, and run tests upon committing or pushing. v9 makes setting it up and adding hooks _much_ easier. 

typicode   

[David UI Angular 1.0: Tailwind + Angular Components Libary](https://www.david-ui-angular.com/) — There are seventeen components so far, covering things like [sliders](https://www.david-ui-angular.com/docs/slider), [buttons](https://www.david-ui-angular.com/docs/button), [notification alerts](https://www.david-ui-angular.com/docs/alert), and common form elements. [GitHub repo.](https://github.com/david-ui-org/david-ui-angular) 

Creative Tim   

[React Datepicker 6.0: A Simple Date Picker Component](https://reactdatepicker.com/) — I can’t remember the last time I saw so many code examples on a homepage :-) 

HackerOne   

[🎹 Fast, Reliable, Multi-Format Barcode Scanning for Web Apps with STRICH](https://strich.io/?ref=jsweekly) — Reliably scan barcodes in your web app! Easy integration, free demo app and free 30-day trial. 

Pixelverse sponsor   

[goja: An ECMAScript/JavaScript Engine in Pure Go(lang)](https://github.com/dop251/goja) — A way to add JavaScript-based scripting functionality to apps written in the Go language that doesn’t involve integrating a larger, external JavaScript engine. 

Dmitry Panov   

🎨 [chroma.js: Zero Dependency Color Conversion Library](https://vis4.net/chromajs/) — I love the simple but suitably colorful documentation this library has. [GitHub repo.](https://github.com/gka/chroma.js) 

Gregor Aisch   

- [Faker 8.4](https://fakerjs.dev/) – Generate fake/dummy data, at scale and on demand.
- [jquery.terminal 2.38](https://github.com/jcubic/jquery.terminal) – Create Web based terminal experiences. ([Demo.](https://terminal.jcubic.pl/#demo))
- [Polished 4.3](https://github.com/styled-components/polished) – A lightweight way to write styles in JavaScript.
- [Dependency Cruiser 16.1](https://github.com/sverweij/dependency-cruiser) – Tool to visualize dependencies.
- [Nightwatch.js 3.4](https://github.com/nightwatchjs/nightwatch) – Node.js end-to-end testing framework.
- [OverlayScrollbars 2.5](https://kingsora.github.io/OverlayScrollbars/) – JS custom scrollbar plugin.         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
