<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Chernenko — Posts</title><description>Personal blog by Serhii Chernenko — engineering essays, photography notes, and assorted writing.</description><link>https://serhiichernenko.com/blog/en/</link><language>en</language><atom:link href="https://serhiichernenko.com/blog/en/rss.xml" rel="self" type="application/rss+xml"/><item><title>Adding .default(false) to a Drizzle schema deleted my production database. Postmortem.</title><link>https://serhiichernenko.com/blog/en/posts/drizzle-default-false-deleted-my-database/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/drizzle-default-false-deleted-my-database/</guid><description>Adding .default(false) to a Drizzle schema triggered an SQLite table rebuild that cascaded and wiped my production database. Here&apos;s the postmortem.</description><pubDate>Mon, 18 May 2026 11:43:01 GMT</pubDate><category>drizzle</category><category>sqlite</category><category>cloudflare</category><category>d1</category><category>postmortem</category><category>database</category><category>migrations</category></item><item><title>Hello, world</title><link>https://serhiichernenko.com/blog/en/posts/hello-world/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/hello-world/</guid><description>A short note on launching this blog, what to expect, and how it&apos;s built — Astro on Cloudflare with Sanity as the CMS.</description><pubDate>Fri, 15 May 2026 09:00:00 GMT</pubDate><category>meta</category><category>astro</category><category>cloudflare</category><category>workers</category><category>sanity</category></item><item><title>Separate Shell for Running Agent Commands with GitHub Copilot</title><link>https://serhiichernenko.com/blog/en/posts/separate-shell-for-agent-commands-copilot/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/separate-shell-for-agent-commands-copilot/</guid><description>My VS Code got stuck when agents ran terminal commands and my zsh takes up to a second to load, so here is a settings.json profile that makes Copilot agents use bash.</description><pubDate>Fri, 27 Mar 2026 13:11:53 GMT</pubDate><category>github</category><category>copilot</category><category>vscode</category><category>zsh</category><category>bash</category><category>productivity</category></item><item><title>Why I Built a Dedicated File Manager for My AI Chat App</title><link>https://serhiichernenko.com/blog/en/posts/why-i-built-a-file-manager-for-my-ai-chat-app/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/why-i-built-a-file-manager-for-my-ai-chat-app/</guid><description>How I built file attachments for my open-source AI chat app, from R2 storage architecture to quotas and image transform limits.</description><pubDate>Thu, 19 Feb 2026 18:40:15 GMT</pubDate><category>ai</category><category>cloudflare</category><category>r2</category><category>workers</category><category>oss</category><category>file-management</category></item><item><title>3x Faster: How I Optimized Cloudflare Worker Deployments with a Custom GitHub Actions Workflow</title><link>https://serhiichernenko.com/blog/en/posts/3x-faster-cloudflare-worker-deployments-github-actions/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/3x-faster-cloudflare-worker-deployments-github-actions/</guid><description>How I built a custom GitHub Actions workflow that cuts Cloudflare Worker deployment time from 8 minutes to 2.5 minutes.</description><pubDate>Mon, 28 Jul 2025 08:43:12 GMT</pubDate><category>cloudflare</category><category>workers</category><category>github-actions</category><category>ci-cd</category><category>devops</category></item><item><title>Performance Benchmarking Cloudflare D1 (SQLite): Integer vs UUID v4 vs ULID</title><link>https://serhiichernenko.com/blog/en/posts/performance-benchmarking-cloudflare-d1-sqlite/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/performance-benchmarking-cloudflare-d1-sqlite/</guid><description>Benchmarking Cloudflare D1 (SQLite) performance for integer, UUID v4, and ULID primary keys across 1M users and 10M posts.</description><pubDate>Mon, 07 Apr 2025 08:15:06 GMT</pubDate><category>cloudflare</category><category>d1</category><category>sqlite</category><category>drizzle</category><category>performance</category><category>benchmark</category><category>database</category><category>nuxt</category></item><item><title>ChatGPT and Telegram: How to Make Two Platforms Work Together</title><link>https://serhiichernenko.com/blog/en/posts/chatgpt-telegram-bot-integration/</link><guid isPermaLink="true">https://serhiichernenko.com/blog/en/posts/chatgpt-telegram-bot-integration/</guid><description>How I built a Telegram bot on Node.js that talks to ChatGPT through the OpenAI API.</description><pubDate>Fri, 17 Mar 2023 15:00:03 GMT</pubDate><category>chatgpt</category><category>telegram</category><category>openai</category><category>nodejs</category><category>bots</category><category>artificial-intelligence</category></item></channel></rss>