#626 — February 17, 2023
Read on the Web
JavaScript Weekly
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 on Hacker News.
Julia Evans
Ryan Dahl, Node.js Creator, Wants to Rebuild the Runtime of the Web — A neat bit of journalism about the alternative JavaScript runtime Deno 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
Broadcasting a Live Stream With Nothing but JavaScript — 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.
Amazon Web Services (AWS) sponsor
core-js’s Maintainer Complains Open Source Is ‘Broken’ — 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 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 now supports Tampermonkey, an extension for running JavaScript ‘userscripts’ on sites you visit.
The Angular project is taking steps to revamp its reactivity model to enable fine-grained change detection via signals.
The latest beta of iOS and iPadOS 16.4 supports the Web Push API 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 before being told about a flaw in his benchmark. There is still a performance difference, though.
▶️ The React.js documentary 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, 18.14.1, 16.19.1 and 14.21.3.
JavaScript Obfuscator 4.0 – Code scrambler.
Shoelace 2.1
↳ Framework agnostic Web components.
Mermaid 9.4
↳ Text to diagram generator. Now with timeline diagram support.
Cypress 12.6
📒 Articles & Tutorials
Use a MutationObserver to Handle DOM Nodes that Don’t 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 — Hemanth, a TC39 delegate, shows off 14 symbols and where they can come in useful.
Hemanth HM
🚀 Monitor and Optimize Website Speed to Rank Higher in Google — 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 — A journey down a performance rabbit hole.
Steve Sewell
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
An Animated Flythrough with Theatre.js and React Three Fiber — How to fly through a 3D scene using the Theatre.js JavaScript animation library and the 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
Amit Merchant
Is Deno Ready for Primetime? One Dev’s Opinion
Max Countryman
Using Playwright to Monitor Third-Party Resources That Could Impact User Experience
Stefan Judis
🛠 Code & Tools
Dependency Cruiser: Validate and Visualize JavaScript Dependencies — If you want a look at the output, there’s a whole page of graphs for popular, real world projects including Chalk, Yarn, and React.
Sander Verweij
Devalue: Like JSON.stringify, But.. — “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) — 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 — Unlike Electron which leans upon webviews and HTML, NodeGui uses a Qt based approach. This week’s 0.58.0 release 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 — 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.
Cure53
Pythagora: Generate Express Integration Tests by Recording Activity — 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.)
zvone187 and LeonOstrez
Try Stream’s Free Trial of SDKs for In-App Chat
Stream sponsor
grep.app: Search Code Across a Half Million GitHub Repos — 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 — Create customizable particle related effects for use on the Web. Uses the regular 2D canvas for broad support.
Matteo Bruni
💻 Jobs
Software Engineer — 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 — 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
↳ Glob matcher library, as used in npm.
minimatch(“bar.foo”, “*.foo”)
React Accordion 1.2
↳ Unstyled WAI-ARIA-compliant accordion library.
ScrollTrigger 1.0.6
↳ Have your page react to scroll changes.
VeeValidate 4.7.4
↳ Popular Vue.js form library
Express Admin 2.0
↳ Admin interface for data in MySQL/Postgres/SQLite.
Execa 7.0
↳ Improved process execution from Node.js.
React Tooltip 5.8