---
title: "The projects that shaped JavaScript in 2024"
publication: "JavaScript Weekly"
issue: 718
published_at: "2025-01-10"
canonical_url: "https://javascriptweekly.com/issues/718"
---

Plus the JavaScript trademark fight is on, Express.js preps for a big 2025, and running JavaScript inside a PDF. |        

#​718 — January 10, 2025 

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

🗓️ **Friday is the new Thursday!** If you were a JavaScript Weekly reader several years ago, you might remember it always landed on Fridays and after getting caught out by a variety of big news items landing on Thursdays in recent years, we're back ;-)
__
_Your editor, Peter Cooper_ 

Together with [![Datadog\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_700,h_190/e_make_transparent/co_white,e_outline:10/vuhqm1wlyvxuddx1zxr8.png)](https://www.datadoghq.com/resources/synthetic-monitoring-product-brief/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=dg-synthetics-ww-synthetics-brief-js)   

JavaScript Weekly 

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

⭐ [2024's JavaScript Rising Stars](https://risingstars.js.org/2024/en) — It’s time to fully wave goodbye to 2024, but not before Michael Rambeau’s annual analysis of which JavaScript projects fared best on GitHub over the past year. Even if you dislike GitHub stars as a metric for anything, this remains a great way to get a feel for the JavaScript ecosystem and see what libraries and tools have mindshare in a variety of niches. A fantastic roundup as always. 

Michael Rambeau   

[A Look at Import Attributes](https://2ality.com/2025/01/import-attributes.html) — It’s always a pleasure to see Dr. Axel blogging about JavaScript again, and he’s back with one of his typical deep dives into a newer ECMAScript feature: [import attributes.](https://github.com/tc39/proposal-import-attributes) This feature provides an inline syntax for attaching metadata to module imports such as for importing non-JavaScript modules (e.g. JSON, WASM or CSS). 

Dr. Axel Rauschmayer   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/0bd0f748.png)](https://www.datadoghq.com/resources/synthetic-monitoring-product-brief/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=dg-synthetics-ww-synthetics-brief-js) 

[How to Enable End-to-End Testing with Synthetic Monitoring](https://www.datadoghq.com/resources/synthetic-monitoring-product-brief/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=dg-synthetics-ww-synthetics-brief-js) — Synthetic Monitoring helps you launch new features with confidence and speed. Learn how you can create robust end-to-end test suites, spend less time on false positives, and proactively catch errors before they get to production. 

Datadog sponsor   

[Node’s New Built-in Support for TypeScript](https://2ality.com/2025/01/nodejs-strip-type.html) — [Node.js v23.6.0 (Current)](https://nodejs.org/en/blog/release/v23.6.0) has just been released and makes Node’s new type-stripping features work by default, so you can just run `node file.ts` and it Should Just Work™. Dr. Axel explains how it works and what the limitations are. 

Dr. Axel Rauschmayer   

**IN BRIEF:** 

- 🥊 The Deno vs Oracle fight over the JavaScript™ trademark continues as Oracle has informed Deno [they're not going to voluntarily relinquish the mark.](https://x.com/deno_land/status/1876728474666217739) Deno's job now is to show how JavaScript has long been used as a generic term and hasn't been controlled by Oracle.
- The Express.js team has posted [about the project's recent revival and its plans to push Express.js forward in 2025.](https://expressjs.com/2025/01/09/rewind-2024-triumphs-and-2025-vision.html)
- ❄️ The 'WinterCG' _Web Interoperable Runtimes Community Group_, an effort to promote standards around runtime interoperability of JavaScript runtimes, [has moved to Ecma International](https://deno.com/blog/wintertc) and is now known as [WinterTC (TC55).](https://wintercg.org/)
- 📺 Node.js creator Ryan Dahl gave [a talk at _GOTO Chicago 2024_ about Deno 2](https://www.youtube.com/watch?v=Ak-FYSpW-rA), covering Deno's differences to Node and what [Deno 2.0](https://deno.com/blog/v2.0) (and JSR) has to offer JavaScript developers, complete with live demos.   

**RELEASES:** 

- [pnpm 10](https://github.com/pnpm/pnpm/releases/tag/v10.0.0) – The efficient `npm` alternative no longer runs lifecycle scripts of dependencies for security reasons, hashing algorithms have been upgraded to SHA256, and lots of minor tweaks.
- [Bun v1.1.43](https://bun.sh/blog/bun-v1.1.43) – The high-performance runtime gets first class S3 support, an HTML bundler, and can output V8 heap snapshots (which is quite something as Bun uses JavaScriptCore, not V8).
- 🔠 [Tesseract.js 6.0](https://tesseract.projectnaptha.com/) – The popular pure JS multilingual OCR library has resolved a variety of memory leak issues.
- [Docusaurus 3.7](https://docusaurus.io/blog/releases/3.7) – The popular docs-oriented site generator goes full React 19.
- [Node.js v22.13.0 (LTS)](https://nodejs.org/en/blog/release/v22.13.0) – The [permission model system](https://nodejs.org/api/permissions.html) is now stable.
- [Puppeteer 24.0](https://pptr.dev/), [RxDB 16.0](https://rxdb.info/releases/16.0.0.html), [Ember 6.1](https://blog.emberjs.com/ember-released-6-1), [QuickJS 0.8](https://github.com/quickjs-ng/quickjs/releases/tag/v0.8.0)  

📒 Articles & Tutorials  

[The Future of htmx](https://htmx.org/essays/future/) — [htmx](https://htmx.org/) is an increasingly popular way to enhance HTML and actually write _less_ JavaScript on the frontend. This post reflects on how htmx would like to be ‘the new jQuery’, not least in the sense that one of the project’s goals is to push the ideas of htmx into the HTML standard itself, as in [this set of proposals.](https://alexanderpetros.com/triptych/) 

Gross and Petros   

[You Don't _Need_ Next.js](https://www.comfydeploy.com/blog/you-dont-need-nextjs) — As much as Next.js is considered the React meta-framework of choice, if your requirements are modest, simply going with plain React offers numerous benefits in terms of simplicity and speed, as seen here. 

Benny Kok   

[Introducing Clerk SDKs for Vue and Nuxt](https://go.clerk.com/s5kGNPy) — Official `@clerk/vue` & `@clerk/nuxt` SDKs for authentication integration with pre-built UI components in Vue/Nuxt apps. 

Clerk sponsor   

[Using TypeScript Without Build Tools](https://frontendmasters.com/blog/typescript-without-build-tools/) — Chris Coyier enjoys the benefits of TypeScript while developing, but actually compiling it to JavaScript in various scenarios is less endearing. We’ve learnt (above) that Node can now run `.ts` files directly, but what other projects support the use of TypeScript without build tools? 

Chris Coyier   

📄 [Using a JavaScript Component Inside a Haskell App](https://blog.haskell.org/case-study-foreign-integration-js-browser/) – Did you know Haskell’s main compiler supports integrating with JavaScript? Mateusz Goślinowski 

📄 [Crafting a Dreamy Particle Effect with Three.js and GPGPU](https://tympanus.net/codrops/2024/12/19/crafting-a-dreamy-particle-effect-with-three-js-and-gpgpu/) Dominik Fojcik 

📄 [Build Your Own Site Speed Testing Tool with Puppeteer](https://calendar.perfplanet.com/2024/build-your-own-site-speed-testing-tool-with-puppeteer/) Henry Price 

📄 [Sharing a Variable Across HTML, CSS, and JavaScript](https://frontendmasters.com/blog/sharing-a-variable-across-html-css-and-javascript/) Chris Coyier 

📄 [Benchmarking GraphQL Solutions in the JS/TS Landscape](https://tomekdev.com/posts/benchmarking-graphql-solutions-in-the-js-ts-landscape) Tomasz Nieżurawski 

📄 [Shallow Clones vs Structured Clones](https://philna.sh/blog/2024/12/30/shallow-clones-versus-structured-clones/) Phil Nash  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zvkfoikzntewlsdjzeju.jpg)](https://github.com/postalsys/postal-mime)  

[PostalMime: A Universal Email Parsing Library](https://github.com/postalsys/postal-mime) — An email parsing library happy in most JS runtimes. Takes the raw source of emails and parses them into their constituent parts. 

Postal Systems   

[`trimMiddle()`: The Missing String Trim Method?](https://christianheilmann.com/2025/01/03/trimmiddle-the-missing-string-trim-command/) — If you’ve got a long string and want to keep the start and end and truncate in the middle, this is for you. There’s [a live demo here](https://codepo8.github.io/trimMiddle/demo.html) and [GitHub repo.](https://github.com/codepo8/trimMiddle) 

Christian Heilmann   

[Fully Customizable Form Builder that Blends Seamlessly with Your JS App](https://surveyjs.io?utm_source=jsweekly&utm_medium=email) — Need a survey solution you control? With SurveyJS, customize your form builder’s look and functionality. [Try it for free](https://surveyjs.io?utm_source=jsweekly&utm_medium=email%20). 

SurveyJS sponsor   

[Introducing `@smoores/epub`: A Package for Working with EPUB Files](https://smoores.dev/post/announcing_smoores_epub/) — [EPUB](https://en.wikipedia.org/wiki/EPUB) is a popular e-book file format and this new library provides a way to both read and write them. [npm package link.](https://www.npmjs.com/package/@smoores/epub) 

Shane Friedman   

[Tipex: An Advanced Rich Text Editor for Svelte](https://github.com/friendofsvelte/tipex) — Based on the popular [Tiptap](https://tiptap.dev/) editor framework, it’s customizable, has theming support, and is Svelte 5-ready. [Here’s a live example](https://tipex.pages.dev/). 

Friend of Svelte   

[React-Toastify 11: In-Page Notifications Made Easy](https://github.com/fkhadra/react-toastify/releases/tag/v11.0.0) — There’s an elaborate [demo page here](https://fkhadra.github.io/react-toastify/introduction/) but essentially it’s a flexible, easy to style ‘toast’ style notifications system with many years under its belt. [GitHub repo.](https://github.com/fkhadra/react-toastify) 

Fadi Khadra   

[Electrobun: A New JS Cross-Platform Desktop App Toolkit](https://electrobun.dev/) — A fresh take on the concept covered by [Electron](https://www.electronjs.org/) and [Neutralinojs](https://neutralino.js.org/), except based around [Bun.](https://bun.sh/) It’s _early days_, though, with only ARM-based Macs supported for now. 

Blackboard Technologies inc.   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qanmzcdmxiqzfzsnk6ha.jpg)](https://yaireo.github.io/tagify/)  

[Tagify 4.33: An Elegant Input Component for Tags](https://yaireo.github.io/tagify/) — The polished demos show a lot of effort has been put in here. [GitHub repo.](https://github.com/yairEO/tagify) 

Yair Even-Or   

- 📊 [Recharts v2.15.0](https://github.com/recharts/recharts/releases/tag/v2.15.0) – D3-powered React chart library now with React 19 support.
- [Discordeno 21.0](https://github.com/discordeno/discordeno) – Discord API library for Node, Deno and Bun.
- [htmlparser2 10.0](https://github.com/fb55/htmlparser2) – Fast and forgiving HTML and XML parser.
- [Ts.ED 8.4](https://tsed.dev/) – Node + TypeScript framework on top of Express.
- 📊 [ApexCharts 4.3](https://apexcharts.com/) – Popular JS charting library. ([Demos.](https://apexcharts.com/javascript-chart-demos/))
- [zx 8.3](https://github.com/google/zx/releases/tag/8.3.0) – Google's tool for better Node.js shell scripting.
- [Octokit.js 4.1](https://github.com/octokit/octokit.js) – 'Batteries-included' GitHub SDK.       

📰 Classifieds   

[Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort](https://www.meticulous.ai?utm_source=javascript_weekly&utm_campaign=january10th). Relied on by Lattice, Bilt Rewards, etc. 

--- 

🔹Sell to enterprise with a few lines of code with [WorkOS — the modern, flexible identity platform for B2B SaaS.](https://workos.com/?utm_source=cpjs&utm_medium=newsletter&utm_campaign=q12025) Integrate SSO, SCIM and FGA in minutes, not months.     

🎁 And one for fun? 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bkfgxrevi2mxvvlgei4d.jpg)](https://th0mas.nl/downloads/pdftris.pdf)  

📄 [Play Tetris in a PDF File](https://th0mas.nl/downloads/pdftris.pdf) — (direct link to PDF)   

I'll let you decide if this one is fun or frightening! Whether or not this will work depends on your PDF reader or browser support, but it works with Chrome and Firefox, at least. 

The PDF document format supports embedded JavaScript and this experiment uses it to implement a game of Tetris. The developer, Thomas Rinsma, has [used Python to output the PostScript that includes the game's JavaScript.](https://github.com/ThomasRinsma/pdftris/blob/main/gengrid.py) Couple that with the fact many browser PDF renderers are _themselves_ implemented in JavaScript (e.g. [PDF.js](https://mozilla.github.io/pdf.js/)) and you have a veritable Matryoshka doll of technologies at play here.         

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
