<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Simone Di Mauro — Writeups</title><description>Technical writeups on backend development, Cloudflare Workers, API security and debugging.</description><link>https://simonedimauro.com</link><language>en</language><item><title>Illegal invocation: the Cloudflare Workers bug every test missed</title><link>https://simonedimauro.com/writeups/illegal-invocation-cloudflare-workers</link><guid isPermaLink="true">https://simonedimauro.com/writeups/illegal-invocation-cloudflare-workers</guid><description>The contact form answered 502 on staging, the email provider saw no request and all 57 tests were green. The cause was a single line that called fetch as a method, which the Workers runtime rejects and Node does not.</description><pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate><category>Cloudflare Workers</category><category>TypeScript</category><category>Debugging</category><category>Testing</category></item><item><title>A contact form endpoint that assumes hostile input</title><link>https://simonedimauro.com/writeups/hardening-contact-form-cloudflare-workers</link><guid isPermaLink="true">https://simonedimauro.com/writeups/hardening-contact-form-cloudflare-workers</guid><description>Replacing a browser-side email service with a Cloudflare Worker endpoint. Every request goes through size limits, strict validation, a honeypot, rate limiting and server-side Turnstile before a single email is sent.</description><pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate><category>Cloudflare Workers</category><category>API Security</category><category>Turnstile</category><category>TypeScript</category></item></channel></rss>