---
title: "A WebAssembly compiler in 192 bytes"
publication: "JavaScript Weekly"
issue: 721
published_at: "2025-01-31"
canonical_url: "https://javascriptweekly.com/issues/721"
---

Plus TypeScript 5.8 beta, Astro 5.2, and a forthcoming Angular documentary. |        

#​721 — January 31, 2025 

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

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/javascript-hard-parts-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=jsv2)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ogjnwfpl368crsuxrhgg.jpg)](https://felixrieseberg.com/things-people-get-wrong-about-electron/)  

[Things People Get Wrong About Electron](https://felixrieseberg.com/things-people-get-wrong-about-electron/) — A long-time maintainer of the wildly successful Electron cross-platform app framework stands by [the technical choices](https://www.electronjs.org/docs/latest/why-electron) Electron has made over the years and defends it against some of the more common criticisms here. 

Felix Rieseberg   

[Standard Schema: A Common Interface to Schema / Validation Libraries](https://standardschema.dev/) — From the creators of [Zod](https://zod.dev/), [Valibot](https://valibot.dev/) and [ArkType](https://arktype.io/) comes a fantastic bit of collaboration to define a common interface to use JavaScript and TypeScript schema libraries. 

McDonnell, Hiller, and Blass   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/7de26641.png)](https://frontendmasters.com/courses/javascript-hard-parts-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=jsv2) 

[JavaScript: The Hard Parts](https://frontendmasters.com/courses/javascript-hard-parts-v2/?utm_source=email&utm_medium=javascriptweekly&utm_content=jsv2) — Take your knowledge to the next level with the most loved JavaScript course in the industry. Deepen your understanding of the most important aspects of JavaScript. This highly rated video course goes under the hood, looking at callbacks, higher-order functions, object-oriented JS, and more. 

Frontend Masters sponsor   

[A WebAssembly Compiler That Fits in a Tweet](https://wasmgroundup.com/blog/wasm-compiler-in-a-tweet/) — Or 192 bytes, if you prefer. This is a look into a fantastic little bit of JavaScript hacking that can compile arithmetic expressions into WebAssembly you can run very easily. You can learn a lot in so little time here. 

Mariano Guerra and Patrick Dubroy   

[Announcing TypeScript 5.8 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8-beta/) — It’s that time again. What’s new? Support for using `require()` for ES modules in Node 22+, checked returns for conditional and indexed access types, startup and building optimizations & more. While not a huge release overall, it's particularly good for Node devs. 

Daniel Rosenwasser   

💡 One neat 5.8 feature is [`--erasableSyntaxOnly`](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8-beta/?ck_subscriber_id=887809557#the---erasablesyntaxonly-option), a way to ensure that 'type stripping' techniques still result in runnable code by disallowing TypeScript-exclusive features like enums.  

**IN BRIEF:** 

- 🎬 Remember Honeypot's [well-received Node.js documentary](https://www.youtube.com/watch?v=LB8KwiiUGy0)? (If not, watch it!) Now there's [a trailer for an _Angular_ documentary](https://www.youtube.com/watch?v=nONHcxn3giQ) due soon.
- There's been a lot of chatter about _Create React App_ being effectively 'deprecated' due to a lack of updates from Meta. Turns out, [it _is_ deprecated](https://github.com/facebook/create-react-app/pull/17003), but [the process is now being managed gracefully](https://github.com/facebook/create-react-app/issues/17004) and some basic React 19 support will be merged in.
- A developer came up with [an approach to making npm packages 5% smaller](https://evanhahn.com/my-failed-attempt-to-shrink-all-npm-packages-by-5-percent/) using Zopfli compression and asked the npm team to consider it. Ultimately the decision was no for [a variety of reasons.](https://github.com/npm/rfcs/pull/595#issuecomment-1200480148)
- ⭐ The _Syntax_ YouTube channel presents [▶️ a fun countdown of the top 15 most starred JavaScript projects](https://www.youtube.com/watch?v=NBDnS9UQg5w) on GitHub. This is so well put together.   

**RELEASES:** 

- [Astro 5.2](https://astro.build/blog/astro-520/) – The popular framework adds Tailwind CSS 4 support and more niceties.
- [pnpm 10.1](https://github.com/pnpm/pnpm/releases/tag/v10.1.0) – The alternative, efficient package manager.
- [Prisma 6.3](https://github.com/prisma/prisma) – Popular ORM for Node.js and TypeScript.
- ⭐ [Phaser v4 Beta 5](https://phaser.io/news/2025/01/phaser-v4-beta-5-released), [Node.js 23.7](https://nodejs.org/en/blog/release/v23.7.0), [npm 11.1](https://github.com/npm/cli/blob/latest/CHANGELOG.md#changelog), [Neutralinojs 5.6](https://neutralino.js.org/docs/release-notes/framework/#v560)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qwlarxhrhxyww8ijodhn.jpg)](https://marvinh.dev/blog/modern-way-to-write-javascript-servers/)  

[The Modern Way to Write JavaScript Servers](https://marvinh.dev/blog/modern-way-to-write-javascript-servers/) — The irony is that while Node popularized JavaScript on the server (though Netscape was doing it in the 90s) this modern, standardized cross-runtime approach _doesn’t_ work on Node ...yet ;-) 

Marvin Hagemeister   

[Introducing Mentoss: The `fetch` Mocker](https://humanwhocodes.com/blog/2025/01/introducing-mentoss-fetch-mocker/) — A new approach to mocking global `fetch()` calls (in both browsers and server-side runtimes) inspired by previous attempts like Nock and MSW. 

Nicholas C. Zakas   

[Wish Your AI Co-Pilot Actually Knew Your Codebase?](https://augmentcode.com/?utm_source=cooper&utm_medium=newsletter) — Try the most context-aware Developer AI. Augment deeply understands your codebase, documentation, and dependencies. 

Augment Code sponsor   

[Lessons from Scaling WebSockets for a JavaScript App](https://composehq.com/blog/scaling-websockets-1-23-25) — Scaling WebSockets for real-time apps presents hidden complexities. Compose shares some lessons learnt the hard way. 

Atul Jalan   

📄 [Computing with Tuples in TypeScript](https://2ality.com/2025/01/typescript-tuples.html) – A way to bring objects of different types together but in a lighter way than keyed objects. Dr. Axel Rauschmayer 

📄 [How Long is a Second in JavaScript?](https://docs.timetime.in/blog/how-long-is-a-second-in-js/) – What may seem like a straightforward query is actually one of surprising complexity. Iago Lastra 

📄 [Adding Maps to Your Pages with Leaflet.js](https://frontendmasters.com/blog/mapping-with-leaflet/) – Quick, easy, and open source to boot. Raymond Camden 

📄 [How to Use Node's `fs` in the Browser for Custom Playgrounds](https://typeconf.dev/blog/using-fs-in-browser) Ivan Chebykin 

📄 [Building a QR Code HTML Web Component](https://scottjehl.com/posts/q-r/) Scott Jehl 

📄 [How to Build a CMS with React Admin](https://marmelab.com/blog/2025/01/24/how-to-build-a-cms-with-react-admin.html) Thibault Barrat  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zcr61kxofo2sldplzki7.jpg)](https://docxtemplater.com/)  

[docxtemplater: Generate `docx` and `pptx` Documents from Templates](https://docxtemplater.com/) — Generate Word and PowerPoint files dynamically by merging against templates (ideal for invoices, contracts, certificates, etc.) It’s open source (MIT _or_ GPLv3), but the creator has a commercial version with more extensions (e.g. to work with Excel). [GitHub repo](https://github.com/open-xml-templating/docxtemplater) and [feature demos.](https://docxtemplater.com/demo/#/categories) 

Edgar Hipp   

📊 [Plotly 3.0: A JavaScript Graphing Library](https://plotly.com/javascript/) — A high-level, declarative charting library, built on top of D3 and stack.gl, with over 40 chart types, including 3D charts, statistical graphs, and SVG maps. [v3](https://github.com/plotly/plotly.js/releases/tag/v3.0.0) is largely to remove deprecations, fix bugs, and a switch to [esbuild.](https://esbuild.github.io/) 

Plotly, Inc.   

[Using Clerk SSO to Access Google Calendar and Other Service Data](https://go.clerk.com/VNePMNL) — Leverage Clerk’s social sign in providers to easily access service data on behalf of your users. 

Clerk sponsor   

[Emittery 1.1: A Simple, Modern Async Event Emitter](https://github.com/sindresorhus/emittery) — A small, async event emitter for Node and the browser, and now with support for `AbortController`. 

Sindre Sorhus   

[jsontr.ee: Visualize JSON Structures as Dynamic SVG Diagrams](https://github.com/xzitlou/jsontr.ee) — You can try it out on [this playground](https://jsontr.ee/), which provides the option to download the diagram as PNG, or use it in an app with customizable styles. 

Lou Alcalá   

[DBOS Transact v2: Lightweight Durable Execution in TypeScript](https://github.com/dbos-inc/dbos-transact-ts) — Durable execution means persisting the execution state of your program while it runs, so if it’s interrupted or crashes, it resumes from where it left off – ideal for long-running or business-critical workflows. [Docs.](https://docs.dbos.dev/) 

DBOS, Inc.      

📰 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=january31st). Relied on by Lattice, Bilt Rewards, etc. 

--- 

Protect your SaaS app with advanced device fingerprinting from [WorkOS Radar](https://workos.com/radar?utm_source=cpjs&utm_medium=newsletter&utm_campaign=q12025). Stop fake signups, free tier abuse, bot attacks and brute force attempts today.     

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/m82l6zegpu8b5lnvvll1.jpg)](https://github.com/puffinsoft/jscanify)  

[jscanify 1.3: JavaScript Document Scanning Library](https://github.com/puffinsoft/jscanify) — Given raw photos of documents, this can do paper detection (along with glare suppression), distortion correction, highlighting and extracting. [See some visual examples](https://github.com/puffinsoft/jscanify/releases/tag/v1.3.0) or [try it out here.](https://colonelparrot.github.io/jscanify/tester.html) 

ColonelParrot   

[Ruck 9.0: A React Webapp Framework for Deno](https://ruck.tech/) — A lean React-based way to build modern React apps with Deno using features like ESM, dynamic imports, HTTP imports, and import maps with no transpilation or bundling. 

Jayden Seric   

- [OpenPGP.js 6.1](https://github.com/openpgpjs/openpgpjs/releases/tag/v6.1.0) – OpenPGP implementation for JavaScript.
- [wavesurfer.js 7.9](https://github.com/katspaugh/wavesurfer.js) – Waveform rendering and playback.
- [Poku 3.0](https://github.com/wellwelwel/poku/releases/tag/v3.0.0) – Cross-platform JavaScript test runner.         

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
