<?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Statable Blog</title><description>Stories, research and release notes from the team building Statable — privacy-first, cookie-free web analytics hosted in the EU.</description><link>https://statable.com/blog/</link><atom:link href="https://statable.com/blog/feed.xml" rel="self" type="application/rss+xml" /> <managingEditor>Statable</managingEditor><language>en</language> <pubDate>Thu, 10 Sep 2026 15:38:41 -0000</pubDate> <lastBuildDate>Thu, 10 Sep 2026 15:38:41 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.19.0</generator> <image> <url>https://statable.com/blog/assets/logo-icon-white.png</url> <title>Statable Blog</title> <link>https://statable.com/blog/</link> </image> <item> <title>How to track 404, 410 and other errors in Statable web analytics</title> <author>Yevhen Skrypets</author> <author>Vadym Nakoniechnyi</author> <category>How-to</category> <category>errors</category> <category>reports</category> <category>tracking</category> <description>One meta tag in your error template turns broken pages into a report: which URLs fail, with which codes, and where that traffic came from.</description> <link>https://statable.com/blog/error-tracking-in-web-analytics/</link> <pubDate>Thu, 10 Sep 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/error-tracking-in-web-analytics/</guid> </item> <item> <title>Every number Statable shows you comes out of ClickHouse</title> <author>Yevhen Skrypets</author> <author>Anatolii Vasylenko</author> <category>ClickHouse</category> <category>Field notes</category> <category>compression</category> <category>infrastructure</category> <category>replication</category> <description>ClickHouse is the primary database behind Statable. One shard, four replicas, no sharding, 1.15 billion events on bare metal in the EU, and 3 ms median reads.</description> <link>https://statable.com/blog/statable-runs-on-clickhouse/</link> <pubDate>Mon, 31 Aug 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/statable-runs-on-clickhouse/</guid> </item> <item> <title>The lazy way to set up a goal</title> <author>Yevhen Skrypets</author> <category>How-to</category> <category>MCP</category> <category>custom events</category> <category>goals</category> <description>Setting up a goal means wiring triggers and testing them. I say one sentence to an agent that has my repos and our MCP server, and drink my coffee.</description> <link>https://statable.com/blog/lazy-goal-setup/</link> <pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/lazy-goal-setup/</guid> </item> <item> <title>Half the EU sites we measured tracked us before we could answer the banner</title> <author>Yevhen Skrypets</author> <author>Vadym Nakoniechnyi</author> <category>EU</category> <category>GDPR</category> <category>Research</category> <category>consent</category> <category>trackers</category> <description>We scanned 1,845 EU domains on 29 July 2026. A tracker fired before any click on 641 of them: 48.8% of loaded rows, 54.0% of rows with a detection.</description> <link>https://statable.com/blog/eu-pre-consent-tracking-2026/</link> <pubDate>Fri, 21 Aug 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/eu-pre-consent-tracking-2026/</guid> </item> <item> <title>What happens when your server inherits a pirate site&#39;s IP address</title> <author>Yevhen Skrypets</author> <author>Vadym Nakoniechnyi</author> <category>Field notes</category> <category>hosts</category> <category>infrastructure</category> <category>reports</category> <description>A second hostname turned up in a customer dashboard, serving an identical site. Not a copy: a recycled IP and a stale DNS record explain it.</description> <link>https://statable.com/blog/unknown-domain-in-your-analytics/</link> <pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/unknown-domain-in-your-analytics/</guid> </item> <item> <title>How an agent set up our goals before the coffee went cold</title> <author>Yevhen Skrypets</author> <author>Vadym Nakoniechnyi</author> <category>How-to</category> <category>MCP</category> <category>Stats API</category> <category>custom events</category> <category>goals</category> <description>Forgot to set up goals before launch? The events were recorded anyway. Give an agent one API key and it reports on last month in about two minutes.</description> <link>https://statable.com/blog/set-up-goals-with-an-agent/</link> <pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate> <source url="https://statable.com/blog/feed.xml">Statable Blog</source><guid isPermaLink="true">https://statable.com/blog/set-up-goals-with-an-agent/</guid> </item> </channel> </rss>