Cutting JavaScript into two: trick or treat?

#​711 — October 31, 2024

Read on the Web

JavaScript Weekly

Python Jumps to #1 on GitHub Over JavaScript, But…GitHub Universe took place this week, flooding us with data about how folks are using the platform. Of interest to those on social media was that Python has taken JavaScript’s #1 language crown, though many argued that TypeScript (now #3) made an impact here. In positive news, JS still ranks first for code pushes alone and there’s been a 15% jump in npm package consumption in the past year.

GitHub

🎉 In other GitHub news, their Copilot AI coding tool can now use alternative LLMs like Gemini and Claude, and GitHub Spark is a new AI-powered tool for rapidly creating and deploying small apps.

Implementing Clean Architecture in Next.js — Learn how to make projects testable and debuggable, independent of UI, framework, database, and external dependencies with the concept of Clean Architecture. Join us live on November 4th.

Sentry sponsor

Should JavaScript Be Split Into Two Languages? — Two weeks ago we linked to an interesting slidedeck presented at TC39 where it was proposed to split JavaScript into two languages: a basic core and a fully featured version that needs tooling to compile it down. This covers a bit more of the story and led to a particularly extensive Hacker News discussion too.

Dev Class

🤔 You could argue TypeScript is already that second language..?

IN BRIEF:

✂️ The latest version of VS Code has a new experimental feature for updating imports when you copy and paste between JS/TS files.

Lee Robinson and Delba de Oliveira present a quick recap of last week’s Next.js Conf 2024 and its main announcements.

🤖 Anthropic’s Claude AI system has introduced an ‘analysis’ tool for writing and running JavaScript within a sandbox, so Claude can perform various calculations and analysis before returning answers.

🙋 The Angular team is considering implementing a new Angular style guide to bring it up to 2024 standards and wants your input. The existing style guide was written in 2016.

RELEASES:

Node.js v22.11.0 (LTS) – Codenamed Jod, this marks Node v22 becoming the active LTS release of Node, a status it will maintain until late 2025.

Node.js v23.1.0 (Current) – The cutting edge Node release line makes JSON modules, import attributes, and the MockTimers test runner API stable.

📊 ApexCharts 4.0 – Popular JS charting library updates its SVG.js dependency.

Chakra UI v3 – A full rewrite for the comprehensive React component suite.

jQuery UI 1.14.1

📒 Articles & Tutorials

How We Shrunk Our JavaScript Monorepo Git Size by 94% — And by “we”, the author means Microsoft, which had an extremely large 178 gigabyte JavaScript monorepo on its hands – big enough that many employees had problems cloning it at all. Jonathan tells the full story here.

Jonathan Creamer

How to Roll Your Own Auth in JavaScript and TypeScript — A snappy look at how to build a session-based authentication system, something Robin notes “does not have to be complicated”.

Robin Wieruch

MongoDB Atlas Search Integration with BuildShip — MongoDB Atlas Search offers powerful full-text search, vector search, and hybrid search capabilities.

MongoDB sponsor

Using shadcn/ui with React 19 (and Next.js 15) — Fresh documentation from the shadcn/ui project on the specifics of using the popular component library with React 19 generally, though with a slight emphasis on Next.js 15.

shadcn

Reimplementing JavaScript’s == in JavaScript — What a trip. Whether or not you’re aware of the ‘quirks’ of JavaScript’s == operator, this could boggle your mind.

Evan Hahn

HTML Form Validation is Heavily Underused — An exploration of the “powerful validation mechanisms” of HTML forms, opining that they’re underused, and proposing why that lack of utilization may be.

everdimension

📄 Node.js, Pipes, and Disappearing Bytes – If piping a Node app’s output to another command, mysterious problems can arise.. Sam Lijin

📄 Introducing the New Svelte CLI Tool: sv Ben McCann

🛠 Code & Tools

Faker 9.1: Generate Fake, Realistic Data on Demand — Names, bios, addresses, zip codes, dates, monetary amounts, transactions, and a lot more besides. I really like the guided DevTools console based demo you can try – an idea other projects should consider. GitHub repo.

Faker.js Team

Fraction.js: Library for Working with Rational Numbers — The imprecise representation of floating point numbers can lead to all sorts of problems, so if you’re working with fractions at all, you might want a little more precision, which Fraction.js offers.

Robert Eisele

Handsontable: Spreadsheet-Like JavaScript Data Grid for Your App — Feature-rich data grid for developers seeking a powerful, customizable, and accessible solution to manage complex data.

Handsontable sponsor

Fedify: A Framework for Building ActivityPub Servers — If you want to join the fediverse with an app of your own (rather than leaning on Mastodon, say), this gives you the building blocks you need.

Hong Minhee

Yantra: A JavaScript Engine for .NET Standard — A managed JS engine for .NET Standard written in C# that supports both CommonJS and ES modules.

Yantra Team

SVG.js: SVG Manipulation and Animation Library — A lightweight approach without dependencies. There’s a demo on JSFiddle you can play with. GitHub repo.

Various Authors

Dependency Cruiser 16.5: A Way to Visualize 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

AuthKit: The World’s Best Login Box — Powered by WorkOS & Radix — AuthKit is a complete solution for authentication, authorization, and user management. It’s free up to 1 million MAUs and comes standard with RBAC, bot protection, MFA, and more.

AuthKit sponsor

🔊 WebAssembly Audio Decoders — Targeting both browser and Node.js use cases, this is a collection of WASM-powered audio decoding libraries for formats like MPEG I/II/III, FLAC, Ogg Opus, Ogg FLAC, Opus, and Ogg Vorbis.

Ethan Halsall

📺 YouTube.js 11.0 – Unofficial JS client for YouTube’s private API.

Serverless Express 4.16 – Run Express.js on AWS Lambda, API Gateway, Lambda@Edge, etc. Now supporting Express 5 too.

Execa 9.5 – Powerful process execution library for Node. When redirecting stdout or stderr to a file, you can now optionally append rather than replace.

MUI X 7.22 – Popular React component suite. Now with server-side support for Data Grid row grouping.

🗓️ react-calendar 5.1 – The ‘ultimate’ calendar for your React app.

📷 VisionCamera 4.6 – Advanced camera control for React Native.

Elliptic 6.6 – Plain JS elliptic curve cryptography implementation.

Acorn 8.14 – Small, fast, JavaScript-based JavaScript parser.

Strapi 5.2 – Popular Node.js headless CMS.

📰 Classifieds

🏠 Remote Senior Developer Experience Engineer – Passionate about React & GraphQL? Join us as a Developer Experience Engineer to elevate our dev community. Remote, EU timezone.

How Google handles authorization at scale. A technical comparison of Google’s Relationship-based authz system and Oso’s Authz as a Service.

A huge week for both Svelte and Next.js

#​710 — October 24, 2024

Read on the Web

JavaScript Weekly

Svelte 5 is Alive — The long awaited next major release of Svelte, the compiler-driven JS UI framework, is the “most significant release in the project’s history”, while remaining largely backwards compatible. A big addition is runes for explicitly declaring reactive state, but there’s much more besides. The official svelte.dev site has also undergone a big rebuild to act as an ‘omnisite’ for all things Svelte.

The Svelte Team

📺 If you want to see how to use Svelte 5, Syntax‘s Scott Tolinski has released ▶️ a 2 hour Svelte 5 basics course on YouTube.

FlexGrid by Wijmo: The Industry-Leading JavaScript Datagrid — A fast and flexible DataGrid for building modern web apps. Key features and virtualized rendering are included in the grid module. Pick and choose special features to keep your app small. Built for JavaScript, extended to Angular, React, and Vue.

Wijmo From MESCIUS inc sponsor

GenAIScript: Microsoft’s Generative AI Scripting Environment — Microsoft is really poking at AI from all angles. TypeChat introduced a type-safe way to talk to LLMs; now GenAIScript offers a JavaScript-powered way to programmatically assemble prompts and process responses. They claim it “brings essential LLM prompt tooling into a cohesive scripting environment.”

Microsoft

Next.js 15 Released — It’s a big week for the popular (some may even argue default) React framework with Next.js Conf starting today, as well as this release. It includes a codemod CLI for easier upgrading, async request APIs, alignment with React 19, and more.

Vercel

IN BRIEF:

Developer IDE firm JetBrains has announced its WebStorm JavaScript/TypeScript IDE is now free for non-commercial use which, notably, also covers paid content creators.

The popular shadcn/ui component library has unveiled a new suite of components for building sidebars.

Spectra is a hackable smartwatch seeking funding on Kickstarter (but it has passed its initial goal). ESP32-S3 based, it appears able to run JavaScript as shown in the ‘dev experience’ screenshots.

🙋 This year’s State of React survey is now open to take until November 19.

RELEASES:

⚛️ React Native 0.76 – A big release. The so-called ‘New Architecture’ is now used by default (so you can now use all the modern React features in RN too), the React Native DevTools are stable, and build times are faster than ever.

🥖 Bun is on a roll.. with three releases in the past week. v1.1.31 added support for node:http2 server and gRPC, v1.1.32 added Node’s crypto.hash method, and v1.1.33 was a bug-fix release.

Express.js 5.0 – Landed a few weeks ago, but now there’s an official post explaining the state of the project which has now passed a comprehensive third party security audit.

Medusa 2.0 – A Node.js-powered ecommerce platform.

React Compiler Beta, Turborepo 2.2, ESLint v9.13.0, Deno 2.0.2

📒 Articles & Tutorials

▶  Build a Sonic Infinite Runner Game Using Kaplay — A two hour walkthrough of using the Kaplay game library (formerly known as Kaboom.js) to build a complete, if simple, Sonic-branded game. You can also play it here.

JSLegendDev

New Wallaby 2.0 – Works with All Editors – A Massive Step Forward for JavaScript Testing — Experience faster JavaScript debugging, real-time insights, & enhanced coverage monitoring with Wallaby 2.0’s integrated UI.

Wallaby Team sponsor

Why I’m Skeptical of Rewriting JavaScript Tools in “Faster” Languages — Rewriting common JS infrastructure / build tools in ‘faster’ languages like Rust, Zig or Go has become popular in recent years, but is it necessary, asks Nolan?

Nolan Lawson

How to Create a Modern SPA with Django and Vue — If you can handle some Python in your life, Django is a powerful backend web framework and it’s quite happy to be paired up with a Vue.js frontend with GraphQL providing the glue.

The Dev Space

Learn How to Build a Full Stack Application Using React Native & Expo — Build a cross-platform full-stack app using a single codebase with scalable backend support and authentication.

Clerk sponsor

📄 Creating a 3D Hand Controller Using a Webcam, MediaPipe and Three.js Caio Bassetti

📄 How To Speed Up Your Vue App with Server Side Rendering Jakub Andrzejewski

📄 Angular’s Approach to Partial Hydration Loraine Lawson (The New Stack)

📄 Understanding npm audit and Fixing Vulnerabilities Niraj Chauhan

📄 Building a Mental Model of Node.js Streams Pavel Romanov

🛠 Code & Tools

match-sorter 7.0: Deterministic Best-Match Array Sorting — If you have an array of items you want to filter and sort ‘intelligently’ and deterministically, this offers a well-described, predictable algorithm. Play with a live CodeSandbox demo.

Kent C. Dodds

🤖 Transformers.js v3: Run Transformers in the Browser — A JS port of Hugging Face’s transformers Python library that can run natural language, vision, and audio machine learning models right in the browser. v3 adds WebGPU support for boosted performance and now supports Node, Deno and Bun too.

Hugging Face

Build Forms from JSON Using Drag & Drop UI — SurveyJS Libraries for Surveys & Forms — Integrate a JSON form editor with any backend. Enjoy complete control over your data with unlimited users and forms — no restrictions.

SurveyJS sponsor

Fetch Mock 12.0: Mock Requests by the fetch API — A flexible API for mocking HTTP requests made by fetch or fetch-imitating libraries. Supports browsers, Node, and web/service workers.

Rhys Evans

📊 Vizzu 0.14: A Library for Animated Data Visualizations — Making visualizations is one thing; animating them is much harder. Vizzu helps you create animated data stories and interactive explorers with a variety of showcase examples for inspiration.

Vizzu Inc.

eslint-plugin-functional: Rules to Promote Functional Programming — This isn’t for me, but if you want to encourage (or even force) a lack of mutation and a use of FP techniques in your codebase, this could be for you.

Jonas Kello

Radix Vue: Unstyled, Accessible Components for Vue.js — An unofficial Vue port of the popular Radix UI component library. GitHub repo.

zernonia et al.

Edge.js v23 – Run .NET and Node.js code in one process on Windows, macOS and Linux.

✂️ Knip 5.34.0 – A neat way to find and tidy unused stuff in your projects.

🧊 PlayCanvas glTF Viewer 5.0 – 3D model viewer supporting glTF 2.0 and PLY.

🗓️ React Date Picker 7.5 – Simple date picker component. (Demo.)

🤖 ml.js 8.0 – Machine learning tools in JavaScript.

MDX 3.1 – Write JSX in your Markdown documents.

📰 Classifieds

Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.

SupaHooks: An Outbound Webhooks Template for Next.js.

⚙️ Create entire web apps with Reactile and let it handle your widgets and windows within a single browser tab. 1-month free trial. Try it now.

JS0 + JSSugar not so sweet?

#​709 — October 17, 2024

Read on the Web

JavaScript Weekly

The Story of Web Framework Hono, By Its CreatorHono is a neat, lightweight framework designed to run on any JavaScript runtime that has been picking up steam in the past year. You can create a simple app reminiscent of Express.js, say, but run it on Cloudflare Workers, Deno, Bun, or Node. It’s in heavy use all over the place, and has lots of interesting features like letting you write HTML with JSX.

Yusuke Wada

Supercharge Your Node.js Code Reviews with AI — Tired of event loop bottlenecks, async errors, and dependency vulnerabilities slipping through code reviews? CodeRabbit, an AI-powered code review tool, analyzes your codebase line-by-line, detecting perf issues, optimizing async patterns, and enhancing security with each pull request.

CodeRabbit sponsor

Node v23.0.0 (Current) Released — Say hello to the newest release line of Node.js that gets all the cutting edge features first (Node 22 will soon become an LTS release as per the usual schedule). Node v23 notably enables support for loading ES modules with require() by default, drops 32-bit Windows support, and node –run goes stable.

Rafael Gonzaga

JS0/JSSugar: ‘The Tooling Will Continue Until Morale Improves’ — In a rather quirky slidedeck presented at TC39 recently, an idea was floated to call the language JS engines implement ‘JS0’ and a myriad of features that have to be compiled to JS0 ‘JSSugar’. It might not surprise you that this idea is considered.. controversial and ▶️ Theo Browne did a 25-minute video digging into it further.

Caolan

IN BRIEF:

Greensock’s popular JavaScript animation library GSAP has been acquired by Webflow – it’ll continue to be updated and maintained as before.

Did you know setTimeout struggles to set timeouts longer than 25 days (or 2^31 milliseconds) in duration? Never fear: Evan Hahn unveils setBigTimeout.

quickjs-cross-compiler provides a way to generate static binaries of JavaScript apps for x86_64, i686, ARM 7, and ARM64.

RELEASES:

Electron 33 – The popular way to build cross-platform desktop apps gets a bump up to Chromium 30, Node 20.18, V8 13, but drops macOS 10.15 support.

Wasp 0.15Wasp is a Rails-like framework using Node, React & Prisma.

Zustand 5.0 – Simple, flux-inspired state management for React.

Javet 4.0 – Java + V8. Embed Node.js and V8 into Java.

Next.js 15 Release Candidate 2, Node.js 22.10.0 (Current), Jasmine 5.4

📒 Articles & Tutorials

How to Build an Image Search App with CLIP, Postgres & JavaScript — A tutorial that brings together a lot of ideas in one place. CLIP is used to turn images into text descriptions. Postgres is used as a vector database. JavaScript provides the glue for both the frontend (with React) and backend (Node.js).

Haziqa Sajid

Using Sibling Parameters as Default Values in Functions — function myFunc(arg1, arg2 = arg1)? A technique safely in the ‘not a lot of people know you can do that’ pile. Alex digs into it a bit and looks at some use cases.

Alex MacArthur

[Guide] Debugging Microservices & Distributed Systems — Learn best practices on understanding and debugging modern web applications. Read the guide.

Sentry sponsor

Liskov’s Gun: The Parallel Evolution of React and Web Components — An opinion piece so long there’s an EPUB version. Baldur tackles Web Components, their growing pains, why frameworks like React took a different path, and why the whole topic remains a difficult circle to square.

Baldur Bjarnason

React Folder Structure in Five Steps, 2024 Edition — Articles about structuring React apps are always popular; this one breaks the idea down to five steps from the simplest of apps to more complex ones. Bulletproof React is worth a look too for something broader.

Robin Wieruch

Optimize Your Builds with Depot’s GitHub Actions Price Calculator — Depot just launched a GitHub Actions price calculator. Get a cost breakdown and make your builds faster and cheaper!

Depot / GitHub Actions Price Calculator sponsor

📄 🫣 Implementing Regular Expressions in TypeScript Types (Badly) – It’s almost Halloween so scary stories are welcome. Steven Kalt

📄 ‘I Interviewed 100 DevTools Founders and This Is What I Learned’ Jack Bridger

📄 Handling In-Browser Paste Events in JavaScript Raymond Camden

📄 The Nuances of Base64 Encoding Strings in JavaScript Matt Joseph

📄 How to Convert CommonJS to ESM Andy Jiang

🛠 Code & Tools

ApexCharts: Flexible Interactive Charting Library — A mature and frequently updated charting library for creating interactive data visualizations, with sparklines, heatmaps, line charts, funnel charts, pies, and others. Can be used in a vanilla way or alongside Angular, Vue or React and there are lots of live examples (with code for each). GitHub repo.

ApexCharts

Over 100 Algorithms and Data Structures Demonstrated in JS — Examples of numerous common algorithms (e.g. bit manipulation, Pascal’s triangle, Hamming distance) and data structures (e.g. linked lists, tries, graphs) with explanations.

Oleksii Trekhleb et al.

Developer Kit: Learn How to Troubleshoot Front-End Issues Faster — Get the kit curated to help front-end developers better understand user activity and resolve issues more efficiently.

Datadog sponsor

fast-grid: The World’s Most Performant DOM-Based Web Table? — A bold claim, but you can see for yourself using the online demo, which lets you filter, sort, and scroll simultaneously for a true test.

Gabriel Petersson

🎨 Color Thief: Grab Color Palettes from Images — Given an image, this uses canvas to return a list of the dominant colors. Works in browsers or Node.

Lokesh Dhakar

Node Version Manager Desktop 4.0 — A Tauri-powered desktop app for macOS, Windows and Linux to manage multiple installed versions of Node on your system.

rainbow

🎹 ChordSymbol: Chord Symbol Parser and Renderer — Accepts chord names in strings (e.g. G7/B, Cadd9, Asus2) and lets you access the notes those chords are made of. GitHub repo.

Christophe Noël

debounce 2.2 – Delay function calls until a set time elapses after the last invocation.

😳 NSFW.js 4.2 – Client-side NSFW image detection via TensorFlow.js.

Secretlint 9.0 – Tool to prevent committing credentials/secrets.

☎︎ vue-tel-input 9.2 – Telephone number input for Vue. (Demo.)

🗓️ Qalendar 3.9 – Event calendar and date picker for Vue 3.

Vaul 1.1 – Unstyled drawer React component. (Demo.)

Mineflayer 4.22 – Create Minecraft bots in JavaScript.

FxTS 1.1 – Functional programming library for TS/JS.

📰 Classifieds

🎹 STRICH: Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.

🪝 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.

💥 Improve your database performance with AI. Prisma Optimize automatically analyzes your queries and helps you improve them.

A huge week for ECMAScript proposals

#​708 — October 10, 2024

Read on the Web

JavaScript Weekly

TC39 Advances 10+ ECMAScript Proposals — The architects behind the development of the ECMAScript / JavaScript spec got together again this week (you can see them in this tweet) and they had a packed agenda. Import attributes, Iterator helpers, Promise.try and Regexp modifiers all made it to stage 4, and more besides.

Sarah Gooding (Socket)

🦖 Announcing Deno 2 — A huge release for the “what if I reinvented Node again from scratch?” runtime. Backwards compatibility with Node is a headline feature, but there’s a lot more baked in. Best, though, is the ▶️ epic ‘Announcing Deno 2’ video. After a slightly bombastic opener, Ryan presents a fantastic ‘keynote’ style tour of everything Deno has to offer – I enjoyed watching it.

Dahl, Belder, Iwańczuk and Jiang

💡 A neat new feature is Deno’s Jupyter Notebook support which Simon Willison checks out here.

A Deeper Understanding of Web Security — Steve Kinney hosts this extensive video course on the challenges of web security. You’ll gain a deeper understanding of security on the web, developing your mental model on how to approach things, explore common vulnerabilities, get hands-on experience with security tools, and get to grips with best practices.

Frontend Masters sponsor

Announcing TypeScript 5.7 Beta — The newest TypeScript is on the way. As always, a true laundry list of enhancements and new features, but the path rewriting for relative paths is a particularly welcome addition, enabling easy rewrites of .ts imports into .js at compile time.

Microsoft

IN BRIEF:

Ian Grunert writes about work done to (re)enable JavaScriptCore’s JIT mechanisms on Windows. This is particularly good news for Bun users.

Did you know MySQL 9.0 now natively supports JavaScript stored routines?

🇺🇸 The next JSNation event is taking place in a hybrid form both remotely and in New York City this November 18 and 21. Some fantastic speakers await.

Tenno is an interesting online Markdown editor that supports adding spreadsheet-like cells that can be populated by JavaScript.

🕹️ The winners of the latest js13kGames game jam have been announced. It’s amazing what people have managed to achieve in just 13KB.

RELEASES:

Bun v1.1.30 – Now includes experimental CSS parsing and bundling, as well as a bun publish to publish npm packages, a la npm publish. You can also compile code to bytecode to speed up startup times.

Node.js v20.18.0 (LTS) – Now with network inspection support.

React Native Storybook 8.3 – React Native support in the popular component workshop finally gets fully up to speed.

Rsdoctor 0.4 – Tool for analyzing the Rspack / Webpack build process.

ESLint 9.12.0, Electron.js 32.2, Ember 5.12

📒 Articles & Tutorials

Building a Local Single-Page App with htmx — If you have a reasonably simple app to build, using a large framework is probably going to be overkill. htmx to the rescue! Jake presents an easily followed practical tutorial packed with code.

Jake Lazaroff

💡 Jake also wrote an interesting case study of building a local-first app using SvelteKit and Shoelace, if you want to see something more fully-formed.

Product for Engineers: A Newsletter Helping Flex Your Product Muscle — Product for Engineers is dedicated to sharing the skills and strategies product engineers need to succeed.

PostHog sponsor

Build a Static RSS Reader To Fight Your Inner FOMO — The theme of lightweight JavaScript apps continues with a look at creating a basic RSS feed reader, that updates once a day, with Astro.

Karin Hendrikse

Node vs Bun: No Backend Performance Difference? — You can always trust a benchmark to ruffle some feathers, often over the methodology rather than the result. This is no exception, but interesting nonetheless.

Evert Heylen

▶  Building a Tic-Tac-Toe Game in TypeScript Types — One of those videos I enjoyed simply so I don’t ever feel tempted to try it myself.

Typed Rocks

Securing Node.js Express APIs with Clerk and React — Secure Express API endpoints and integrate authentication without the complexity of building it from scratch.

Clerk sponsor

📄 Building a Robust Frontend using Progressive Enhancement UK Government

📄 The Popover API: Your New Best Friend for Tooltips – Supported in all major browsers, except Safari on iOS. Sjoerd Beentjes

📄 18 Interview Questions Answered by Angular Experts Angular Space

📄 Testing CSS Print Media Styles with Cypress Gleb Bahmutov

🛠 Code & Tools

DOCX 9.0: Generate Word .docx Files from JavaScript — The code to lay out documents is verbose but there’s a lot of functionality baked in and there aren’t many other options for this task. Here’s a CodePen-based example to give you an idea. GitHub repo.

Dolan Miu

TinyJS: A Lightweight Way to Work with DOM Elements — Lighter than querySelector and friends, you ask? Not in file size, but certainly in code weight. TinyJS offers a jQuery-esque syntax for element selection, adding properties to elements, and more.

Victor Ribeiro

Breakpoints and console.log Is the Past, Time Travel Is the Future — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, jest, karma, jasmine, and more.

Wallaby Team sponsor

SVGuitar 2.4: Create SVG-Based Guitar Chord Charts — Dynamically generate chord charts / fingerings in the browser. You can experiment with it in this live demo.

Raphael Voellmy

Free Public APIs: A Collection of Free Public APIs for Developers — Categorized and searchable, these are tested daily by bots so if any API is taken down or moved behind a paywall, it’s removed from the site.

Nick Schneeberger

TutorialKit 1.0: Create Interactive Coding Tutorials — StackBlitz’s framework for creating interactive coding tutorials, perhaps as a way to boost the adoption of your own libraries or design system. v1.0 marks TutorialKit as stable.

StackBlitz

Jeasx: The Ease of JSX with the Power of SSR — A new server side rendering framework built on top of JSX and Fastify.

Maik Jablonski

ip-address 10.0: Library for Parsing and Manipulating IP Addresses — Works with both IPv4 and IPv6 addresses.

Beau Gunderson

React-Grid-Layout 1.5 – Draggable/resizable grid layouts for React apps.

🗓️ Schedule-X 2.4 – Material Design event calendar and date picker.

eslint-plugin-unicorn 56.0 – 100+ useful ESLint rules in one place.

Redwood 8.4 – Popular React app framework.

📰 Classifieds

Automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others. Backed by YC, CTO GitHub and others.

Pythagora is an AI dev tool that builds production-ready tools (not demo apps). It writes the code and talks to you in the process.

⚙️ Create entire web apps with Reactile and let it handle your widgets and windows within a single browser tab. 1-month free trial. Try it now.

Evan You’s next big adventure

#​707 — October 3, 2024

Read on the Web

JavaScript Weekly

VoidZero: A Next-Generation Toolchain for JavaScript — Not content to have merely created Vue.js and Vite, JavaScript powerhouse Evan You has unveiled his latest adventure: a $4.6m funded company building an open-source unified development toolchain for the JavaScript ecosystem. With his track record, this is as good an attempt as it gets.

Evan You

ESLint Now Officially Supports Linting JSON and Markdown — ESLint has been taking steps to become a more general purpose linter and that effort is beginning to bear fruit with this milestone.

Nicholas C. Zakas

Run GitHub Actions Up to 2x Faster at Half the Cost — Blacksmith runs your GitHub Actions substantially faster by running them on modern gaming CPUs. Integrating Blacksmith is a one-line code change. 100+ companies like Ashby, Superblocks, and Slope use Blacksmith to help developers merge code faster.

Blacksmith sponsor

Tauri 2.0: Small, Fast Desktop Apps using Web TechnologiesTauri is a Rust-based alternative to Electron for bringing together HTML, JavaScript and CSS code to create cross-platform desktop apps. Rather than using V8, it uses the natively available webview to run your code.

Tillmann Weidinger

IN BRIEF:

😍 Build tool Vite has a snazzy new homepage just in time for ViteConf.

The Svelte team shares everything that’s new with Svelte lately.

🕹️ OneJS is an attempt to bring JavaScript scripting into the Unity game engine. ▶️ Here’s a screencast showing it off.

🎂 The Knip code decluttering tool celebrates two years with a new release containing a revamped auto-fix mechanism for automatically removing unused exports and files from your code.

Congratulations to Ulises Gascón for becoming the newest TC39 Delegate.

RELEASES:

Eleventy / 11ty 3.0 – Node.js-powered static site generator.

Tabulator 6.3 – Popular interactive table / data grid control.

Jiti 2.0 – Runtime TypeScript and ESM support for Node.js.

pnpm 9.12 – The alternative, efficient package manager.

ViteConf is Live! — Join us today and tomorrow for ViteConf 2024!

StackBlitz sponsor

📒 Articles & Tutorials

▶  Bundling: The Past, Present and Future — A history lesson on bundlers, why they’re used, the problems they solve, the current ecosystem, and a look at the potential future for these tools.

Devon Govett

Unleash JavaScript’s Potential with Functional Programming — More focused on the how, rather than the why, but a good primer nonetheless, especially if you’ve never tried to learn about FP before.

Jan Hesters

An Online Event You Won’t Want to Miss — 🔥 JetBrains JavaScript Day returns Oct 24, and it promises to be the best one yet! Explore an impressive agenda and register for free today.

JetBrains sponsor

SVG Coding Examples: Useful Recipes for Writing Vectors by Hand — Explores the basics of hand-coding SVGs, how to use JavaScript along the way, and practical examples to demystify the inner workings of common SVG elements.

Myriam Frisano

📄 Web Components are Not Framework Components and That’s Okay Lea Verou

📄 How to Submit an Electron App to the Mac App Store Liu Liu

📄 Why Gumroad Didn’t Choose htmx Sahil Lavingia

📄 How Bun Supports V8 APIs Without using V8 Ben Grant (Bun)

📺 Laravel vs Rails for JavaScript Developers Sam Lewis

🛠 Code & Tools

🤖 assistant-ui: React Components for AI Chat — It doesn’t just give you the interface components, but has integrations for Vercel AI, Langchain, and talking to other common LLM APIs (e.g. OpenAI), enabling you to build your own in-house AI chat system quickly. Examples.

Simon Farshid

qrframe: A Library to Generate ‘Pretty’ QR Codes — It’s slightly odd as the QR codes generated aren’t guaranteed to scan reliably, but if you can generate ones that do, they look striking, and could be useful for branding/fun use cases. Play around with a live demo here.

Kyle Zheng

Announcing MongoDB 8.0 — Over 30% Faster Than Before — Learn how MongoDB 8.0 was built to exceed the most stringent security, availability, and performance requirements.

MongoDB 8.0 sponsor

Superdiff 2.0: Compares Two Arrays or Objects and Return a Diff — Got two similar objects and want to see the underlying differences?

antoine

µExpress / Ultimate Express: Like Express, But Faster — Imagine a reimplementation of Express with full API compatibility, but based on µWebSockets and with an optimized router for faster performance.

dimden

VueFormify 1.1: Simple Type-Safe Form Building for Vue — Bills itself as “your ticket to form-building autonomy.” There’s a getting started guide and GitHub repo.

Máté Nagy

pretty-print: Customizable String Representations of JS Values — Produce a string representation of any value. Similar to util.inspect but with many extra options for tree-ifying, coloring, sorting, choosing what to display, etc.

Effectful Technologies Inc

🗓️ Schedule-X 2.3 – Material Design event calendar and date picker.

Summernote 0.9 – Simple WYSIWYG editor atop Bootstrap and jQuery.

ng-dnd 4.0 – Drag and drop solution for Angular. (Demos.)

Prisma 5.20 – Popular ORM for Node.js and TypeScript.

React95 v9.0 – Make React apps that look like Windows 95.

Vaul 1.0 – Elegant drawer component for React.

Eruda 3.4 – A console/devtools for mobile browsers.

BlockNote 0.16 – ‘Notion-style’ block-based editor.

📰 Classifieds

⚙️ Create entire web apps with Reactile and let it handle your widgets and windows within a single browser tab. 1-month free trial. Try it now.

Automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others. Backed by YC, CTO GitHub and others.