---
title: "JavaScript sans build systems?"
publication: "JavaScript Weekly"
issue: 626
published_at: "2023-02-17"
canonical_url: "https://javascriptweekly.com/issues/626"
---

Plus a neat way to visualize JS dependencies, a JSON.stringify alternative, and creating a 3D flythrough with Theatre.js. |        

#​626 — February 17, 2023 

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

Together with [![AWS\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700/e_make_transparent/co_white,e_outline:10/v4cjjkcunep8a0x8edt9.png)](https://dev.to/aws/broadcasting-to-your-amazon-ivs-live-stream-from-a-browser-2343)  

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ba91zklsefnzfj6sbmkx.jpg)](https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/)  

[Writing JavaScript Without a Build System](https://jvns.ca/blog/2023/02/16/writing-javascript-without-a-build-system/) — Using a variety of build tools for things like bundling and transpiling is reasonably standard in modern JavaScript development, but what if you want to keep things simple? For simple things, it’s not necessary, says Julia. This led to [a lot of discussion](https://news.ycombinator.com/item?id=34825676) on Hacker News. 

Julia Evans   

[Ryan Dahl, Node.js Creator, Wants to Rebuild the Runtime of the Web](https://www.sequoiacap.com/article/deno-spotlight/) — A neat bit of journalism about the alternative JavaScript runtime [Deno](https://deno.land/) and what Ryan Dahl is trying to achieve with it and how Ryan handled the stress of being known as the creator of Node.js. 

Harry Spitzer / Sequoia   [![\](https://copm.s3.amazonaws.com/3b45666f.png)](https://dev.to/aws/broadcasting-to-your-amazon-ivs-live-stream-from-a-browser-2343) 

[Broadcasting a Live Stream With Nothing but JavaScript](https://dev.to/aws/broadcasting-to-your-amazon-ivs-live-stream-from-a-browser-2343) — Live streams typically use third-party software to broadcast, but with Amazon Interactive Video Service, you can build a powerful, interactive broadcasting interface with the Web Broadcast SDK and JavaScript. [Click here to learn more](https://dev.to/aws/broadcasting-to-your-amazon-ivs-live-stream-from-a-browser-2343). 

Amazon Web Services (AWS) sponsor   

[core-js's Maintainer Complains Open Source Is 'Broken'](https://www.theregister.com/2023/02/15/corejs_russia_open_source) — [core-js](https://github.com/zloirock/core-js) is a popular universal polyfill for JavaScript features and its author has run into his fair share of bad luck which has culminated in [this lengthy post](https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md) on the state of the project, his issues in securing an income and, well, the downsides to living in Russia. _The Register_ has tried to balance out the story. 

The Register   

**IN BRIEF:** 

- 🐒 The just released [Firefox 110 for Android](https://support.mozilla.org/en-US/kb/whats-new-firefox-android) now supports [Tampermonkey,](https://www.tampermonkey.net/) an extension for running JavaScript 'userscripts' on sites you visit.
- The _Angular_ project [is taking steps to revamp its reactivity model](https://github.com/angular/angular/discussions/49090) to enable fine-grained change detection via signals.
- The latest beta of iOS and iPadOS 16.4 [supports the _Web Push_ API](https://webkit.org/blog/13878/web-push-for-web-apps-on-ios-and-ipados/) for home screen webapps.
- 🐦 A fun Twitter thread where Qwik's Miško Hevery attempted to demonstrate [why `a = 0-x` is about 3-10x faster than `a = -x`](https://twitter.com/mhevery/status/1626002464469323777) before being told about [a flaw in his benchmark.](https://twitter.com/mhevery/status/1626259524930932745) There is still a performance difference, though.
- [▶️ The React.js documentary](https://www.youtube.com/watch?v=8pDqJVdNa44) we mentioned last week has now been released and it's a heck of a watch – you'll need 78 minutes of your time though.   

**RELEASES:** 

- [Node.js 19.6.1](https://nodejs.org/en/blog/release/v19.6.1/), [18.14.1](https://nodejs.org/en/blog/release/v18.14.1/), [16.19.1](https://nodejs.org/en/blog/release/v16.19.1/) and [14.21.3.](https://nodejs.org/en/blog/release/v14.21.3/)
- [JavaScript Obfuscator 4.0](https://github.com/javascript-obfuscator/javascript-obfuscator) – Code scrambler.
- [Shoelace 2.1](https://github.com/shoelace-style/shoelace)
 ↳ Framework agnostic Web components.
- [Mermaid 9.4](https://github.com/mermaid-js/mermaid/releases/tag/v9.4.0)
 ↳ Text to diagram generator. _Now with [timeline diagram](https://mermaid.js.org/syntax/timeline.html) support._
- [Cypress 12.6](https://github.com/cypress-io/cypress)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wopgiukovwkmw5yrwztj.jpg)](https://www.macarthur.me/posts/use-mutation-observer-to-handle-nodes-that-dont-exist-yet)  

[Use a MutationObserver to Handle DOM Nodes that Don’t Exist Yet](https://www.macarthur.me/posts/use-mutation-observer-to-handle-nodes-that-dont-exist-yet) — Comparing the effectiveness of the MutationObserver API with the conventional method of constantly checking for the creation of nodes. 

Alex MacArthur   

[Well-Known Symbols in JavaScript](https://h3manth.com/posts/Well-known-symbols/) — Hemanth, a TC39 delegate, shows off 14 [symbols](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) and where they can come in useful. 

Hemanth HM   

[🚀 Monitor and Optimize Website Speed to Rank Higher in Google](https://www.debugbear.com/?utm_source=newsletter&utm_medium=sponsored&utm_campaign=javascript-weekly-2) — Monitor Google's Core Web Vitals and optimize performance using in-depth reports built for developers. Improve SEO & UX. 

DebugBear sponsor   

[Why to Use Maps More and Objects Less](https://www.builder.io/blog/maps) — A journey down a performance rabbit hole. 

Steve Sewell   

[Adopting React in the Early Days](https://cult.honeypot.io/reads/adopting-react-in-the-early-days/) — A personal history lesson providing context around React’s evolution. While React might be an obvious, even safe, choice now, that wasn’t always true. 

Sébastien Lorber   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rm5acvxd0shjk4zzdxqh.jpg)](https://tympanus.net/codrops/2023/02/14/animate-a-camera-fly-through-on-scroll-using-theatre-js-and-react-three-fiber/)  

[An Animated Flythrough with Theatre.js and React Three Fiber](https://tympanus.net/codrops/2023/02/14/animate-a-camera-fly-through-on-scroll-using-theatre-js-and-react-three-fiber/) — How to fly through a 3D scene using the [Theatre.js](https://www.theatrejs.com) JavaScript animation library and the [React Three Fiber](https://github.com/pmndrs/react-three-fiber) 3D renderer. This is the sort of thing that used to be Very Difficult™ but is now relatively trivial. 

Andrew Prifer (Codrops)   

[How to Change the Tab Bar Color Dynamically with JavaScript](https://www.amitmerchant.com/change-theme-color-meta-tag-dynamically-using-javascript/) 
Amit Merchant   

[Is Deno Ready for Primetime? One Dev's Opinion](https://www.maxcountryman.com/articles/is-deno-ready-for-primetime) 
Max Countryman   

[Using Playwright to Monitor Third-Party Resources That Could Impact User Experience](https://blog.checklyhq.com/how-playwright-can-monitor-third-party-resources/) 
Stefan Judis  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/fbzm9u9qzw4yztrcpjew.jpg)](https://github.com/sverweij/dependency-cruiser)  

[Dependency Cruiser: Validate and Visualize JavaScript Dependencies](https://github.com/sverweij/dependency-cruiser) — If you want a look at the output, there’s [a whole page of graphs for popular, real world projects](https://github.com/sverweij/dependency-cruiser/blob/develop/doc/real-world-samples.md) including Chalk, Yarn, and React. 

Sander Verweij   

[Devalue: Like `JSON.stringify`, But..](https://github.com/Rich-Harris/devalue) — _“Gets the job done when JSON.stringify can’t.”_ Namely, it can handle cyclical and repeated references, regular expressions, `Map` and `Set`, custom types, and more. 

Rich Harris   

[🧡 JavaScript Scratchpad for VS Code (2m+ Downloads)](https://quokkajs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Get Quokka.js 'Community' for free: #1 tool for exploring/testing JavaScript with edit-continue experience to see realtime execution and runtime values. 

Wallaby.js sponsor   

[NodeGUI: Build Native Cross-Platform Desktop Apps with Node.js](https://github.com/nodegui/nodegui) — Unlike Electron which leans upon webviews and HTML, NodeGui uses a Qt based approach. This week’s [0.58.0 release](https://github.com/nodegui/nodegui/releases/tag/v0.58.0) is the first stable release based on Qt 6 and offering high DPI support. 

NodeGui   

[DOMPurify 3.0: Fast, Tolerant XSS Sanitizer for HTML and SVG](https://github.com/cure53/DOMPurify) — A project that’s nine years old today but still actively developed. Supports all modern browsers (IE support was only _just_ dropped) and is heavily tested. There’s [a live demo here.](https://cure53.de/purify) 

Cure53   

[Pythagora: Generate Express Integration Tests by Recording Activity](https://github.com/Pythagora-io/pythagora) — This is a neat idea still in its early stages. Add a line of code after setting up an Express.js app and this will capture app usage and generate integration tests based on the interactions. ([▶️ Screencast demo.](https://www.youtube.com/watch?v=Be9ed-JHuQg)) 

zvone187 and LeonOstrez   

[Try Stream’s Free Trial of SDKs for In-App Chat](https://getstream.io/try-for-free/?utm_source=JavascriptWeekly&utm_medium=Promoted_Newsletter&utm_content=Developer&utm_campaign=JavascriptWeekly_February2023_trial_klmh22) 

Stream sponsor   

[grep.app: Search Code Across a Half Million GitHub Repos](https://grep.app/) — A code search engine that lets you use regexes or syntax in your search. Considering what it is, it’s pretty fast and has an extensive index (over half a million public repos from GitHub, allegedly). 

grep.app   

[tsParticles: Particles, Confetti and Fireworks for Your Pages](https://particles.js.org/) — Create customizable particle related effects for use on the Web. Uses the regular 2D canvas for broad support. 

Matteo Bruni    

💻 Jobs  

[Software Engineer](https://jobs.ashbyhq.com/stickermule/1539721e-7c7d-4f45-a5b0-17e5c02d7bd0?utm_source=Cooperpress) — Join our happy team. Stimulus is a social platform started by Sticker Mule to show what's possible if your mission is to increase human happiness. 
Stimulus   

[Find JavaScript Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

**QUICK RELEASES:** 

- [Minimatch 6.2](https://github.com/isaacs/minimatch)
 ↳ Glob matcher library, as used in npm.
 `minimatch("bar.foo", "*.foo")`
- [React Accordion 1.2](https://szhsin.github.io/react-accordion/)
 ↳ Unstyled WAI-ARIA-compliant accordion library.
- [ScrollTrigger 1.0.6](https://github.com/terwanerik/ScrollTrigger)
 ↳ Have your page react to scroll changes.
- [VeeValidate 4.7.4](https://github.com/logaretm/vee-validate/)
 ↳ Popular Vue.js form library
- [Express Admin 2.0](https://github.com/simov/express-admin)
 ↳ Admin interface for data in MySQL/Postgres/SQLite.
- [Execa 7.0](https://github.com/sindresorhus/execa)
 ↳ Improved process execution from Node.js.
- [React Tooltip 5.8](https://github.com/ReactTooltip/react-tooltip)         

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
