<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Niek Nijland's Blog]]></title><description><![CDATA[A web engineer and travel enthousiast based in The Netherlands.]]></description><link>https://www.nieknijland.nl</link><generator>GatsbyJS</generator><lastBuildDate>Thu, 21 Aug 2025 20:16:51 GMT</lastBuildDate><language><![CDATA[en]]></language><atom:link href="https://www.nieknijland.nl/rss.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[Use multiple versions of an npm package at the same time]]></title><description><![CDATA[Sometimes the API of an npm package changes. And sometimes the package is not backward compatible. In big projects, it is sometimes hard to refactor all the code concerned with a new API of an npm package you just updated. You probably want to be able to refactor this code step by step.]]></description><link>https://www.nieknijland.nl/blog/use-multiple-versions-of-an-npm-package-at-the-same-time</link><guid isPermaLink="false">use-multiple-versions-of-an-npm-package-at-the-same-time</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Fri, 27 Nov 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[Run asynchronous tasks in batches in NodeJS]]></title><description><![CDATA[Say you have a large list of items and you want to run an asynchronous task for every one of them. You can run these tasks one at a time, in parallel or in batches. In this blog post, I try to explain one way of how to run asynchronous tasks in batches.]]></description><link>https://www.nieknijland.nl/blog/run-asynchronous-tasks-in-batches-in-nodejs</link><guid isPermaLink="false">run-asynchronous-tasks-in-batches-in-nodejs</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Sun, 29 Nov 2020 13:15:00 GMT</pubDate></item><item><title><![CDATA[How to highlight countries with Mapbox]]></title><description><![CDATA[I'm working on a trips section on my personal website. To visualize the countries I have visited, I wanted to show a map and highlight every country I visited. Since this was not a straightforward task and it took me longer than expected I thought I would share how this works.]]></description><link>https://www.nieknijland.nl/blog/how-to-highlight-countries-with-mapbox</link><guid isPermaLink="false">how-to-highlight-countries-with-mapbox</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Mon, 21 Dec 2020 09:30:00 GMT</pubDate></item><item><title><![CDATA[How to write a Diagnostics TypeScript Language Service Plugin?]]></title><description><![CDATA[Do you recognize the fact that those beautiful TODO or FIXME comments you add to your code are forgotten and left as is until eternity? At our companies innovation day, we wanted to write a TypeScript compiler plugin that makes your build fail when a condition you provide in your TODO comments evaluates to true. Unfortunately, we came to the conclusion that TypeScript does not allow us to write a compiler plugin. It does however allow us to write a Language Service Plugin.]]></description><link>https://www.nieknijland.nl/blog/how-to-write-a-diagnostics-typescript-language-service-plugin</link><guid isPermaLink="false">how-to-write-a-diagnostics-typescript-language-service-plugin</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Tue, 21 Dec 2021 06:26:55 GMT</pubDate></item><item><title><![CDATA[Make a responsive carousel with just CSS]]></title><description><![CDATA[Nowadays, with modern CSS it's incredibly easy to create a carousel. Where you had to rely on JavaScript to calculate the exact position of you carousel items on your screen, now all you have to do is create a container with overflowing content and change the scroll mode.]]></description><link>https://www.nieknijland.nl/blog/make-a-responsive-carousel-with-just-css</link><guid isPermaLink="false">make-a-responsive-carousel-with-just-css</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 03 Jan 2024 09:17:00 GMT</pubDate></item><item><title><![CDATA[Why do we need to set a "key" prop in lists in React?]]></title><description><![CDATA[If you ever have rendered a list of items using a dynamic looping method in React you probably encountered either ESLint or a console error being thrown at you:

"Warning: Each child in a list should have a unique "key" prop."

Is this error familiar to you? Let's find out why it's thrown and why React want us to add a "key" prop to our dynamic list items.]]></description><link>https://www.nieknijland.nl/blog/why-do-we-need-to-set-a-key-prop-in-lists-in-react</link><guid isPermaLink="false">why-do-we-need-to-set-a-key-prop-in-lists-in-react</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 10 Jan 2024 16:07:00 GMT</pubDate></item><item><title><![CDATA[Using FormData to process form input values]]></title><description><![CDATA[Before you reach out to a form library, I suggest to look at what browsers nowadays have to offer by default. In a lot of cases it will be overkill to include a form library that has implemented a ton of features that you're not going to use anyways. In this blog post I want to dive into the `FormData` instance.]]></description><link>https://www.nieknijland.nl/blog/using-formdata-to-process-form-input-values</link><guid isPermaLink="false">using-formdata-to-process-form-input-values</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 17 Jan 2024 16:28:00 GMT</pubDate></item><item><title><![CDATA[Iterators in JavaScript explained]]></title><description><![CDATA[Are you like me, early in my career, trying to loop over iterator objects using array methods? Let me explain the concept of iterators to you!]]></description><link>https://www.nieknijland.nl/blog/iterators-in-javascript-explained</link><guid isPermaLink="false">iterators-in-javascript-explained</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 24 Jan 2024 14:45:00 GMT</pubDate></item><item><title><![CDATA[Animating hamburger menu icons]]></title><description><![CDATA[Hamburger menu icons transforming into a close button are everywhere. Some are animated, some are not. One thing that always disrupts me is when the animation does not make any sense.]]></description><link>https://www.nieknijland.nl/blog/animating-hamburger-menu-icons</link><guid isPermaLink="false">animating-hamburger-menu-icons</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 31 Jan 2024 16:36:00 GMT</pubDate></item><item><title><![CDATA[How to trigger a GitHub action workflow in another repository]]></title><description><![CDATA[Do you need to trigger a GitHub action workflow from another workflow? This is possible! You can use the GitHub API to trigger a workflow from basically anywhere. Let's dive into how this works and think of some practical use cases where this could be handy.]]></description><link>https://www.nieknijland.nl/blog/how-to-trigger-a-github-action-workflow-in-another-repository</link><guid isPermaLink="false">how-to-trigger-a-github-action-workflow-in-another-repository</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 07 Feb 2024 15:45:00 GMT</pubDate></item><item><title><![CDATA[Is JavaScript a compiled language?]]></title><description><![CDATA[Why should you care? It's probably not to win that discussion you had with a colleague that hates JavaScript. The main reason I think it is wise to get to know more about the type of language, is to get a better understanding of how the language you're working in is processed and executed.]]></description><link>https://www.nieknijland.nl/blog/is-javascript-a-compiled-language</link><guid isPermaLink="false">is-javascript-a-compiled-language</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 27 Mar 2024 15:51:00 GMT</pubDate></item><item><title><![CDATA[Is JavaScript backward- and/or forward compatible?]]></title><description><![CDATA[Do you know if JavaScript is backwards compatible? Or if it is forwards compatible? What do these terms even mean? This blog post will answer those questions.]]></description><link>https://www.nieknijland.nl/blog/is-javascript-backward-and-or-forward-compatible</link><guid isPermaLink="false">is-javascript-backward-and-or-forward-compatible</guid><dc:creator><![CDATA[Niek Nijland]]></dc:creator><pubDate>Wed, 10 Apr 2024 14:29:00 GMT</pubDate></item></channel></rss>