---
title: "MDN ditches React for web components in frontend rebuild"
publication: "JavaScript Weekly"
issue: 781
published_at: "2026-04-14"
canonical_url: "https://javascriptweekly.com/issues/781"
---

Plus uses for nested promises, big Phaser and Bun updates, and someone installed every Firefox extension - for science.        

#​781 — April 14, 2026 

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

Together with [![Expo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1024,h_289/e_make_transparent/co_white,e_outline:15/damvoyij8zrqr3lp2edx.png)](https://try.expo.dev/jsweekly-april)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gm0i5twsmyfutkc1xygg.jpg)](https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/)  

[Under the Hood of MDN's New Frontend](https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/) — The hugely useful [MDN](https://developer.mozilla.org/en-US/) has rebuilt its frontend stack from the ground up, ditching React for web components and a homegrown server component system. A great read on building a modern, content-heavy site without shipping unnecessary JavaScript on every page. 

Leo McArdle (MDN)   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/865de20e.png)](https://try.expo.dev/jsweekly-april) 

[Ship Mobile Apps The Way You Ship Websites](https://try.expo.dev/jsweekly-april) — Expo gives JavaScript developers a web-like workflow for native mobile. Hot reload on device. OTA updates that skip app store review. Cloud builds that work like Vercel. Start with npx create-expo-app. 

Expo sponsor   

🕹️ [Phaser 4.0: The 2D WebGL and Canvas-Based Game Framework](https://phaser.io/) — The widely used game framework celebrates its 13th birthday with [a major release](https://github.com/phaserjs/phaser/releases/tag/v4.0.0) focused on perf/efficiency improvements, and includes [skills files](https://github.com/phaserjs/phaser/tree/master/skills) so AI agents can build Phaser 4.0 apps well. There are [lots of demos](https://labs.phaser.io/), including [these games](https://labs.phaser.io/?path=games), and existing users get a [v3 to v4 migration guide.](https://github.com/phaserjs/phaser/blob/master/changelog/v4/4.0/MIGRATION-GUIDE.md) 

Phaser Studio Inc.   

**IN BRIEF:** 

- Google will [penalize sites that 'hijack' the back button](https://developers.google.com/search/blog/2026/04/back-button-hijacking) in its search results from June. _"Ensure you are not doing anything to interfere with a user's ability to navigate their browser history,"_ says Chris Nelson.
- [TanStack Start](https://tanstack.com/start/latest) now has [(experimental) React Server Components support.](https://tanstack.com/blog/react-server-components)
- 🇫🇷 [dotJS](https://www.dotjs.io/) returns to Paris, France this September 18 – [its CFP](https://www.dotjs.io/speak) is open for two more weeks if you'd like to speak.
- 🇷🇴 The [_JSHeroes_ conference](https://jsheroes.io/) is back this May 14-15 in Romania.   

**RELEASES:** 

- [Bun v1.3.12](https://bun.com/blog/bun-v1.3.12) – The JS runtime now ships with native, headless browser automation built in, and [`Bun.cron`](https://bun.com/blog/bun-v1.3.12#in-process-bun-cron-scheduler) provides an in-process task scheduler.
- ⚠️ [React 19.2.5](https://github.com/facebook/react/releases/tag/v19.2.5), [19.1.6](https://github.com/facebook/react/releases/tag/v19.1.6) and [19.0.5](https://github.com/facebook/react/releases/tag/v19.0.5) have been released to deploy a fix for a React Server Components vulnerability.
- [React Native 0.85](https://reactnative.dev/blog/2026/04/07/react-native-0.85) – New animation backend and devtools improvements.
- [pnpm v11.0 RC 0](https://github.com/pnpm/pnpm/releases/tag/v11.0.0-rc.0), [React Three Fiber 9.6](https://github.com/pmndrs/react-three-fiber/releases/tag/v9.6.0), [Electron 41.2](https://github.com/electron/electron/releases/tag/v41.2.0), [DOMPurify 3.4](https://github.com/cure53/DOMPurify/releases/tag/3.4.0)  

📖 Articles and Videos 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ekaqzknctznkltb0sfzw.jpg)](https://jack.cab/blog/every-firefox-extension)  

[Installing Every Firefox Extension](https://jack.cab/blog/every-firefox-extension) — One person’s entertaining and heroic tale of wielding JavaScript to explore the Firefox extension ecosystem. And what oddities there are within! I enjoyed this a lot, it’s like _Alice in Wonderland_ for developers. More spelunking like this please. 

Jack Cab   

[Uses for Nested Promises](https://blog.jcoglan.com/2026/03/23/uses-for-nested-promises/) — James revisits 2013's [Promises/A+](https://promisesaplus.com/) monads [debate](https://github.com/promises-aplus/promises-spec/issues/94) and has changed his mind, thanks to a real concurrency problem he ran into. Demanding but rewarding. 

James Coglan   

[44 Postgres Talks To Choose From All in One Free, Virtual Event](https://posetteconf.com/2026/schedule/) — Join POSETTE: An Event for Postgres 2026, a free & virtual Postgres developer event, 16–18 Jun. [Check out the schedule](https://posetteconf.com/2026/schedule/). 

Microsoft | AMD sponsor   

[You Can't Cancel a Promise (Except Sometimes You Can)](https://www.inngest.com/blog/hanging-promises-for-control-flow) — You can’t cancel a promise, but you can halt an async function by making it `await` a promise that never resolves. The function silently stops, and GC cleans up after it. 

Aaron Harper (Inngest)   

[Parse, Don't Validate (In a Language That Doesn't Want You To)](https://cekrem.github.io/posts/parse-dont-validate-typescript/) — Tired of writing the same defensive `if` check in multiple files because you can’t trust that validation already happened? Branded types and discriminated unions can let TypeScript carry that proof for you. 

Christian Ekrem   

🌐 [The `Intl` API: The Best Browser API You’re Not Using](https://polypane.app/blog/the-intl-api-the-best-browser-api-youre-not-using/) — A neat code-heavy primer to what you can do with `Intl`. 

Kilian Valkhof   

📄 [Making Our Frontend Unit Tests Much Faster with @swc/jest](https://tech.small-improvements.com/making-our-frontend-unit-tests-much-faster-with-swc-jest/) – From 15 seconds with Jest to 4 seconds with the compatible [@swc/jest](https://swc.rs/docs/usage/jest). Sebastian Herrmann 

📄 [Creating Custom Page Transitions in Astro with Barba.js and GSAP](https://tympanus.net/codrops/2026/04/08/creating-custom-page-transitions-in-astro-with-barba-js-and-gsap/) Iqbal Muthahhary (Codrops) 

📄 [The Uphill Climb of Making Diff Lines Performant on GitHub](https://github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/) Ghenco and Shwert (GitHub) 

📄 [Building a JavaScript Runtime with QuickJS](https://healeycodes.com/building-a-runtime-with-quickjs) Andrew Healey  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/afxlfwdqfincfdil92bq.jpg)](https://boneyard.vercel.app/overview)  

[Boneyard: Auto-Generated Skeleton Screens for Your UI](https://boneyard.vercel.app/overview) — Snapshots your real UI and captures a flat list of skeleton ‘bones’ which are positioned, sized rectangles that mirror the page exactly. Supports React, Preact, React Native, Vue, Svelte, and Angular. 

0xGF   

📈 [Micro-ML: A Toolkit of Forecasting and Clustering Algorithms](https://github.com/AdamPerlinski/micro-ml) — A ~56KB WASM-powered library with algorithms for regression and smoothing. Cluster points, classify data, or predict the next value in a series without dragging in TensorFlow.js. 

Adam Perliński   

[AI Writes Code. Wallaby MCP Makes Sure It Actually Works](https://wallabyjs.com/blog/wallaby-mcp.html?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Give your AI agent live execution data, coverage, and real-time insights to generate tests and code with confidence. 

Wallaby Team sponsor   

[Ink 7.0: Use React to Build TUIs and Command Line Apps](https://github.com/vadimdemedes/ink/releases/tag/v7.0.0) — Powering [many popular terminal apps](https://github.com/vadimdemedes/ink?tab=readme-ov-file#whos-using-ink), v7.0 now leans on React 19.2, uses `useEffectEvent` internally for added efficiency, and brings new hooks and settings. 

Vadim Demedes   

🔊 [web-audio-api: Use the Web Audio API from Node and Bun](https://github.com/audiojs/web-audio-api) — Full [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) support to either play audio on your machine/server or render it to file (and, yes, [Tone.js](https://tonejs.github.io/) works too). There are [many examples](https://github.com/audiojs/web-audio-api/tree/master/examples) to enjoy. 

Sébastien Piquemal   

[Syncpack: Consistent Dependency Versions in Large JS Monorepos](https://syncpack.dev/) — A CLI tool (used by Electron, Cloudflare, Vercel and others) that finds version mismatches across your entire monorepo, fixes them, and can enforce version policies in CI to avoid future drift. 

Jamie Mason   

- [Mantine 9.0](https://mantine.dev/changelog/9-0-0/) – The wildly popular React component suite now includes a complete set of calendar scheduling components.
- [wa-sqlite 1.1](https://github.com/rhashimoto/wa-sqlite) – WebAssembly build of SQLite enabling JavaScript-based virtual filesystems and browser storage extensions. ([Demo.](https://rhashimoto.github.io/wa-sqlite/demo/?build=asyncify&config=IDBBatchAtomicVFS&reset))
- [gridstack.js 12.6](https://gridstackjs.com/) – Build responsive drag-and-drop multi-column dashboards.
- [Formula.js 4.6](https://formulajs.info/) – Excel's formula functions, but for JavaScript.
- [Lexical 0.43](https://github.com/facebook/lexical/releases/tag/v0.43.0) – Facebook's extensible text editor framework.      

📰 Classifieds   

Flaky tests slowing down dev? [Meticulous](https://www.meticulous.ai/?utm_source=jsweekly&utm_medium=newsletter&utm_campaign=26q2&utm_content=classified%20) gives engineers confidence to ship faster by autonomously testing every edge case of your web app. 

--- 

[Manage SAML and OIDC enterprise connections via Clerk's Backend API](https://go.clerk.com/hW1iJUD). One unified endpoint for both protocols. 

--- 

⚡[Nimbalyst](https://nimbalyst.com/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=javascript-weekly&utm_content=primary-apr10-2025): Visual workspace for building with Claude Code & Codex. Integrate and manage sessions, tasks & files. Visually edit markdown, mockups, diagrams, code. 

--- 

[Gauntlet AI Night School](https://us06web.zoom.us/webinar/register/7817757434233/WN_-xxc6-5rS-CYeRBF_hApfg) | Cursor, Claude Code, or agents — how AI-first engineers choose the right tool for production. (Virtual - 4/15)    

📢 Elsewhere in the ecosystem 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lr3xjgxnr21effijce2j.jpg)](https://github.com/felixrieseberg/windows95)   

[Windows 95 as an Electron App](https://github.com/felixrieseberg/windows95) — A full Windows 95 experience as an app on macOS, Linux, and Windows, built upon the [v86](https://github.com/copy/v86/) JavaScript + WASM emulator. [v5.0](https://github.com/felixrieseberg/windows95/releases/tag/v5.0.0) is a big release as you can mount a folder from your machine into it as a Z: drive, mount ISOs as CD-ROMs, there’s a shared clipboard, and Internet access has been improved. I’m _so_ trying to get _Microsoft Encarta_’s [Mindmaze](https://www.otherstrangeness.com/2024/07/02/mindmaze-was-the-original-wikipedia-rabbit-hole/) running on this… 

Felix Rieseberg   

- 🎨 Sticking to the retro theme, a new release of [JSPaint](https://github.com/1j01/jspaint) has landed too, so you can relive the joy of using _MS Paint_. [Try it here.](https://jspaint.app/)
- It's ten years since Domenic Denicola [posted about adding JavaScript modules to the web platform](https://blog.whatwg.org/js-modules) – how far we've come since!
- GitHub has [a private preview of 'stacked PRs'](https://github.github.com/gh-stack/), a feature to break large changes into smaller, dependent parts.
- TanStack Router, Start, and Query have gained [beta support for Solid 2.0.](https://tanstack.com/blog/tanstack-start-solid-v2)
- 🎤 [A 50-minute chat](https://www.igalia.com/chats/npmxyz) (with transcript) from two of the developers behind the [npmx project](https://npmx.dev/) — an increasingly popular way to browse the npm registry.
- [JSON Alexander](https://github.com/wesbos/JSON-Alexander) is a new JSON viewer extension for Chrome and Firefox from Wes Bos, complete with a snazzy George Costanza logo.         

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
