Issue #391 · September 23, 2024

The State of ES5 on the Web

“You cannot endow even the best machine with initiative; the jolliest steamroller will not plant flowers“”

Hello, and welcome to issue #391! This issue is packed with handpicked content curated just for you. We’re diving into whether you should still support ES5 in your JavaScript projects, why Rust’s error handling is so great (and how you can use it in JavaScript/TypeScript), and exploring a modern Next.js SaaS starter kit. You’ll also find essential tips for running Node.js in production, a deep dive into FarmHash, and a guide to TanStack Router for type-safe navigation. Plus, Bun’s latest feature lets you compile and run C from JavaScript—opening up some fascinating possibilities.There’s even more great content waiting for you—enjoy!

– Your editor, Luciano

PS: last week I had the pleasure to speak at the AWS Community Day in beautiful Munich. If you want to learn more about how to build secure and efficient SaaS platforms on AWS serverless, you can check out our slides!

The State of ES5 on the Web

The State of ES5 on the Web

If you have recently authored a JavaScript library for the browser you probably asked yourself: "Should I still support ES5?". This post looks at what the data suggests based on what popular libraries, tools, and websites are doing.

Articles

Next.js SaaS starter

If you like Next.js, this repository provides a modern take on how to build your next SaaS venture using Postgres, Drizzle ORM, Stripe, shadcn/ui, and other cool tech.

The Nine Node.js Pillars

Our friends at Platformatic have published 9 Principles for Doing Node.js Right in Enterprise Environments. This includes how to avoid blocking the event loop, monitoring important metrics such as memory, CPU, and event loop utilization (ELU), and what to do about these metrics. It also covers automation (code quality, security, and testing), how to avoid dependency creep and so much more. An incredibly useful read if you run Node.js applications in production.

Node.js implementation of FarmHash

FarmHash is a relatively new high-performance hashing algorithm that came out of Google. This package provides binding for Node.js. This is a bit of a nerdy pick since it's probably something with very few niche practical use cases, but I am sure that if you like algorithms or if you want to learn more about what happens inside a hashing function, this can be the entrance to a very interesting rabbit hole! 🕳️🐇

Introducing TanStack Router

TanStack Router is a comprehensive JavaScript framework for client-side applications, emphasizing type-safe routing and navigation. It includes nested layouts and efficient data loading. This article serves as a tutorial to get started quickly with TanStack Router by building a minimalistic project-planning application.

Compile and run C in JavaScript

Bun now supports compiling and running C from JavaScript to make using systems libraries easier. In the classic spirit of Bun, this article compares how this solution is so much better than Node.js N-API. Still, it's an interesting read and if you are using Bun or you have a niche use case like converting videos from JavaScript, this can be very useful.

Book of the week

Programming Rust: Fast, Safe Systems Development

Programming Rust: Fast, Safe Systems Development

by Jim Blandy, Jason Orendorff, and Leonora Tindall

Systems programming provides the foundation for the world's computation. Writing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to data races between threads. With this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust's features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency. You'll learn:

Additional Links