Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

Darek Kay

Darek Kay
Grab browser links and titles in one click When I copy a browser tab URL, I often want to also keep the title. Sometimes I want to use the link...
a month ago
51
a month ago
When I copy a browser tab URL, I often want to also keep the title. Sometimes I want to use the link as rich text (e.g., when pasting the link into OneNote or Jira). Sometimes I prefer a Markdown link. There are browser extensions to achieve this task, but I don't want to...
Darek Kay
Open Graph images: Format compatibility across platforms While redesigning my photography website, I've looked into the Open Graph (OG) images, which are...
3 months ago
58
3 months ago
While redesigning my photography website, I've looked into the Open Graph (OG) images, which are displayed when sharing a link on social media or messaging apps. Here's an example from WhatsApp: For each photo that I publish, I create a WebP thumbnail for the gallery. I wanted...
Darek Kay
A guide to bookmarklets I'm a frequent user of bookmarklets. As I'm sharing some of them on my blog, I wrote this post to...
3 months ago
60
3 months ago
I'm a frequent user of bookmarklets. As I'm sharing some of them on my blog, I wrote this post to explain what bookmarklets are and how to use them. In short, a bookmarklet is a browser bookmark containing JavaScript code. Clicking the bookmark executes the script in the context...
Darek Kay
Prevent data loss on page refresh It can be frustrating to fill out a web form, only to accidentally refresh the page (or click...
4 months ago
59
4 months ago
It can be frustrating to fill out a web form, only to accidentally refresh the page (or click "back") and lose all the hard work. In this blog post, I present a method to retain form data when the page is reloaded, which improves the user experience. Browser behavior Most...
Darek Kay
Web push notifications: issues and limitations In this post, I will summarize some problems and constraints that I've encountered with the...
6 months ago
60
6 months ago
In this post, I will summarize some problems and constraints that I've encountered with the Notifications and Push web APIs. Notification settings on macOS Someone who's definitely not me wasted half an hour wondering why triggered notifications would not appear. On macOS,...
Darek Kay
Website themes with uBlock Origin Browser extensions like Stylish, Stylus or Tampermonkey make it possible to create custom website...
a year ago
32
a year ago
Browser extensions like Stylish, Stylus or Tampermonkey make it possible to create custom website themes/skins. At the same time, I try to lower the number of add-ons that I use, mostly due to security and performance reasons. Interestingly, the uBlock Origin ad blocker can...
Darek Kay
Video subtitles, captions, audio descriptions and transcripts As I was preparing the requirements for an accessible web video player, there was some confusion...
a year ago
32
a year ago
As I was preparing the requirements for an accessible web video player, there was some confusion around subtitles, closed captions, audio descriptions and transcripts. In this post, I use interactive examples to show the difference. I also provide related success criteria from...
Darek Kay
Building a photography website Last year, I started a photography hobby. Soon after, I've created a place where I can share some of...
a year ago
93
a year ago
Last year, I started a photography hobby. Soon after, I've created a place where I can share some of my work, without any attention-driven algorithms dictating the terms. Here's a technical write-up of my journey. Table of...
Darek Kay
Delaying asset requests in Eleventy While building my photography portfolio, I've put much effort into optimizing the picture loading...
a year ago
35
a year ago
While building my photography portfolio, I've put much effort into optimizing the picture loading behavior. One technique is to provide a visual fallback as long as the images are still loading. First, a static background color included in the markup is displayed. As soon as a...
Darek Kay
My personal one-pager I've been using "Darek Kay" as my pseudonym since school. My surname was long and difficult to...
a year ago
14
a year ago
I've been using "Darek Kay" as my pseudonym since school. My surname was long and difficult to pronounce, so I've been mostly using it in a formal context. Last year, I changed my legal name, which also influenced my online presence. Due to the change, looking up my new name via...
Darek Kay
Style your RSS feed RSS is not dead. It is not mainstream, but it's still a thriving protocol, especially among tech...
a year ago
14
a year ago
RSS is not dead. It is not mainstream, but it's still a thriving protocol, especially among tech users. However, many people do not know what RSS feeds are or how to use them. Most browsers render RSS as raw XML files, which doesn't help users understand what it's all about: In...
Darek Kay
Fixing long start-up times of the Eleventy dev server Recently, I've encountered a peculiar issue with Eleventy. The development server stopped...
over a year ago
14
over a year ago
Recently, I've encountered a peculiar issue with Eleventy. The development server stopped working: eleventy --serve [11ty] Wrote 92 files in 0.48 seconds (5.2ms each, v1.0.2) [11ty] Watching… There were no errors. Everything seemed fine, except for the dev server not being...
Darek Kay
Handling Enzyme in React 18 React Testing Library (RTL) is arguably superior to Enzyme, due to a shift from testing...
over a year ago
15
over a year ago
React Testing Library (RTL) is arguably superior to Enzyme, due to a shift from testing implementation details to more user-centric unit tests. However, many projects still contain lots of Enzyme tests from the early days, making migration difficult and time-consuming. At my...
Darek Kay
Running Storybook from a separate folder After migrating a project to Vite, I've moved my Storybook setup into a separate module — a folder...
over a year ago
15
over a year ago
After migrating a project to Vite, I've moved my Storybook setup into a separate module — a folder next to the actual app: 📁 project ├─ 📁 app | ├─ 📁 src | └─ 📄 package.json └─ 📁 storybook ├─ 📁 .storybook | ├─ 📄 main.js | └─ 📄 preview.js └─ 📄...
Darek Kay
Separate Firefox Dark UI theme from website dark mode I like the default dark color theme in Firefox, but I prefer to view websites in light mode. This...
over a year ago
17
over a year ago
I like the default dark color theme in Firefox, but I prefer to view websites in light mode. This distinction has been working until recently, but with Firefox 95, the browser dark theme will enforce dark mode on websites as well. This sounds like a good default, but I want to...
Darek Kay
Npm vs. Yarn: Dependency resolution Both npm and Yarn support dependency version ranges (e.g. ^4.1.1). However, there are some...
over a year ago
16
over a year ago
Both npm and Yarn support dependency version ranges (e.g. ^4.1.1). However, there are some differences in how package managers resolve dependencies, which might lead to inconsistencies between different environments. In this post I will present the behavior of npm 7.15.1 and Yarn...
Darek Kay
Countercheck unit tests Test-driven development (TDD) is a good technique for making sure that our code matches the...
over a year ago
15
over a year ago
Test-driven development (TDD) is a good technique for making sure that our code matches the requirements. With frontend unit tests, it is often necessary to countercheck our requirements. In this post I will use React and testing-library, but the underlying problem can be applied...
Darek Kay
Git explained: Commit ranges Git's log and diff commands are useful for inspecting your repository changes. Both commands accept...
over a year ago
16
over a year ago
Git's log and diff commands are useful for inspecting your repository changes. Both commands accept ranges of commits in different formats, which can be confusing. In this post, I will shed some light on the differences between a b, a..b and a...b commit ranges. Check out the...
Darek Kay
Migrating a Create React App project to Vite Create React App (CRA) provides an all-in-one development toolchain for your React applications. It...
over a year ago
18
over a year ago
Create React App (CRA) provides an all-in-one development toolchain for your React applications. It is great for beginners, as you don't need to care about configuring your toolset. However, I've encountered more and more limitations without "ejecting", mostly due to the...
Darek Kay
Create uniform album art images with ImageMagick Call me old-fashioned, but despite using streaming services, I like to own the music I listen to....
over a year ago
14
over a year ago
Call me old-fashioned, but despite using streaming services, I like to own the music I listen to. This also means I'm handling album cover images that come in different sizes and ratios. Recently I wrote a script to unify the image size: The base image size should be 500×500...
Darek Kay
GitHub developer statistics Recently, Curtis Einsmann posted some stats from their work as a software engineer. This inspired me...
over a year ago
16
over a year ago
Recently, Curtis Einsmann posted some stats from their work as a software engineer. This inspired me to check my own impact as an employee: 1002 pull requests shipped 3062 pull requests reviewed 5 years (since migrating to GitHub Enterprise) LOC (lines of code) is a terrible...