---
title: "Gulp is back - did it ever leave?"
publication: "JavaScript Weekly"
issue: 687
published_at: "2024-05-09"
canonical_url: "https://javascriptweekly.com/issues/687"
---

Plus esbuild introduces decorators, a look at the modern Vue ecosystem, and some rather epic draggin' and droppin'. |        

#​687 — May 9, 2024 

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

Together with [![Mescius\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_454,h_111/e_make_transparent/co_white,e_outline:7/iwtw1igi5mjsbp1jqfn5.png)](https://developer.mescius.com/javascript-solutions?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=JS-Tools-JS-Weekly-Sponsored-Link-5-24)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dax5ctgzt6sjnrsbisq7.jpg)](https://chromakode.com/post/xkcd-machine/)  

[Development Notes from xkcd's 'Machine'](https://chromakode.com/post/xkcd-machine/) — I bet many of you are fans of [xkcd](https://xkcd.com/)! For this year’s April Fools’ joke, they published [‘Machine’](https://xkcd.com/2916/), a giant Rube Goldberg machine of sorts ([explained here](https://www.explainxkcd.com/wiki/index.php/2916:_Machine)). With a lot of TypeScript up front and Haskell in the back, here’s how it works at a technical level. ([GitHub repo.](https://github.com/xkcd/incredible)) 

Max Goodhart   

[Figma’s Journey to TypeScript](https://www.figma.com/blog/figmas-journey-to-typescript-compiling-away-our-custom-programming-language/) — How the team at Figma automatically migrated code written in their own [_Skew_ programming language](https://evanw.github.io/skew-lang.org/) over to TypeScript — _without disrupting a single day of development_. 

Brandon Lin (Figma)   [![\](https://copm.s3.amazonaws.com/7d481c5e.png)](https://developer.mescius.com/javascript-solutions?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=JS-Tools-JS-Weekly-Sponsored-Link-5-24) 

[Advanced JavaScript Tools to Empower Your Applications](https://developer.mescius.com/javascript-solutions?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=JS-Tools-JS-Weekly-Sponsored-Link-5-24) — Build better web applications with powerful JavaScript developer tools including: SpreadJS Excel-like spreadsheet components, ActiveReportsJS reporting tools, Wijmo UI component suite, and Document Solutions viewers for PDF, Excel, Image, and more. 

MESCIUS inc sponsor   

[Gulp Never Went Away; Take the Gulp Developer Survey?](https://medium.com/gulpjs/introducing-the-gulp-developer-survey-cc227fc2fb6d) — It’s easy to forget many great tools that got a lot of press years ago are still going and doing well. So it goes for [Gulp](https://gulpjs.com/), a build system and toolkit first released in 2013. [Gulp 5.0](https://github.com/gulpjs/gulp/releases/tag/v5.0.0) came out last month and the team is on a mission to make it even better. If you want to help, you can [take their survey here.](https://www.surveyhero.com/c/ctrpnqkr) 

Clarissa Abidog   

**IN BRIEF:** 

- Ben Hong presents a helpful [look at the Vue ecosystem as of 2024.](https://frontendmasters.com/blog/the-vue-ecosystem-in-2024/)
- 📅 [React Conf 2024](https://conf.react.dev/agenda) takes place next week. No tickets, but you can [register for the free livestream](https://ti.to/reactconf/2024/with/free-livestream-access) to enjoy it from afar.
- The Node.js core invites you to [take part in the latest Node.js _Next 10_ survey](https://linuxfoundation.surveymonkey.com/r/nodenext10survey24) to help them make decisions about where to take Node_next._
- Last week we featured a fun [▶️ talk about the use of `let` vs `const`](https://www.epicweb.dev/talks/let-me-be), but it seems Jack Herrington wasn't a big fan of the approach, so he [▶️ spent 10 minutes analyzing the talk and its claims.](https://www.youtube.com/watch?v=UiUPb-SYDxM)
- The [Bun](https://bun.sh/) folks are [seeking a systems engineer](https://apply.workable.com/oven/j/A7A1388873/) to join their team, as part of their push into making Bun [🐦 even more production-friendly.](https://twitter.com/jarredsumner/status/1788176626582536431)   

**RELEASES:** 

- ⭐️ [esbuild 0.21.0](https://github.com/evanw/esbuild/releases/tag/v0.21.0) – A more significant release than the version number lets on, as it introduces support for [the decorators proposal](https://github.com/tc39/proposal-decorators) (so extra testing is recommended when you upgrade).
- [Docusaurus 3.3](https://docusaurus.io/blog/releases/3.3) – The React powered site builder.
- [Ionic 8.1](https://ionic.io/blog/announcing-ionic-8-1) – Cross-platform UI toolkit for building native-quality apps.
- [pnpm 9.1](https://github.com/pnpm/pnpm/releases/tag/v9.1.0), [AdonisJS 6.9](https://adonisjs.com/), [Playwright 1.44.0](https://github.com/microsoft/playwright/releases/tag/v1.44.0), [Bun 1.1.7](https://bun.sh/blog/bun-v1.1.7)  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qmu7mokrrzicrurg70v1.jpg)](https://www.youtube.com/watch?v=E4l4MBO-Bwg)  

▶[Seamless Drag and Drop Between Applications](https://www.youtube.com/watch?v=E4l4MBO-Bwg) — A fantastic demonstration of using browser APIs to create more elegant drag and drop experiences that even work across different browser windows or IFRAMEs, with Atlassian’s [Pragmatic Drag and Drop](https://atlassian.design/components/pragmatic-drag-and-drop/about) library doing the heavy lifting. 

Alex Reardon   

[Why Patching Globals is Harmful](https://kettanaito.com/blog/why-patching-globals-is-harmful) — Modifying global APIs to extend their features is common, but not particularly desirable if readability, maintenance, and predictability are qualities you enjoy. 

Artem Zakharchenko   

[Your Background Images Might Be Causing CLS by Salma Alam-Naylor](https://blog.sentry.io/your-background-images-might-be-causing-cls/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q2-jtbd-cls&utm_content=newsletter-jtbd-cls-learnmore) — In this post, learn how to to avoid unexpected cumulative layout shift (CLS) with tried and tested solutions. 

Sentry sponsor   

[Five Node Version Managers Compared](https://pavel-romanov.com/5-node-version-managers-compared-which-is-right-for-you) — Ideally, we could use the latest LTS version of Node for everything, but in reality we often need to switch versions. Numerous tools let you do this. [NVM](https://github.com/nvm-sh/nvm) is the best known, but N, FNM, Volta, or even [pnpm](https://pnpm.io/) could suit you better? 

Pavel Romanov   

['At Some Point, JavaScript Got Good'](https://jonbeebe.net/2024/05/javascript-got-good/) — The author notes JavaScript got a “_big ‘boost’_” with ES6, and commends the continuous improvements made since. Perhaps unsurprisingly, [an associated lively discussion on Hacker News](https://news.ycombinator.com/item?id=40256600) highlighted some lingering overall disdain. 

Jonathan Beebe   

📺 [Exploring What's New in Node 22](https://www.youtube.com/watch?v=eZfLkVDJPTg) – 90-minutes for true completionists. Matteo Collina 

📄 [How to Securely Send a Request When Closing Tabs](https://webdeveloper.beehiiv.com/p/securely-send-request-closing-tabs) – The oft-forgotten `sendBeacon()` to the rescue. Zachary Lee 

📄 [Exploring a 3D Text Distortion Effect with React Three Fiber](https://tympanus.net/codrops/2024/05/08/exploring-a-3d-text-distortion-effect-with-react-three-fiber/) Nine / Codrops 

📄 [Autogenerating Podcast Show Notes with yt-dlp, Whisper.cpp, and Node](https://ajcwebdev.com/autogen-shownotes/) Anthony Campolo 

📄 [A React Developer's Guide to Learning SolidJS](https://www.stashpad.com/blog/react-developer-guide-to-solid-js) Tristan Dyer 

📄 [Why React Query?](https://ui.dev/why-react-query) UI․dev  

🛠 Code & Tools 

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

[Pintora: An Extensible Text-to-Diagram Rendering Library](https://pintorajs.vercel.app/) — A similar idea to [Mermaid](https://mermaid-js.github.io/mermaid/#/) but with a different attitude to extensibility as well as no requirement for a headless browser server-side. The [intro docs](https://pintorajs.vercel.app/docs/intro/) have both visual and code examples. 

Hikerpig   

[Headless UI v2.0 for React](https://tailwindcss.com/blog/headless-ui-v2) — From the Tailwind folks, [Headless UI](https://headlessui.com/) is a suite of unstyled, accessible UI React ([and Vue](https://headlessui.com/v1/vue), though at a lower version for now) components, designed to integrate well with Tailwind CSS. 

Wathan and Reinink   

[Make Your Dev Experience Even Faster](https://console-ninja.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — 🥷 Console Ninja now logs network requests (fetch, XMLHttpRequest) for your app! Visually linking network activity directly to your code provides immediate insights into network behavior. 

Wallaby Team sponsor   

[jQuery to JavaScript Converter](https://www.lightgalleryjs.com/jquery-to-js-converter/) — A browser-based tool to quickly convert jQuery scripts over to, well, non-jQuery-using code. [Repo here](https://github.com/sachinchoolur/jquery-to-javascript-converter). 

lightGallery   

[DerbyJS 4: The Mature MVC Web Framework](https://derbyjs.com/) — Derby has lived through most of Node.js’s history and remains a viable option **for building realtime, collaborative apps** in particular.[GitHub repo.](https://github.com/derbyjs/derby) 

Nate Smith et al.   

[graphql-request 7.0: Minimal GraphQL Client](https://github.com/jasonkuhrt/graphql-request) — Now a pure ESM package with first class TypeScript support for both client and server-side. 

Jason Kuhrt   

[Fabric.js: SVG-to-Canvas and Canvas-to-SVG Library](https://github.com/fabricjs/fabric.js) — Provides an interactive object model on top of the HTML canvas to make it easier to work with multiple visual elements. A long standing project, v6 has been in the pipeline for a while and [the first release candidate](https://github.com/fabricjs/fabric.js/releases/tag/v6.0.0-rc1) recently dropped. 

Fabric.js   

- [MSW (Mock Service Worker) 2.3](https://mswjs.io/) – API mocking library.
- [Mantine 7.9](https://mantine.dev/changelog/7-9-0/) – Popular React components library.
- [node-oracledb 6.5](https://medium.com/@sharad-chandran/node-oracledb-6-5-now-supports-the-new-vector-search-capabilities-of-oracle-database-23ai-2a504d2fb279) – Oracle's own official Node.js database driver, now with support for Oracle's latest vector search functionality.
- [js-bson 6.7](https://github.com/mongodb/js-bson/releases/tag/v6.7.0) – MongoDB BSON parser for Node and browsers.
- [d3-graphviz 5.4](https://github.com/magjac/d3-graphviz) – Render SVGs from Graphviz DOT graphs.
- [validator.js 13.12.0](https://github.com/validatorjs/validator.js) – String validation functions.         

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
