<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>TypedDuck | Blog</title><description>TypedDuck builds type-driven, static-analysis tooling for dynamic languages — starting with Rigor, a Ruby static analyzer.</description><link>https://www.typedduck.fail/</link><language>en</language><item><title>Hello, TypedDuck</title><link>https://www.typedduck.fail/blog/hello-typedduck/</link><guid isPermaLink="true">https://www.typedduck.fail/blog/hello-typedduck/</guid><description>Why this umbrella exists, and what to expect from the blog.

</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is the first post on the TypedDuck blog.&lt;/p&gt;
&lt;p&gt;TypedDuck started as one project — &lt;a href=&quot;https://rigor.typedduck.fail/&quot;&gt;Rigor&lt;/a&gt;, a
Ruby static analyzer — and grew a second, the &lt;a href=&quot;https://rigor.typedduck.fail/chibirigor/&quot;&gt;chibirigor&lt;/a&gt;
online book. They share a worldview more than a codebase: types are already
there in dynamic languages at runtime, and the job is to surface them while you
write, not after you ship.&lt;/p&gt;
&lt;p&gt;This site is the umbrella over those projects, and this blog is where the
notes that don’t belong in any one project’s docs will live — design decisions,
release notes, and the occasional detour into type theory. Posts are written in
both English and Japanese.&lt;/p&gt;
&lt;p&gt;More soon.&lt;/p&gt;</content:encoded><category>meta</category></item></channel></rss>