<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Code Mage</title>
    <link>https://code-mage.dev</link>
    <description>Test automation tutorials, scraping deep dives, and career guides for engineers.</description>
    <language>en-US</language>
    <managingEditor>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</managingEditor>
    <webMaster>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</webMaster>
    <lastBuildDate>Sun, 12 Apr 2026 14:56:03 GMT</lastBuildDate>
    <atom:link href="https://code-mage.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <image>
      <url>https://code-mage.dev/brand/Code%20Mage%20Logo-96.png</url>
      <title>Code Mage</title>
      <link>https://code-mage.dev</link>
    </image>
    
    <item>
      <title>What is Patchright? The Playwright Fork Nobody&apos;s Talking About</title>
      <link>https://code-mage.dev/blog/what-is-patchright</link>
      <guid isPermaLink="true">https://code-mage.dev/blog/what-is-patchright</guid>
      <description>Patchright is a patched version of Playwright that fixes the detection leaks that get your scrapers blocked. Same API, same code — just undetectable.</description>
      <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
      <category>Web Scraping</category>
      <category>patchright</category>
      <category>playwright</category>
      <category>web-scraping</category>
      <category>anti-detection</category>
      <category>bot-bypass</category>
      <author>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</author>
    </item>
    <item>
      <title>CI/CD for Playwright Tests: A Real GitHub Actions Setup</title>
      <link>https://code-mage.dev/blog/ci-cd-for-playwright-tests</link>
      <guid isPermaLink="true">https://code-mage.dev/blog/ci-cd-for-playwright-tests</guid>
      <description>A production-grade GitHub Actions workflow for Playwright — parallel sharding, caching, HTML reports as artifacts, and Slack notifications when tests fail.</description>
      <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
      <category>Test Automation</category>
      <category>playwright</category>
      <category>github-actions</category>
      <category>ci-cd</category>
      <category>automation</category>
      <category>devops</category>
      <author>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</author>
    </item>
    <item>
      <title>Python Type Hints: A Practical Guide for Test Engineers</title>
      <link>https://code-mage.dev/blog/python-type-hints-for-testers</link>
      <guid isPermaLink="true">https://code-mage.dev/blog/python-type-hints-for-testers</guid>
      <description>Type hints aren&apos;t just for application code. Used well, they make your test helpers, fixtures, and page objects dramatically easier to maintain.</description>
      <pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
      <category>Python Deep Dive</category>
      <category>python</category>
      <category>type-hints</category>
      <category>testing</category>
      <category>best-practices</category>
      <author>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</author>
    </item>
    <item>
      <title>Why I Switched from Selenium to Playwright (And Never Looked Back)</title>
      <link>https://code-mage.dev/blog/why-playwright-over-selenium</link>
      <guid isPermaLink="true">https://code-mage.dev/blog/why-playwright-over-selenium</guid>
      <description>After years of writing Selenium tests, I switched to Playwright. Here&apos;s what changed, what stayed the same, and whether the switch was worth it.</description>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
      <category>Test Automation</category>
      <category>playwright</category>
      <category>selenium</category>
      <category>testing</category>
      <category>automation</category>
      <author>hammadfaisal178@gmail.com (Muhammad Hammad Faisal)</author>
    </item>
  </channel>
</rss>