﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mykola Aleksandrov - Developer Blog</title>
    <link>https://mykolaaleksandrov.dev/</link>
    <description>Personal blog of Mykola Aleksandrov covering software development, technology, and programming insights.</description>
    <language>en-us</language>
    <lastBuildDate>Wed, 19 Aug 2026 11:32:30 +00:00</lastBuildDate>
    <managingEditor>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</managingEditor>
    <webMaster>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</webMaster>
    <atom:link href="https://mykolaaleksandrov.dev/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Running OpenCode in CLI and Web Mode: What to Configure and How</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/08/running-opencode-web-config/</link>
      <description>A practical guide to running OpenCode in CLI, headless server, and web mode — config file, working-directory rules, env vars, and troubleshooting.</description>
      <pubDate>Wed, 19 Aug 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/08/running-opencode-web-config/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Using OpenCode with llama.cpp — Local AI Coding Assistant on Your Machine</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/07/blog-opencode-llamacpp/</link>
      <description>Run a powerful AI coding assistant entirely on your own hardware with OpenCode and a local llama.cpp server. No cloud, no API keys, no rate limits.</description>
      <pubDate>Sat, 11 Jul 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/07/blog-opencode-llamacpp/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Why Claude Code Sends Huge Prompts to Local Models — And How I Reduced Mine by 73%</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/06/claude-code-huge-prompt-investigation/</link>
      <description>Investigate why Claude Code sends huge prompts to local LLMs, how tool schemas add overhead, and how restricted tool profiles reduced request size by 73%.</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/06/claude-code-huge-prompt-investigation/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Claude Code, llama.cpp, and the Hidden Prompt Cache Killer</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/06/claude-code-llamacpp-prompt-cache-fix/</link>
      <description>Running Claude Code through a local llama.cpp server? Discover how CLAUDE_CODE_ATTRIBUTION_HEADER was killing your prompt cache and how to fix it for massive speedups.</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/06/claude-code-llamacpp-prompt-cache-fix/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>FastMediatR: a zero-reflection, AOT-friendly mediator for .NET 10</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/05/fastmediatr-zero-reflection-mediator-dotnet-10/</link>
      <description>Why I built FastMediatR — a near drop-in MediatR replacement that moves dispatch to compile time with a Roslyn source generator — and how to use it.</description>
      <pubDate>Fri, 29 May 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/05/fastmediatr-zero-reflection-mediator-dotnet-10/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Using OpenRouter with Claude Code CLI</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/05/using-openrouter-with-claude-code/</link>
      <description>Learn how to configure Claude Code CLI to route through OpenRouter for access to free-tier and alternative AI models. Set ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, and ANTHROPIC_MODEL in .claude/settings.json.</description>
      <pubDate>Sun, 24 May 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/05/using-openrouter-with-claude-code/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Why People Who Know Little Often Feel Certain: The Dunning-Kruger Effect and the Circle of Knowledge</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/05/dunning-kruger-circle-of-knowledge/</link>
      <description>Explore the Dunning-Kruger effect and the circle of knowledge model. Why people who know little often feel certain, why experts hedge — and how to develop calibrated confidence in your work.</description>
      <pubDate>Sat, 23 May 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/05/dunning-kruger-circle-of-knowledge/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>How to Search Google Contacts from the Command Line with GWS</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/03/gws-people-search/</link>
      <description>Use the gws CLI to search Google Contacts from your terminal. Covers OAuth scope configuration, shell-specific JSON syntax, dry-run tips, and troubleshooting 403 errors.</description>
      <pubDate>Sat, 21 Mar 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/03/gws-people-search/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Simplifying .NET Project Configuration with Directory.Build.props</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/03/directory-build-props/</link>
      <description>Learn how Directory.Build.props centralizes MSBuild properties across .NET multi-project solutions. Reduce duplication, ensure consistency, and simplify your build configuration.</description>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/03/directory-build-props/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Docker Production Best Practices: Security, Optimization &amp; Monitoring</title>
      <link>https://mykolaaleksandrov.dev/posts/2026/02/docker-production-best-practices/</link>
      <description>Battle-tested practices for running Docker in production safely and efficiently. Covers security hardening, image optimization, resource management, networking, logging, monitoring, health checks, and secrets management.</description>
      <pubDate>Thu, 12 Feb 2026 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2026/02/docker-production-best-practices/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Why JSON Is Not Enough for AI-First Systems</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/12/why-json-is-not-enough-for-ai-first-systems/</link>
      <description>And Why Architecture Must Become Token-Aware. JSON is optimized for browsers, not LLMs.</description>
      <pubDate>Sun, 21 Dec 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/12/why-json-is-not-enough-for-ai-first-systems/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>TOON — Token-Oriented Object Notation</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/12/toon-token-oriented-object-notation/</link>
      <description>Designing Data for AI-First Architectures. TOON is a structured format where tokens are the primary design unit, sitting between your system and AI.</description>
      <pubDate>Fri, 19 Dec 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/12/toon-token-oriented-object-notation/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Building Modern UIs with Atomic Components: The Most Customizable React Library on the Market</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/12/atomic-components-blog-post/</link>
      <description>Discover Atomic Components - a revolutionary React UI library with 115+ production-ready components, 30 beautiful themes, complete TypeScript support, and groundbreaking AI-powered development tools via MCP integration.</description>
      <pubDate>Thu, 11 Dec 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/12/atomic-components-blog-post/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>ASP.NET Core 10 JSON Serialization &amp; Model Binding Tuning Guide - Most Comprehensive Guide You Ever Need</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/12/aspnet-json-serialization-tuning/</link>
      <description>Complete guide to ASP.NET Core JSON serialization configuration: PascalCase vs camelCase, enum string serialization, nullable types, OpenAPI schema transformations, and model binding tuning.</description>
      <pubDate>Sat, 06 Dec 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/12/aspnet-json-serialization-tuning/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Taming 'Large Chunks' in Vite + React: Why It Happens and How I Shrunk My Main Bundle</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/taming-large-chunks-vite-react/</link>
      <description>Practical guide to fixing Vite's 'Some chunks are larger than 500 kB' warning. Learn how to use manualChunks, React.lazy, and route-level code splitting to shrink your main bundle and boost performance.</description>
      <pubDate>Sun, 30 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/taming-large-chunks-vite-react/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Brotli on a CDN: Why It's Better and How to Configure It on Cloudflare (plus IIS)</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/brotli-on-cdn-cloudflare-with-iis/</link>
      <description>Brotli beats gzip on text assets; learn how Cloudflare negotiates Brotli/zstd/gzip, configure Compression Rules, enable Brotli on IIS, and verify headers.</description>
      <pubDate>Tue, 25 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/brotli-on-cdn-cloudflare-with-iis/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>How to Clone an Azure Web App: Download, Modify, and Deploy to Another App</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/azure-webapp-clone/</link>
      <description>Step-by-step guide to download an Azure Web App via Kudu, edit files locally, and deploy to another Web App using Clone App or Zip Deploy.</description>
      <pubDate>Sun, 23 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/azure-webapp-clone/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Package Source Mapping in NuGet — hardening mixed public/private feeds</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/package-source-mapping/</link>
      <description>When your solution pulls packages from both nuget.org and a private feed, you're exposed to dependency-confusion and typosquatting risks. Package Source Mapping lets you explicitly declare which source each package is allowed to come from—making restores deterministic and blocking accidental or malicious cross-source pulls.</description>
      <pubDate>Sun, 23 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/package-source-mapping/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Scalar API Documentation - Modern Alternative to Swagger UI for .NET</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/scalar-api-documentation/</link>
      <description>Complete guide to implementing Scalar - the modern, beautiful API documentation UI for .NET 9+ Web APIs. Learn why Microsoft recommends Scalar over Swagger UI, with step-by-step setup, CSP fixes, and advanced customization.</description>
      <pubDate>Mon, 17 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/scalar-api-documentation/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>Implementing Google Analytics 4 in React: The Right Way</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/react-google-analytics-implementation/</link>
      <description>Learn the critical difference between using JavaScript's arguments object versus spread operators when implementing GA4 in React. A seemingly minor detail that causes silent tracking failures.</description>
      <pubDate>Sun, 16 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/react-google-analytics-implementation/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/assets/img/og-default.jpg" type="image/jpeg" length="0" />
    </item>
  </channel>
</rss>