---
title: "Etsy moved from React to Preact"
publication: "JavaScript Weekly"
issue: 574
published_at: "2022-01-28"
canonical_url: "https://javascriptweekly.com/issues/574"
---

Plus TypeScript 4.6 beta, a complete beginner's guide to npm, and exporting HTML tables to Excel or CSV format. |        

#​574 — January 28, 2022 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/574)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/xbrtnhjvalt0al01p0nm.jpg)](https://2ality.com/2022/01/pipe-operator.html)  

[A Pipe Operator for JavaScript: Introduction and Use Cases](https://2ality.com/2022/01/pipe-operator.html) — In the State of JS 2020 survey, a _lot_ of developers felt a pipe operator was missing from JavaScript. It’s been around a while, but there’s a [pipeline operator proposal](https://github.com/tc39/proposal-pipeline-operator) and it’s at stage two of the TC39 process. Dr. Axel explains why you’d want this, how it can work, and why JS _won’t_ get F# style pipes. 

Dr. Axel Rauschmayer   

[On Porting the TypeScript Compiler to Go (vs Rust)](https://kdy1.dev/posts/2022/1/tsc-go) — The author is a Rust advocate (who created [swc](https://swc.rs/)) but recognizes that Go might be a better tool particularly for building the _type checker_ and explains why here. This post also fuelled a rather [extensive Hacker News discussion](https://news.ycombinator.com/item?id=30074414) on the complications involved with many coming to Rust's defence. 

DongYoon Kang   [![\](https://copm.s3.amazonaws.com/582b4c11.png)](https://quokkajs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) 

[JavaScript Scratchpad for VS Code, Now with Time Machine](https://quokkajs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Quokka.js is the #1 tool for exploring and testing JavaScript. Code runs immediately as you type. The new [Time Machine](https://quokkajs.com/docs/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=timemachine#debugger) feature executes your code and allows you to automatically replay, step forward/back through time, edit-and-continue, and see runtime values. 

Wallaby.js sponsor   

🛠 [Unimported: Find and Fix Dangling Files and Unused Dependencies](https://github.com/smeijer/unimported) — When you’re adding new code each day, you might forget to remove old code. This tool can help you discover unused files within your projects. 

Stephan Meijer   

[Take the State of JavaScript 2022 Survey](https://stateofjs.com/) — Now several years in, the popular State of JavaScript survey returns for a joint 2021/22 run and, as ever, seeks to establish what libraries and frameworks developers are excited about. It’s not a perfect approach, but the results are interesting to compare year to year, and we’ll share the results once they’re out. 

Sacha Greif   

**IN BRIEF:** 

- ⭐️ An engineer at Etsy [mentions Etsy migrated](https://twitter.com/sangster/status/1486382892326563845) all their React 15.6 code to [Preact](https://preactjs.com/) rather than going to React 16+. A [doc from 2020](https://github.com/mq2thez/blog/blob/main/upgrade-react-etsy/preact-vs-react.md) explained some of the internal thinking around this choice.
- The Deno team has [reflected on Deno's progress in 2021.](https://deno.com/blog/deno-in-2021) The [Angular team has done similarly,](https://blog.angular.io/angular-2021-recap-and-2022-preview-cb3067f76217) too.
- [TypeScript 4.6 is in beta](https://devblogs.microsoft.com/typescript/announcing-typescript-4-6-beta/) and focused on relatively minor technical enhancements, such as improved errors, a trace analyzer, and allowing code in constructors _prior_ to calling `super()`.
- Ryan Florence of the Remix project notes on Twitter a _["palpable feeling that folks are ready for the post-React world"](https://twitter.com/ryanflorence/status/1486530142507655173)_.
- Mike Melanson asks [if 2022 will be a 'golden age' for full-stack JavaScript](https://thenewstack.io/will-2022-be-a-golden-age-for-full-stack-javascript/)? 

**RELEASES:** 

[Nightwatch 2.0](https://github.com/nightwatchjs/nightwatch/releases/tag/v2.0.0) – End-to-end testing framework.
 [Gluegun 5.0](https://github.com/infinitered/gluegun) – Toolkit for building Node.js CLI apps.
 [Node-RED 2.2.0](https://github.com/node-red/node-red/releases/tag/2.2.0) – Low-code event driven app dev environment.
 [parse-domain 7.0](https://github.com/peerigon/parse-domain) – Split hostnames into parts.
 [NeutralinoJS 4.2.0](https://github.com/neutralinojs/neutralinojs/releases/tag/v4.2.0) – X-platform JS desktop app framework.
 [Mocha 9.2](https://github.com/mochajs/mocha) – JS testing framework.
 [Serverless Framework v3](https://www.serverless.com//blog/serverless-framework-v3-is-live)
 [React Native 0.67](https://reactnative.dev/blog/2022/01/19/version-067)
 [npm 8.4.0](https://github.com/npm/cli/releases/tag/v8.4.0)    

💻 Jobs  

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-js&utm_content=js) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more. 
X-Team   

[AI & Software Engineers](https://www.stickermule.com/careers) — Sticker Mule is the Internet's most "kick ass" brand. Our software team operates from 17 countries, and we're always looking for more exceptional engineers. 
Stickermule   

[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=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired    

📒 Articles & Tutorials  

[React Server Components: A Primer](https://blog.plasmic.app/posts/how-react-server-components-work/) — The co-founder of the [Plasmic](https://www.plasmic.app/) visual page builder app takes us on an exploration of React server components (currently an experimental feature in the forthcoming React 18) and how they tick under the hood. 

Chung Wu (Plasmic)   

[Exploiting JavaScript Quirks for Fun and Profit](https://kittygiraudel.com/2022/01/21/exploiting-javascript-quirks-for-fun-and-profit/) — If you're Doug Crockford (the author of _JavaScript: The Good Parts_), look away now! Plentiful use of `with` and `eval` in this clever approach to solving an [Advent of Code](https://adventofcode.com/) puzzle. 

Kitty Giraudel   

[React Authentication, Simplified](https://userfront.com/tutorials/react-authentication.html) — In this article, we lay out a new approach to authentication (plus access control & SSO) in React applications. 

Userfront sponsor   

[A Complete Beginner's Guide to `npm`](https://css-tricks.com/a-complete-beginners-guide-to-npm/) — Even if npm is second nature to you, this guide may prove useful, if only to send to other folks on your team. It’s a nine-part guide from CSS-Tricks covering everything from the ground up. 

Josh Collinsworth   

[The Baseline for Web Development in 2022?](https://engineering.linecorp.com/en/blog/the-baseline-for-web-development-in-2022/) — Analysis of numerous stats around frontend technologies, browser share, client devices, and more to establish a feel for what the lowest common denominators are in terms of what we must continue to support. 

Alan Dávalos   

[What’s New with the DevTools?](https://www.smashingmagazine.com/2022/01/devtools-updates-2022/) — A decent break down of recent changes and additions to developer tooling in Chrome, Edge, Safari and Firefox. 

Patrick Brosset   

[Animate Anything Along an SVG Path](https://tympanus.net/codrops/2022/01/19/animate-anything-along-an-svg-path/) — How to code creative animations with JavaScript using SVG paths and the `getPointAtLength()` function. 

Louis Hoebregts   

[Redefining the OSS Universe with Sourcegraph: Lessons Learned](https://about.sourcegraph.com/blog/indexing-the-oss-universe-update-more-code-hosts/?utm_medium=newsletter&utm_source=javascript-weekly) 

Sourcegraph sponsor   

[Comparing CSS Specificity Values with JavaScript](https://kilianvalkhof.com/2022/css-html/comparing-css-specificity-values/) — When it comes to CSS specificity how do you compare two selectors to decide which is highest? This post digs into it. 

Kilian Valkhof   

[How TypeScript Won Over Developers and JavaScript Frameworks](https://thenewstack.io/how-typescript-won-over-developers-and-javascript-frameworks/) 
Charles Humble (The New Stack)   

▶[Using Node to Do The Opposite of What Jim Cramer Says](https://www.youtube.com/watch?v=BrcugNqRwUs) — Silly, but yeah. 
Fireship  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/chcwkbfwx58zwvecqzvc.jpg)](https://vis4.net/chromajs/)   

[chroma.js: Zero Dependency Color Conversion Library](https://vis4.net/chromajs/) — I love this simple but suitably colorful documentation. If you’ve got work to do with colors and color values, certainly give this a look. [GitHub repo](https://github.com/gka/chroma.js). 

Gregor Aisch   

[Clipboard.js: A Modern 'Copy to Clipboard' Library](https://github.com/zenorocha/clipboard.js) — The [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) makes clipboard work easier than ever before, but you may find a library like this provides a little valuable added abstraction. 

Zeno Rocha   

[Build a Mobile-Responsive Telehealth Pager App Using Stream’s Chat API](https://getstream.io/blog/build-a-medical-pager-app/?utm_source=JavascriptWeekly&utm_medium=Newsletter_Content_Ad&utm_content=Developer&utm_campaign=JavascriptWeekly_Jan2022_MedicalPagerMessagingApp) — Build a responsive chat app with emojis/reactions, built-in GIF support, ability to edit/delete messages, direct & group chat, and more. 

Stream sponsor   

[ngraph.path: Path Finding Through Graphs](https://github.com/anvaka/ngraph.path) — There’s [a live demo](https://anvaka.github.io/ngraph.path.demo/#?graph=amsterdam-roads) if you want to see how it tackles the road network of six global cities. 

Andrei Kashcha   

[ExcellentExport.js 3.8: Export Table Data to Excel or CSV](https://github.com/jmaister/excellentexport) — If your app/page has some data in HTML tables and you’d like to export it to a CSV or XLSX without any server involvement, this could help. 

Jordi Burgos   

[Reaselct: A 'Select' Box Component for React](https://github.com/reaviz/reaselct) — Currently in single- and multi-select versions, the latter of which could work well in tagging scenarios. Comes from the same team as the [REAVIZ chart library](https://github.com/reaviz/reaviz). 

REAVIZ   

[Trilium Notes: A Knowledge Base App Built with Node](https://github.com/zadam/trilium) — A hierarchical note taking app. Built as an Express app but is most commonly used on the desktop via an Electron packaged version. It’s been around a few years but continues to see frequent updates and is a neat example of this sort of app. 

zadam   

[hyperid: Fast Unique ID Generation](https://github.com/mcollina/hyperid) — Check out the benchmark results. For Node and browser. 
Matteo Collina         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/peterc) 

'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
