<?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[Blog by Martijn Hols]]></title>
        <description><![CDATA[My blog where I post articles on React, TypeScript, JavaScript and related subjects. I post deep dives, brief code snippets, opinions, etc..]]></description>
        <link>https://martijnhols.nl</link>
        <generator>https://github.com/MartijnHols/martijnhols.nl/tree/main/utils/generateRssFeed.ts</generator>
        <lastBuildDate>Thu, 10 Sep 2026 15:32:06 GMT</lastBuildDate>
        <atom:link href="https://martijnhols.nl/rss.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Thu, 13 Mar 2025 00:00:00 GMT</pubDate>
        <copyright><![CDATA[https://martijnhols.nl/blog/license]]></copyright>
        <language><![CDATA[en-US]]></language>
        <managingEditor><![CDATA[Martijn Hols]]></managingEditor>
        <ttl>120</ttl>
        <category><![CDATA[Web]]></category>
        <category><![CDATA[Programming]]></category>
        <category><![CDATA[React]]></category>
        <category><![CDATA[JavaScript]]></category>
        <item>
            <title><![CDATA[Moving away from US cloud services]]></title>
            <description><![CDATA[Relying on US cloud services poses legal and political risks for EU users, so I'm moving away from US cloud services. Here's how and why I did it.]]></description>
            <link>https://martijnhols.nl/blog/moving-away-from-us-cloud-services</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/moving-away-from-us-cloud-services</guid>
            <category><![CDATA[privacy]]></category>
            <category><![CDATA[cloud]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 13 Mar 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How much traffic can a pre-rendered Next.js site really handle?]]></title>
            <description><![CDATA[How much traffic can a self-hosted Next.js site handle? I ran load tests, uncovered surprising limits, and compared pre-rendering with SSR.]]></description>
            <link>https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rendered-nextjs-site-handle</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rendered-nextjs-site-handle</guid>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 06 Mar 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Migrating away from martijnhols/actions-cache]]></title>
            <description><![CDATA[A short tale about me messing around with Github Action caching, my fork, Github pipeline longevity, and why and how to migrate away from it.]]></description>
            <link>https://martijnhols.nl/blog/migrating-away-from-martijnhols-actions-cache</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/migrating-away-from-martijnhols-actions-cache</guid>
            <category><![CDATA[extra]]></category>
            <category><![CDATA[ci-cd]]></category>
            <category><![CDATA[dx]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Mon, 03 Mar 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The European Accessibility Act for websites and apps]]></title>
            <description><![CDATA[Learn how the European Accessibility Act (EAA) impacts websites and apps, key accessibility requirements, deadlines, and tips to prepare for compliance.]]></description>
            <link>https://martijnhols.nl/blog/the-european-accessibility-act-for-websites-and-apps</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/the-european-accessibility-act-for-websites-and-apps</guid>
            <category><![CDATA[accessibility]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Accessibility essentials every front-end developer should know]]></title>
            <description><![CDATA[Essential accessibility practices for front-end developers, including semantic HTML, alt texts, ARIA, and keyboard navigation tips to build inclusive components.]]></description>
            <link>https://martijnhols.nl/blog/accessibility-essentials-every-front-end-developer-should-know</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/accessibility-essentials-every-front-end-developer-should-know</guid>
            <category><![CDATA[accessibility]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to add copy-paste only text in HTML (plus a React component)]]></title>
            <description><![CDATA[In this gist I share a code snippet to (statically) insert text that appears when pasting content copied from your site.]]></description>
            <link>https://martijnhols.nl/blog/how-to-add-copy-paste-only-text-in-html-react</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-add-copy-paste-only-text-in-html-react</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[html]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[You don't need Lodash]]></title>
            <description><![CDATA[And I reckon you shouldn't use it, or any libraries that you can solve natively just as well. Here's why.]]></description>
            <link>https://martijnhols.nl/blog/you-dont-need-lodash</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/you-dont-need-lodash</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[dependencies]]></category>
            <category><![CDATA[maintainability]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 28 Nov 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to write a good git commit message]]></title>
            <description><![CDATA[Without any structure, your Git history can become a mess. In this article I go into how to write good commit messages.]]></description>
            <link>https://martijnhols.nl/blog/how-to-write-a-good-git-commit-message</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-write-a-good-git-commit-message</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[git]]></category>
            <category><![CDATA[maintainability]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Everything about Google Translate crashing React (and other web apps)]]></title>
            <description><![CDATA[A deep dive into Google Translate (and other browser extensions) interference breaking React and other web apps.]]></description>
            <link>https://martijnhols.nl/blog/everything-about-google-translate-crashing-react</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/everything-about-google-translate-crashing-react</guid>
            <category><![CDATA[react]]></category>
            <category><![CDATA[machine-translation]]></category>
            <category><![CDATA[i18n]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Wed, 29 May 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to handle array values in react-hook-form]]></title>
            <description><![CDATA[A simple way to handle fields with basic array values in react-hook-form.]]></description>
            <link>https://martijnhols.nl/blog/how-to-handle-array-values-in-react-hook-form</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-handle-array-values-in-react-hook-form</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[react-hook-form]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[maintainability]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Sat, 04 May 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Keeping dependencies up-to-date]]></title>
            <description><![CDATA[A strategy for keeping dependencies up-to-date. When to update, how to update, and what to update first.]]></description>
            <link>https://martijnhols.nl/blog/keeping-dependencies-up-to-date</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/keeping-dependencies-up-to-date</guid>
            <category><![CDATA[dependencies]]></category>
            <category><![CDATA[security]]></category>
            <category><![CDATA[maintainability]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Sun, 28 Apr 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to detect Google Translate and other machine translation]]></title>
            <description><![CDATA[In this gist I share a simple but reliable way to detect Google Translate and other machine translation tools.]]></description>
            <link>https://martijnhols.nl/blog/how-to-detect-google-translate-and-other-machine-translation</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-detect-google-translate-and-other-machine-translation</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[machine-translation]]></category>
            <category><![CDATA[i18n]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Sun, 21 Apr 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The security risks of front-end dependencies]]></title>
            <description><![CDATA[A dive into the security risks of using third-party dependencies in front-end projects.]]></description>
            <link>https://martijnhols.nl/blog/the-security-risks-of-front-end-dependencies</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/the-security-risks-of-front-end-dependencies</guid>
            <category><![CDATA[security]]></category>
            <category><![CDATA[dependencies]]></category>
            <category><![CDATA[maintainability]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to get the document height in iOS Safari when the on-screen keyboard is open]]></title>
            <description><![CDATA[In this gist I share a React hook to get an accurate document height that correctly accounts for the on-screen keyboard on iOS Safari.]]></description>
            <link>https://martijnhols.nl/blog/how-to-get-document-height-ios-safari-osk</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-get-document-height-ios-safari-osk</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[safari]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to detect the on-screen keyboard in iOS Safari]]></title>
            <description><![CDATA[A gist about detecting the on-screen keyboard in iOS Safari with an example React hook.]]></description>
            <link>https://martijnhols.nl/blog/how-to-detect-the-on-screen-keyboard-in-ios-safari</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/how-to-detect-the-on-screen-keyboard-in-ios-safari</guid>
            <category><![CDATA[how-to]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[safari]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[License]]></title>
            <description><![CDATA[The license to content in my blog, on the rest of my website and the source code of it all.]]></description>
            <link>https://martijnhols.nl/blog/license</link>
            <guid isPermaLink="true">https://martijnhols.nl/blog/license</guid>
            <category><![CDATA[meta]]></category>
            <dc:creator><![CDATA[Martijn Hols]]></dc:creator>
            <pubDate>Mon, 01 Apr 2024 00:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>