---
title: "Angular is back"
publication: "JavaScript Weekly"
issue: 662
published_at: "2023-11-09"
canonical_url: "https://javascriptweekly.com/issues/662"
---

Plus some great talks from JavaScript Day 2023, space visualizations, and testing tool updates. |        

#​662 — November 9, 2023 

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

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-cpu-vm/?utm_source=email&utm_medium=javascriptweekly&utm_content=javascriptcpu)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lebvxxoaxur758edwwud.jpg)](https://blog.angular.io/introducing-angular-v17-4d7033312e4b)  

[Reintroducing Angular with Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) — Angular first appeared in the shape of _AngularJS_ in 2010 and helped launch a wave of large-scale JavaScript frameworks. Angular remains popular in many use cases but is often overlooked in favor of newer options. v17 takes a leap forward in both features _and_ vision, with the team rebranding Angular and repositioning it as a modern solution: 

- [Angular.dev](https://angular.dev/) is an all-new docs site and home for the project ([the new guides](https://angular.dev/overview) look fantastic). It's in beta till Angular v18 is released – you can [learn more about it here](https://blog.angular.io/announcing-angular-dev-1e1205fa3039).
- Hydration is now production ready.
- Vite and esbuild are the default for new projects.
- Improved support for creating server side apps.
- New, improved built-in control flow to make code less verbose.
- Google pulled out all the stops for [▶️ the 'Special Angular Event'](https://youtu.be/Wq6GpTZ7AX0?t=113) – an hour of talks, interviews and discussions to bring you up to speed. 

Minko Gechev and the Angular Team   [![\](https://copm.s3.amazonaws.com/cec4de77.png)](https://frontendmasters.com/courses/javascript-cpu-vm/?utm_source=email&utm_medium=javascriptweekly&utm_content=javascriptcpu) 

[Bare Metal JavaScript: The JavaScript Virtual Machine with Miško Hevery](https://frontendmasters.com/courses/javascript-cpu-vm/?utm_source=email&utm_medium=javascriptweekly&utm_content=javascriptcpu) — Learn how high-level JavaScript turns into low-level CPU instructions. Build up your mental model of JavaScript's performance characteristics through understanding the JavaScript Virtual machine under the hood! 

Frontend Masters sponsor   

[Mastering DOM Manipulation with Plain JavaScript](https://phuoc.ng/collection/html-dom/) — A mega collection of hundreds of examples of doing things like selecting text, manipulating elements, resizing things, scrolling, and such – all by using the DOM and browser APIs with no external libraries. [You Might Not Need jQuery](https://youmightnotneedjquery.com/) is another classic resource in a similar vein. 

Phuoc Nguyen   

▶[Why Signals Are Better Than React Hooks](https://www.youtube.com/watch?v=SO8lBVWF2Y8) — When Preact’s Marvin Hagemeister pops up in the comments saying _“this is by far the best video about signals and why they are so exciting. I love the way you demonstrate it by coding along and moving an app over to signals,”_ it should bump a video up to the top of the _Watch Later_ playlist. 

Web Dev Simplified   

- 👀 Nicholas C. Zakas shares [a look at what's coming in ESLint v9.0.](https://eslint.org/blog/2023/11/whats-coming-in-eslint-9.0.0/) The first alpha is due in a month or two.
- ⚛️ React has landed [a commit](https://github.com/facebook/react/commit/2c8a139a593e0294c3a6953d74b451bd05fdcfca) adding [sourcemaps for prod build artifacts](https://github.com/facebook/react/pull/26446#issuecomment-1798473847).
- 🆚 VS Code will soon [support moving editors into floating windows.](https://github.com/microsoft/vscode/issues/10121#issuecomment-1790316086)   

**RELEASES:** 

- [TypeScript 5.3 RC](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3-rc/) – Final due soon, but you get [import attributes](https://github.com/tc39/proposal-import-attributes), `resolution-mode` in import types, interactive inlay hints for types, and improvements to narrowing in a few extra cases.
- It's a strong week for testing tool releases, so they're all in one place: [TestCafe v3.4.0](https://github.com/DevExpress/testcafe/releases/tag/v3.4.0), [Cypress 13.5](https://docs.cypress.io/guides/references/changelog#13-5-0), [Nightwatch.js 3.3](https://github.com/nightwatchjs/nightwatch), and [React Testing Library 14.1](https://github.com/testing-library/react-testing-library).
- [Deno 1.38](https://deno.com/blog/v1.38) – Many smaller improvements, including [far faster JSX transformation.](https://deno.com/blog/v1.38#fastest-jsx-transform)
- [Bun v1.0.10](https://bun.sh/blog/bun-v1.0.10) – Faster `node:http` and bug fixes.
- [`tsx` 4.0](https://github.com/privatenumber/tsx) – Node.js enhanced to run TypeScript / ESM files.  

📄 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sifamvj1qg5cp05op5x3.jpg)](https://v5.chriskrycho.com/journal/how-to-do-a-typescript-conversion/)  

[How to Do a JS to TypeScript Conversion](https://v5.chriskrycho.com/journal/how-to-do-a-typescript-conversion/) — Chris, who led the conversion of a 150k LOC app to TypeScript, addresses a common question: do-it-as-you-go or follow the dependency graph? 

Chris Krycho   

[Exploring the _Headless Component_ Pattern for Composing React UIs](https://martinfowler.com/articles/headless-component.html) — An engineer at Atlassian takes us on a thorough and practical journey into the concept of headless components and the pattern of having reusable logic and behavior separate from the presentation of UI elements. 

Juntao Qiu   

[📞 Calling JavaScript Devs! Sentry Launch Week is Coming. Join Online](https://sentry.io/events/launch-week/?utm_source=javascriptweekly&utm_medium=paid-community&utm_campaign=general-fy24q3-launchweek&utm_content=newsletter-launchweek-register) 

Sentry sponsor   

▶[8 Talks from JetBrains' _JavaScript Day 2023_](https://www.youtube.com/playlist?list=PLQ176FUIyIUZmRHOyz_n9iy2qfHo4_GRT) — _JavaScript Day_ is an annual virtual event featuring a handful of talks on diverse JS related topics. This year, Romulo Cintra [shows us how TC39 works on language proposals](https://www.youtube.com/watch?v=w34UDUPfzEU&list=PLQ176FUIyIUZmRHOyz_n9iy2qfHo4_GRT&index=6), Stefan Baumgartner spoke about [the lies we tell ourselves using TypeScript](https://www.youtube.com/watch?v=f4N9tjwsztg&list=PLQ176FUIyIUZmRHOyz_n9iy2qfHo4_GRT&index=4), and more. 

JetBrains   

[Writing Components That Work in Any Framework](https://component-odyssey.com/articles/01-writing-components-that-work-in-any-framework) — Looks at why web components can be difficult to adopt, and shows how using a higher-level library can let us “_easily write components that work everywhere_”. 

Andrico Karoulla   

[Build a Lightweight Code Generator with TypeScript and JSON Imports](https://spin.atomicobject.com/2023/11/08/code-generator-typescript-json/) 
John Ruble   

[Deploying a Vue Application with Netlify and GitHub](https://www.telerik.com/blogs/deploying-vue-application-netlify-github) 
Ezekiel Lawson (Telerik)   

[Don't Disable Buttons, Do This..](https://gomakethings.com/dont-disable-buttons/) 
Chris Ferdinandi  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wno2metw1xcs74ir3lis.jpg)](https://github.com/daybrush/moveable)  

[Moveable: A Library for Dragging, Resizing, Scaling and More](https://github.com/daybrush/moveable) — If you want to offer up physical manipulation of elements (warping, pinching, rotating, etc.) this library could help. [Its homepage](https://daybrush.com/moveable/) is a fun self-demo and there are packages for integrations with common frameworks. 

Younkue Choi   

[🔥 Need to Eliminate Tech Debt Without Falling into Dependency Hell?](https://www.upgradejs.com/javascript-maintenance-services?utm_source=cooperpress&utm_campaign=js-weekly-nov-5-2023&utm_medium=js_weekly_newsletter) — Upgrade seamlessly and let [us](https://twitter.com/JSupgrade) tackle tech debt with our fixed-cost, monthly maintenance service (starting at $2k/month). 

UpgradeJS | Tech Debt Services sponsor   

🖼 [image-dimensions: Get the Dimensions of Images](https://github.com/sindresorhus/image-dimensions) — Sindre’s latest creation is a simple but comprehensive one. A way to get the size (as width and height in pixels) for JPEG, PNG, APNG, and GIFs in _any_ modern JS environment. 

Sindre Sorhus   

[main-thread-scheduling 9.0: Consistently Responsive Apps While Staying on the Main Thread](https://github.com/astoilkov/main-thread-scheduling) — An easier alternative to Web Workers that uses the approach of stopping heavy tasks on the main thread from executing when the user interacts with the UI. This new version adds `afterFrame` (like `requestAnimationFrame` but called _after_ frame drawing has rendered), `queueTask`, and extensions to promises. 

Antonio Stoilkov   

[React Components for the _Google Maps_ JavaScript API](https://cloud.google.com/blog/products/maps-platform/introducing-react-components-for-the-maps-javascript-api/) — [react-google-maps](https://visgl.github.io/react-google-maps/) is the ‘first Google-sponsored library’ for integrating Google Maps JavaScript API components into a React app. 

Mike Pegg (Google Cloud)   

[capture-website 4.0: Capture Screenshots of Websites](https://github.com/sindresorhus/capture-website) — A Puppeteer wrapper to capture screenshots of site from Node or the command-line. 

Sindre Sorhus    

[Never Stop Learning and Work #LikeABosch](https://www.bosch.com/careers/why-bosch/growth-and-development/?utm_campaignid=javascript&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=learning) — At Bosch, you always keep growing. Upskill yourself into countless new roles, positions and opportunities. [Learn more](https://www.bosch.com/careers/why-bosch/growth-and-development/?utm_campaignid=javascript&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=secondary&utm_content=learning). 

Bosch sponsor   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/y3uz9jfgpbi19rvampdb.jpg)](https://www.cmdk-sv.com/)  

[⌘K-sv: A Fast, Composable, Unstyled Command Menu for Svelte](https://www.cmdk-sv.com/) — A port of [⌘K](https://cmdk.paco.me/), a React-based command menu component. 

huntabyte   

- [Vuetify v3.4](https://vuetifyjs.com/en/getting-started/release-notes/?version=v3.4.0) – Vue component framework.
- [MiniSearch 6.2](https://github.com/lucaong/minisearch) – In-memory fulltext search engine. ([Demo](https://lucaong.github.io/minisearch/demo/).)
- [TanStack Form 0.9](https://tanstack.com/form/latest) – Headless type-safe form state management.
- [Dependency Cruiser v15.2](https://github.com/sverweij/dependency-cruiser) – Tool to validate and visualize dependencies.
- [Valtio v1.12.0](https://github.com/pmndrs/valtio) – Proxy state made simple. Plus it has a [fantastic homepage](https://valtio.pmnd.rs/).
- [Helmet 7.1](https://github.com/helmetjs/helmet) – Secure Express apps with HTTP headers.
- [Rollup.js 4.3](https://rollupjs.org/) – ES module bundler.    

**_NOTABLE QUOTABLE_**  

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” 

___
Tom Cargill   

🚀 Everyone's gone to the moon.. 

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

[Spacekit.js: A Library for Creating 3D Space Visualizations](https://typpo.github.io/spacekit/) — Not just any old 3D space, but _actual space_ – think planets, stars, and meteors. A library like this comes, of course, with [many examples](https://typpo.github.io/spacekit/examples/) to try. [GitHub repo.](https://github.com/typpo/spacekit) 

Ian Webster         

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
