---
title: "The appealing simplicity of htmx"
publication: "JavaScript Weekly"
issue: 691
published_at: "2024-06-06"
canonical_url: "https://javascriptweekly.com/issues/691"
---

Plus Turborepo, Prettier, and Biome releases, how to build a VS Code extension, and some AI news. |        

#​691 — June 6, 2024 

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

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/activereportsjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=ARJS-JS-Weekly-Sponsored-Link-6-24)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/aswfe2qv3dp3afxs4o99.jpg)](https://www.joshwcomeau.com/javascript/promises/)  

[Promises from the Ground Up](https://www.joshwcomeau.com/javascript/promises/) — Josh notes that in order to truly understand [promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises), a fundamental part of modern JS development, we need _“a surprisingly deep understanding of how JavaScript works and what its limitations are”_. Luckily, this tutorial covers all the critical context you need. 

Josh W Comeau   

💡 If you're a bit more advanced, you might enjoy Alex MacArthur's look at [controlling promises using `Promise.withResolvers()`.](https://frontendmasters.com/blog/control-javascript-promises-from-anywhere-using-promise-withresolvers/)  [![\](https://copm.s3.amazonaws.com/dc25f6d7.png)](https://developer.mescius.com/activereportsjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=ARJS-JS-Weekly-Sponsored-Link-6-24) 

[A Powerful JavaScript Reporting Tool Built for the Web](https://developer.mescius.com/activereportsjs?utm_source=CooperPress&utm_medium=JavaScript-Weekly&utm_campaign=ARJS-JS-Weekly-Sponsored-Link-6-24) — ActiveReportsJS is the premier JavaScript reporting tool designed for advanced data visualizations in web applications. With many different advanced report builders and viewers, insights can be seamlessly shared with your entire user base. 

ActiveReportsJS from MESCIUS inc sponsor   

[htmx: Simplicity in an Age of Complicated Solutions](https://www.erikheemskerk.nl/htmx-simplicity/) — [htmx](https://htmx.org/) provides access to numerous dynamic features, like Ajax requests and page updates, by way of HTML attributes, and has been increasing in popularity recently. Erik looks at why its simplicity is particularly appealing. 

Erik Heemskerk   

📺 YouTuber _DevelopedByEd_ has a neat [▶️ 15 minute Go + htmx quickstart screencast](https://www.youtube.com/watch?v=aqGBqjvn0fw) targeting JavaScript developers keen to explore new approaches.  

**IN BRIEF:** 

- ⚙︎ ESLint has unveiled [a new ESLint configuration migrator](https://eslint.org/blog/2024/05/eslint-configuration-migrator/) to help bring your config files up to speed.
- Astro's [Starlight](https://starlight.astro.build/) documentation site framework has [turned one year old](https://astro.build/blog/starlight-turns-one/) – v1.0 is due later this year.
- The [Val Town](https://www.val.town/) bite-size JavaScript deployment platform is really taking off. They've added [a page of trending Vals](https://www.val.town/trending) to show off what people are up to.
- WebAssembly’s JavaScript Promise Integration (JSPI) API [has a new API in Chrome 126+.](https://v8.dev/blog/jspi-newapi)   

**RELEASES:** 

- [Turborepo 2.0](https://turbo.build/blog/turbo-2-0) – The high-performance build system.
- [ESLint 9.4](https://eslint.org/blog/2024/05/eslint-v9.4.0-released/) – Find and fix problems in your JavaScript code.
- 🦖 [Docusaurus 3.4](https://docusaurus.io/blog/releases/3.4) – The fantastic site / docs site framework.
- [Prettier 3.3](https://prettier.io/blog/2024/06/01/3.3.0.html), [Biome 1.8](https://biomejs.dev/), [Ember.js 5.9](https://github.com/emberjs/ember.js), [pnpm 9.2](https://github.com/pnpm/pnpm/releases/tag/v9.2.0)   

[Revolutionizing UI Development with Chromatic and StackBlitz](https://www.crowdcast.io/c/stackblitz-chromatic?utm_source=js-weekly&utm_medium=secondary) — In our upcoming live stream, we'll be speaking with the Chromatic team about actionable strategies to improve your design system workflow. 

StackBlitz sponsor  

📒 Articles & Tutorials  

[Data Fetching Patterns in Single-Page Applications](https://martinfowler.com/articles/data-fetch-spa.html) — With a level of depth you’d expect from a Martin Fowler production, Atlassian’s Juntao Qiu walks through five different patterns to consider when fetching remote data, using a realistic scenario to show them off. 

Juntao Qiu and Martin Fowler   

[A Brisk VS Code Extension Development Speedrun](https://github.com/brisktest/brisk-extension/blob/main/WALKTHROUGH.md) — Literally a _brisk_ tutorial, but Brisk is also the name of [a CI tool](https://github.com/brisktest/brisk) the extension in question is being developed for. 

Sean Reilly   

[Tracing: Frontend Issues with Backend Solutions](https://sentry.io/resources/tracing-frontend-issues-with-backend-solutions/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q2-tracingworkshop&utm_content=newsletter-tracingworkshop-register) — Join us live to learn how to identify the issues causing poor Core Web Vitals and trace them through your stack. 

Sentry sponsor   

[Full Stack Web Push API Guide](https://www.bocoup.com/blog/full-stack-web-push-api-guide) — A complete implementation of push notifications in a [Remix](https://remix.run/) app. _“If you follow the walk through to the end, you’ll have working push notifications.”_ 

Boaz Sender   

📄 [Node Leaking Memory? `setTimeout` Could be the Reason](https://lucumr.pocoo.org/2024/6/5/node-timeout/) Armin Ronacher 

📄 [Write Your First Chrome Extension: A Guide](https://spin.atomicobject.com/write-your-first-chrome-extension/) Lizzie Paris 

📄 [Goodbye Netlify, Hello Cloudflare](https://harrisonbroadbent.com/blog/goodbye-netlify-hello-cloudflare/) – When the bandwidth charges start to sting.. Harrison Broadbent 

📺 [Effortless Vue.js Forms](https://www.youtube.com/watch?v=A_QWuhcqtJc) CDRUC  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/g1mx6stswjvic9bcwn2y.jpg)](https://motioncanvas.io/)  

[Motion Canvas: Create Dynamic Canvas-Rendered Animations](https://motioncanvas.io/) — There’s two parts. A library where you use generator functions to procedurally define animations, and an editor that provides a real-time preview of said animations which [you can see in action here.](https://motioncanvas.io/editor/quickstart/) 

Motion Canvas   

[Merge Anything 6.0: Merge Objects and Other Types Recursively](https://github.com/mesqueeb/merge-anything) — If you’re looking for something that goes a bit _deeper_ than `Object.assign()`, say. 

Luca Ban   

[TypeScriptToLua: Write Lua with TypeScript](https://typescripttolua.github.io/) — Lua is embedded in all sorts of places (games, Redis, NGINX..) so being able to write JavaScript and have it converted could open up some extra opportunities for you. 

TypeScriptToLua Contributors   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lwvdejdo3axywhj6ynul.jpg)](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly)  

[Breakpoints and `console.log` is the Past, Time Travel is the Future](https://wallabyjs.com/?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, jest, karma, jasmine, and more. 

Wallaby Team sponsor   

[Zigar: Write and Use Zig Code in Node and Electron Projects](https://github.com/chung-leong/zigar) — [Zig](https://ziglang.org/) is a newish systems language that’s essentially a superset of C/C++. _Zigar_ wants to make using C/C++/Zig code easier in JavaScript projects. 

Chung Leong   

- [Wouter 3.2](https://github.com/molefrog/wouter) – Minimalist router for React & Preact. You can now [use regular expressions](https://github.com/molefrog/wouter/releases/tag/v3.2.0) to define custom route patterns too.
- [PKI.js 3.1](https://github.com/PeculiarVentures/PKI.js) – Pure JS library for working with public key oriented systems. Certificates, signing, etc.
- [Fontsource](https://fontsource.org/) – 1700+ open source fonts packaged as npm packages.
- [tscircuit](https://tscircuit.com/) – Design circuit boards using a React-based approach.
- [Prisma 5.15](https://github.com/prisma/prisma/releases/tag/5.15.0) – Popular ORM for Node.js and TypeScript.
- [melonJS 17.3](https://melonjs.org/) – Lightweight HTML5 game engine.  

🤖 A quick AI-side  

First, a handy library:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/prkxys3mvd2rulfbdb5p.jpg)](https://katex.org/)   

[KaTeX: The Fastest Math Typesetting Library for the Web](https://katex.org/) — All these AI And machine learning papers and blog posts these days are crammed with mathematical notation, so how about a no dependency, TeX-based approach to rendering them? The [sandbox demo page](https://katex.org/#demo) shows off how smooth it is. 

Emily Eisenberg and Sophie Alpert   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/i0w8d1edpcs8nkc9fwvr.jpg)](https://www.ai.engineer/worldsfair)  

Second, you may recall that last year (in [issue 654](https://javascriptweekly.com/issues/654)) I mentioned **a new AI engineering event** being put on by two JavaScript developers called _The AI Engineer Summit._ It turned out to be fantastic and it's back later this month in a much larger form called [The AI Engineer World's Fair](https://www.ai.engineer/worldsfair) (June 25-27 in San Francisco). 

The speaker list is a veritable 'who's who' of the ML-leaning development scene with all the main LLM providers present too, so I've decided, at the last minute, I need to be there! If you're interested in going too, [they've given us a link with 30% off all the ticket prices](https://ti.to/software-3/ai-engineer-worlds-fair/discount/COOPERPRESS) for you to use.         

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
