Down the rabbithole

ekov @ pm.me

React basics: rendering a list of JSX elements

Framework laptop: first impressions

A more ergonomic workspace, step by step

Save users from selecting traffic lights with reCAPTCHA v3

Async testing and TDD in Jest

The importance of clean code

Using environment variables with Gatsby and Netlify

Naming things is hard

Custom filters for Nunjucks templates in Eleventy

Accessible lazy-loading with a <noscript> fallback

Turning any website into a PWA with (mostly) vanilla JS

The great expectations of working remotely: 3-month check-in

CSS tricks: respecting spacing in hash navigation

GitHub CLI: create and manage PRs from the command line

Keeping a healthy work/life balance at home

Working from home should not involve doing the dishes

Fathom: a better alternative to Google Analytics

Curious games

Customising Ant Design theme in a create-react-app project

Supporting dark mode on the web

Iʼve reviewed lots of CVs recently. Hereʼs how to improve yours

Async Array.map(): how to await an array with API calls for each item?

Friendly UIs: Let users copy with a click

Mocking React components with props

Publishing an npm package

Building a mechanical keyboard

Building an API proxy with Serverless — Part 2

Building an API proxy with Serverless — Part 1

Unit testing abstract classes in React

console.log('colours!')

Building a reading progress bar

Setting up Zeit.co domains with GitHub Pages

Animated link underlines

You can be a developer, too

Lazy loading images

Ways to improve loading speed

Typing animation with JavaScript

SVG animations with CSS

Flexbox with fixed sidebar

Acceptance testing with Cucumber and Capybara

Creating a custom ProtonMail theme

Why