Symbol.iterator Is Pretty Neat, Actually
Design custom spread syntax experience with Symbol.iterator.
Feed
Latest entries from kettanaito.com.
Design custom spread syntax experience with Symbol.iterator.
This is how you create custom file formats.
Improve your Remix apps by analyzing the cost of every change you make.
The two largest API mocking libraries in JavaScript now use the same interception algorithm.
Generate Open Graph images in Remix on build time with this neat library.
Learn how you can use reporting tools to automate flaky test discovery
Listen as I reminisce about the past ten years of my life.
Learn how to make anything abortable in JavaScript.
Why I believe patching globals is a bad API design.
Here's what you need to understand about generics in TypeScript.
In JavaScript, null and undefined cannot be more different. Here's why.
The good, the bad, and the ugly of the year 2023.
Learn about the precautions to take if you are an open source maintainer looking for a job.
The fetch Promise doesn't reject on error responses and that's entirely correct! Here's why.
One of the most common mistakes in configuring TypeScript.
Learn how to use Proxies to debug tricky issues in JavaScript.
Remix is a fantastic framework but it's not without its issues. Here are some of my struggles after building a few different projects with it.
GitHub Accelerator is a life-changing program on paper. In reality, it turned out a bit differently.
Learn how to create custom Jest matchers to reduce the repetition in your tests and make them more readable.
Drawing from personal experience how open source can be a double-edged sword.
Coming from a non-technical background is challenging. Yet I wouldn't want to have studied software engineering regardless because it would've taken one little but incredibly impor...
Learn how to write custom webpack loaders with this example that transforms MP3 file imports into interactive audio players.
Let's take a dive into what "higher-order" functions are, what problems they solve, and learn how to use them in practice.
Asking the right questions in engineering is hard. This article makes it a bit easier.
If you ever had a debate about which linting rule to use, you must read this.
A missing guideline for JavaScript library authors on building and distributing a tree-shakable library using RollupJS.
Stop wasting hours on debugging failed CI jobs, when you can go to the very remote machine that run your tests, open its state, and solve the issue spot-on.
A complete guide to learn the difference between debounce and throttle using visual examples. Never confuse the two again.
Function is a synonym for action. It's good when your actions have purpose, and their intent is clear. But how to write such functions?
Lessons learned from reviewing a team of 15 people throughout 2,5 years.
Learn how to create clean and performant forms using React Advanced Form package.