#670 — January 11, 2024
JavaScript Weekly
Is htmx Just Another JavaScript Framework? — Despite being four years old, htmx has seen a surge in popularity recently, parly due to fatigue with ‘big frameworks’ and also because its simple HTML-based approach to adding functionality to a page appeals to an increasingly diverse group. But is it just another framework itself? Yes. And no.
Alexander Petros
▶ HTMX for React Developers in 10 Minutes — You’re not interested in discussions about semantics.. you just want to get something done with htmx? Here, Jack takes ten minutes to show off the essentials.
Jack Herrington
Add Excel-like Spreadsheet Functionality to Your JavaScript Apps — SpreadJS is the industry-leading JavaScript spreadsheet for adding advanced spreadsheet features to your enterprise apps. Build finance, analysis, budget, and other apps. Excel I/O, 500+ calc functions, tables, charts, and more. View demos now.
SpreadJS from MESCIUS inc sponsor
33 JavaScript Concepts Every Developer Should Know — A curated collection of links to tutorials on 33 different areas worth understanding well, including: types, closures, equality, scope, and different engines. We linked this two years ago, but it remains frequently updated.
Leonardo Maldonado
Introducing fsx: A Modern Filesystem API for JavaScript — Filesystem APIs in JavaScript runtimes haven’t been great for a long time. This is one prominent JavaScript expert’s attempt to make a better one.
Nicholas C. Zakas
IN BRIEF:
CodePen shares its top 100 ‘pens’ of 2023. Lots of fantastic bits and pieces to look through and learn from here.
Bored? The Deno team is running a little hackathon over the next week.
jsfree.org is a new effort to catalog web services that can work without JavaScript.
🌼 Enjoy the drawing.garden.
RELEASES:
Docusaurus 3.1 – Popular site generator/framework.
Rspack 0.5 – Fast Rust-based web bundler.
MikroORM 6 – TypeScript ORM for Node.js.
Node.js v20.11.0 (LTS), Bun 1.0.22, npm 10.3 and Astro 4.1.
📒 Articles & Tutorials
The Website vs. Web App Dichotomy Doesn’t Exist — An interesting think piece that will help you flesh out your own opinions on the matter: “If there’s one takeaway from all this, it’s that the web is a flexible medium where any number of technologies can be combined in all sorts of interesting ways.”
Jake Lazaroff
Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now — An explanation of why the speed gains from Rust-powered linters aren’t comparable to the full feature set of typescript-eslint.
Josh Goldberg
Reduce 80%+ Latency with Vercel Edge Functions — Learn how TiDB Serverless + Vercel Edge Functions can significantly reduce latency for global users. Read now!
TiDB sponsor
The State of Benchmarking in Node.js — While Node has always been fast (thanks largely to its V8 underpinnings), there’s a renewed focus on performance in the face of benchmarks and claims from alternatives like Deno and Bun. Lars looks at the ecosystem of benchmarking options in the space.
Lars Kappert
A CSS Media Query for Scripting Support — A new media query (e.g. @media (scripting: none)) was just added to Chrome (and Edge) to let you to define styles upon whether scripting languages are available. It’s supported in all major browsers now – a rare case of Chromium playing catch-up!
Stephanie Stimac
▶ What is Remix Exactly? — As in Remix, the full-stack web framework.
Alem Tuzlak
🛠 Code & Tools
zip.js: Library to Zip and Unzip Files — Sounds simple, and it is, but it supports a couple of different formats and can generate password protected ZIPs. There are a few demos, but the simplest one sold me on its own. GitHub repo.
Gildas Lormeau
Element Plus: Vue 3 Component Library — Out of the box you get a large variety of clean components with a minimal vibe. You can see them in action here.
Element Plus Team
Add Authorization, MFA, Biometrics and More to Your JavaScript App in Just Minutes — It’s about time that somebody talked some sense about OAuth and JavaScript. So we did. You’re welcome.
FusionAuth sponsor
RE2JS: Linear Time Matching for Regular Expressions — RE2 is a regex engine built by Google designed to operate in time proportional to the size of the input, in order to avoid so-called ‘ReDoS’ problems backtracking can cause. There are bindings for Node.js, but this version works in the browser.
Oleksii Vasyliev
Penrose: Beautiful Math Diagrams by Writing Plain Text — It might sound a little like Mermaid (indeed, their homepages are strikingly similar) but its scope feels somewhat more math-focused – there are many examples.
Penrose Contributors
DOMPurify 3.0.8: A Fast, Tolerant XSS Sanitizer for HTML — Supports all modern browsers and is heavily tested. There’s a live demo here.
Cure53
remoteStorage: Cross Browser/Device Persistence — Combines the localStorage API with a remote server to persist data across browsers and devices – so basically, imagine localStorage but remote. Here’s the server part.
Frigade
eslint-plugin-vue 9.20.0 – The official ESLint plugin for Vue.js now supports Vue 3.4. Homepage.
file-type 19.0 – Detect file type from a Buffer, Uint8Array, or ArrayBuffer.
React Unity WebGL 9.5 – Embed Unity WebGL builds in React apps.
htmlparser2 9.1 – A fast and forgiving HTML/XML parser.
YouTube.js 8.2 – Wrapper around YouTube’s internal API.
React-PDF 7.7 – React component to display PDFs.
HLS.js 1.5 – HTTP Live Streaming client library.
React Icons 5.0 – Easily use popular icons in React apps.
Chai 5.0 – BDD / TDD assertion library.