<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Roman Kocherezhchenko — Blog</title><description>Notes on building and shipping software — performance, deploys, and small automations.</description><link>https://roman-kocherezhchenko.com/</link><language>en-us</language><item><title>Telegram bots that do real work</title><link>https://roman-kocherezhchenko.com/en/blog/telegram-bots-that-do-real-work/</link><guid isPermaLink="true">https://roman-kocherezhchenko.com/en/blog/telegram-bots-that-do-real-work/</guid><description>Most bots are toys. The useful ones share a shape — a clear trigger, an idempotent action, and a boring deployment. Here&apos;s the skeleton I reach for.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>bots</category><category>automation</category></item><item><title>Edge deploys on Cloudflare that just work</title><link>https://roman-kocherezhchenko.com/en/blog/edge-deploys-on-cloudflare/</link><guid isPermaLink="true">https://roman-kocherezhchenko.com/en/blog/edge-deploys-on-cloudflare/</guid><description>Headers, redirects, and caching belong at the edge — not in your application code. A look at the small config files that do the heavy lifting.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><category>cloudflare</category><category>performance</category></item><item><title>How this site scores Lighthouse 100 on mobile</title><link>https://roman-kocherezhchenko.com/en/blog/lighthouse-100-astro-cloudflare/</link><guid isPermaLink="true">https://roman-kocherezhchenko.com/en/blog/lighthouse-100-astro-cloudflare/</guid><description>A static Astro build, zero client framework, and a strict CSP — the three decisions that keep all four Lighthouse categories pinned at 100.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>astro</category><category>performance</category></item></channel></rss>