<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Patrick Kerschbaum</title>
        <link>https://patricktree.me/</link>
        <description>I write articles about JavaScript, TypeScript, Testing, and the web platform in general.</description>
        <lastBuildDate>Mon, 20 Apr 2026 10:25:37 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Patrick Kerschbaum</title>
            <url>https://patricktree.me/favicons/android-chrome-512x512.png</url>
            <link>https://patricktree.me/</link>
        </image>
        <copyright>All rights reserved 2026, Patrick Kerschbaum</copyright>
        <item>
            <title><![CDATA[Consistent Visual Assertions via Playwright Server in Docker]]></title>
            <link>https://patricktree.me/blog/consistent-visual-assertions-via-playwright-server-in-docker</link>
            <guid>https://patricktree.me/blog/consistent-visual-assertions-via-playwright-server-in-docker</guid>
            <pubDate>Tue, 13 Jan 2026 12:00:00 GMT</pubDate>
            <description><![CDATA[How to make Playwright visual assertions consistent across developer machines and CI by running Playwright Server in Docker and connecting tests remotely.]]></description>
        </item>
        <item>
            <title><![CDATA[How Prisma adapts Result Types based on the Actual Arguments given]]></title>
            <link>https://patricktree.me/blog/how-prisma-adapts-result-types-based-on-the-actual-arguments-given</link>
            <guid>https://patricktree.me/blog/how-prisma-adapts-result-types-based-on-the-actual-arguments-given</guid>
            <pubDate>Thu, 07 Jul 2022 16:00:00 GMT</pubDate>
            <description><![CDATA[A lesson on how to achieve fine-grained TypeScript results by combining generics with conditional types.]]></description>
        </item>
        <item>
            <title><![CDATA[Large-scale code changes using ASTs and jscodeshift]]></title>
            <link>https://patricktree.me/blog/large-scale-code-changes-using-asts-and-jscodeshift</link>
            <guid>https://patricktree.me/blog/large-scale-code-changes-using-asts-and-jscodeshift</guid>
            <pubDate>Wed, 25 Dec 2024 13:00:00 GMT</pubDate>
            <description><![CDATA[How I used Abstract Syntax Trees (ASTs) and the `jscodeshift` library to migrate legacy CJS module specifiers to exact specifiers in a TypeScript codebase.]]></description>
        </item>
        <item>
            <title><![CDATA[My Agentic Coding Setup - February 2026]]></title>
            <link>https://patricktree.me/blog/my-agentic-coding-setup-february-2026</link>
            <guid>https://patricktree.me/blog/my-agentic-coding-setup-february-2026</guid>
            <pubDate>Sun, 15 Feb 2026 09:00:00 GMT</pubDate>
            <description><![CDATA[The terminal, coding agent, model, and customizations I use for Agentic Coding as of February 2026.]]></description>
        </item>
        <item>
            <title><![CDATA[Testing Package Consumption Scenarios with pkg-consumption-test]]></title>
            <link>https://patricktree.me/blog/testing-package-consumption-scenarios</link>
            <guid>https://patricktree.me/blog/testing-package-consumption-scenarios</guid>
            <pubDate>Sat, 19 Apr 2025 12:00:00 GMT</pubDate>
            <description><![CDATA[How to automatically test if your npm package works correctly in various JavaScript environments like Node.js CJS/ESM, TypeScript, browsers, etc.]]></description>
        </item>
        <item>
            <title><![CDATA[Using Playwright Test to run Unit Tests]]></title>
            <link>https://patricktree.me/blog/using-playwright-to-run-unit-tests</link>
            <guid>https://patricktree.me/blog/using-playwright-to-run-unit-tests</guid>
            <pubDate>Fri, 17 Jun 2022 14:30:00 GMT</pubDate>
            <description><![CDATA[Why you might want to use Playwright Test as a test runner for unit tests, and how to fill in missing pieces (e.g. code coverage).]]></description>
        </item>
        <item>
            <title><![CDATA[Starting multiple VS Code instances with separate Node.js versions]]></title>
            <link>https://patricktree.me/tidbit/multiple-vs-code-instances-with-separate-nodejs-versions</link>
            <guid>https://patricktree.me/tidbit/multiple-vs-code-instances-with-separate-nodejs-versions</guid>
            <pubDate>Sun, 12 Feb 2023 11:06:00 GMT</pubDate>
            <description><![CDATA[How to combine `nvm` and the `code` CLI to start multiple VS Code instances using separate versions of Node.js.]]></description>
        </item>
        <item>
            <title><![CDATA[My macOS Setup - February 2026]]></title>
            <link>https://patricktree.me/tidbit/my-macos-setup-february-2026</link>
            <guid>https://patricktree.me/tidbit/my-macos-setup-february-2026</guid>
            <pubDate>Sun, 15 Feb 2026 08:00:00 GMT</pubDate>
            <description><![CDATA[My macOS setup - tools, shortcuts and workflows that keep me productive.]]></description>
        </item>
        <item>
            <title><![CDATA[Sensible tsconfig.json Defaults]]></title>
            <link>https://patricktree.me/tidbit/sensible-tsconfig-defaults</link>
            <guid>https://patricktree.me/tidbit/sensible-tsconfig-defaults</guid>
            <pubDate>Tue, 13 Dec 2022 22:17:00 GMT</pubDate>
            <description><![CDATA[The TypeScript configuration I use as a basis for new projects.]]></description>
        </item>
        <item>
            <title><![CDATA[WSL and Ubuntu Web Development Setup]]></title>
            <link>https://patricktree.me/tidbit/wsl-and-ubuntu-web-dev-setup</link>
            <guid>https://patricktree.me/tidbit/wsl-and-ubuntu-web-dev-setup</guid>
            <pubDate>Mon, 29 May 2023 11:24:00 GMT</pubDate>
            <description><![CDATA[A guide for how to set up a Windows+WSL2+Ubuntu development environment for the Node.js ecosystem.]]></description>
        </item>
    </channel>
</rss>