<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pengon Blog</title>
    <link>https://pengon.dev/blog/</link>
    <atom:link href="https://pengon.dev/rss.xml" rel="self" type="application/rss+xml" />
    <description>Notes on contact-form spam, AI classifiers, and running a small Swiss SaaS. Written by the Pengon team.</description>
    <language>en</language>
    <lastBuildDate>Tue, 23 Jun 2026 10:00:00 GMT</lastBuildDate>
    <item>
      <title>Anatomy of a €4,500 scam: the 9 layers that caught it</title>
      <link>https://pengon.dev/blog/anatomy-of-a-spam-filter/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/anatomy-of-a-spam-filter/</guid>
      <pubDate>Tue, 23 Jun 2026 10:00:00 GMT</pubDate>
      <description>A €4,500 &apos;business proposal&apos; hit a customer&apos;s contact form. Eight of our nine layers correctly let it pass. Here&apos;s why only the last one could catch it.</description>
      <category>engineering</category>
    </item>
    <item>
      <title>reCAPTCHA was on. This spam got through anyway. (2026)</title>
      <link>https://pengon.dev/blog/recaptcha-didnt-stop-this-spam/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/recaptcha-didnt-stop-this-spam/</guid>
      <pubDate>Tue, 02 Jun 2026 11:01:37 GMT</pubDate>
      <description>We watched a spam submission sail past Google reCAPTCHA on a live Squarespace form. Here&apos;s why — reCAPTCHA judges the sender, never the message. That&apos;s the gap.</description>
      <category>product</category>
    </item>
    <item>
      <title>Two contact-form messages. One real. How the filter tells them apart.</title>
      <link>https://pengon.dev/blog/how-ai-spam-filter-tells-real-from-fake/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/how-ai-spam-filter-tells-real-from-fake/</guid>
      <pubDate>Mon, 01 Jun 2026 09:28:46 GMT</pubDate>
      <description>Two short messages, both asking for a call, both from strangers. One scored 0.15 (legit). One got blocked. Here&apos;s exactly what the model saw — and why specificity is the whole game.</description>
      <category>engineering</category>
    </item>
    <item>
      <title>What contact-form spam really costs your Squarespace business (2026)</title>
      <link>https://pengon.dev/blog/cost-of-contact-form-spam/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/cost-of-contact-form-spam/</guid>
      <pubDate>Tue, 26 May 2026 07:58:12 GMT</pubDate>
      <description>The visible cost of contact-form spam is the time you spend reading it. The invisible cost is the real client whose enquiry got buried. Here&apos;s the math.</description>
      <category>opinion</category>
    </item>
    <item>
      <title>AI contact-form spam in 2026: 5 patterns hitting Squarespace inboxes</title>
      <link>https://pengon.dev/blog/ai-contact-form-spam-patterns/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/ai-contact-form-spam-patterns/</guid>
      <pubDate>Sun, 24 May 2026 08:57:02 GMT</pubDate>
      <description>AI spam bypasses reCAPTCHA and lands in your Squarespace inbox looking like a warm lead. Here are the 5 patterns we see most — and why filters miss them.</description>
      <category>spam-patterns</category>
    </item>
    <item>
      <title>Stop Squarespace contact form spam — without blocking real clients (2026)</title>
      <link>https://pengon.dev/blog/stop-squarespace-contact-form-spam/</link>
      <guid isPermaLink="true">https://pengon.dev/blog/stop-squarespace-contact-form-spam/</guid>
      <pubDate>Fri, 22 May 2026 14:50:33 GMT</pubDate>
      <description>Nearly 28% of web form submissions are spam, and AI now beats reCAPTCHA. Here&apos;s why your Squarespace contact form still gets hit, and how to actually stop it.</description>
      <category>engineering</category>
    </item>
  </channel>
</rss>
