Search
Blizzcon Skipping 2024 Could Be Fine, Could Be A Bad Omen
25.4.2024
One year after it came back, Blizzcon, Blizzard’s once-annual dedicated event, isn’t returning for 2024. While the Overwatch and Warcraft developer plans to show off more of its games at different events throughout the year, Blizzcon has been a center point for the studio’s community since it began...
How to Detect Failed Requests via Web Extensions
2.10.2023
One of the best things that ever happened to t he user experience of the web has been web extensions. Browsers are powerful but extensions bring a new level of functionality. Whether it’s crypto wallets, media players, or other popular plugins, web extensions have become essential to every...
queryLocalFonts
11.8.2023
One of the larger downloads when requesting a webpage are custom fonts. There are many great techniques for lazy loading fonts to improve performance for those on poor connections. By getting insight into what fonts the user has available, we can avoid loading custom fonts. That’s where...
Bitcoin Advocate Nic Carter Accuses ‘Laser-Eyed Maxis’ of Turning Bitcoin Into a ‘Secular Cult’
9.6.2023
In a tweet this week, crypto advocate Nic Carter took aim at those who claim to be bitcoin enthusiasts but have been applauding the U.S. Securities and Exchange Commission’s (SEC) enforcement actions. Carter accused these individuals of turning Bitcoin into a “secular cult”...
Detect the Content Type in the Clipboard
6.3.2023
A user’s clipboard is a “catch all” between the operating system and the apps employed on it. When you use a web browser, you can highlight text or right-click an image and select “Copy Image”. That made me think about how developers can detect what is in...
fetch with Timeout
16.1.2023
A few years back I wrote a blog post about how write a fetch Promise that times out. The function was effective but the code wasn’t great, mostly because AbortController , which allows you to cancel a fetch Promise, did not yet exist. With AbortController and AbortSignal available...
How to Determine a JavaScript Promise’s Status
3.1.2023
Promises have changed the landscape of JavaScript. Many old APIs have been reincarnated to use Promises (XHR to fetch, Battery API), while new APIs trend toward Promises. Developers can use async/await to handle promises, or then/catch/finally with callbacks, but what Promises don’t tell...
Detecting Fonts Ready
26.12.2022
Knowing when resources are loaded is a key part of building functional, elegant websites. We’re used to using the DOMContentLoaded event (commonly referred to as “domready”) but did you know there’s an event that tells you when all fonts have loaded? Let’s learn how...
How to Use Storage in Web Extensions
20.10.2022
Working on a web extension is an interesting experience — you get to taste web while working with special extension APIs. One such API is storage — the web extension flavor of persistence. Let’s explore how you can use session and local storage within your Manifest V3...
Cyberpunk 2077 Dev On The Million-Player Revival: 'It's F****** Good To Be Back'
27.9.2022
Cyberpunk 2077’s launch has been one of the messiest in recent history. Praised in many initial reviews on PC, so broken on last-gen consoles it was pulled from the PlayStation Store, and then saddled with post-launch delays as players waited for promised fixes and new content. Now, nearly...
navigator.clipboard API
13.12.2021
Reading from and writing to the user’s clipboard can be both a very useful and dangerous capability. Used correctly and it’s a huge convenience to the user; used dubiously and the user could suffer catastrophic consequences. Imagine a wrong account number or wallet address being copied...
JavaScript Wake Lock API
25.1.2021
An enjoyable web apps rely on engineers implementing the APIs that cover all of the small things. Those small things sometimes improve performance, usability, accessibility, and the app’s relationship with its host system. The Wake Lock API is the latter — an API that allows developers...
navigator.clipboard API
11.1.2021
Interacting with a user’s host clipboard is something web developers have wanted for both good and evil purposes. On the good side, it’s nice to allow users to easily copy text like wallet addresses or branch names; for evil, copying malicious text that the user may mistakenly paste...
Return a Default Value with Promises Using catch
23.12.2020
Last week I tweeted all of you looking for your best JavaScript Array and Promise tricks, and as always, it didn’t disappoint — I learned quite a bit! Today’s JavaScript Promise trick is brought to you by Claudio Semeraro: how to use catch to set a default value instead of...
Limit Promise Concurrency with pool
3.11.2020
Methods like Promise.all, Promise.allSettled, Promise.race, and the rest are really excellent for managing multiple Promises, allowing for our apps to embrace async and performance. There are times, however, that limiting the number of concurrent operations may be useful, like rate limiting...
cookieStore: Async Cookie API
20.10.2020
One pattern in the JavaScript API world that web development veterans will notice is that we’ve been creating new methods to accomplish what older, grosser APIs once achieved. XMLHttpRequest became the fetch API, some APIs like Battery became async, and there are dozens of other examples....
How to Create an Async Function
24.9.2020
One thing I love about JavaScript is that there are many ways to accomplish the same task, one such example being creating functions. There are several patterns for functions; one of the last you see used is the new Function method: /* new Function(arg1, arg2 (...), body) */ const myFunction =...
5 Awesome JavaScript Promise Tricks
14.9.2020
The Promise API changed the game in JavaScript. We went from abusing setTimeouts and settling for synchronous operations to doing everything possible to leverage this new async API. Let’s check out a handful of awesome Promise API tricks! Cancel a fetch Request One problem we instantly...
Promise.allSettled
3.8.2020
The Promise object has many useful functions like all, resolve, reject, and race — stuff we use all the time. One function that many don’t know about is Promise.allSettled, a function that fires when all promises in an array are settled, regardless of whether any of the promises...
How to Cancel a Fetch Request
17.3.2020
JavaScript promises have always been a major win for the language — they’ve led to a revolution of asynchronous coding that has vastly improved performance on the web. One shortcoming of native promises is that there’s no true way to cancel a fetch…until now. A...