﻿<?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>Sat, 14 Mar 2026 23:28:46 +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>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>
    <item>
      <title>How I Configure Most of My Domains on Cloudflare</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/cloudflare-domain-setup/</link>
      <description>My standard pattern for DNS, proxying, and root-to-www redirects using Cloudflare. A simple, reliable setup that works with traditional servers, PaaS platforms, and Cloudflare Tunnels.</description>
      <pubDate>Sat, 15 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/cloudflare-domain-setup/</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>Atomic Design in Practice: What's Worked (and What Hasn't) for Me</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/atomic-design-in-practice/</link>
      <description>Atomic Design is a mental model for building UI as a system. Learn the five levels (atoms, molecules, organisms, templates, pages) with practical examples, real-world pitfalls, and how to roll it out on projects with Storybook and Pattern Lab.</description>
      <pubDate>Fri, 07 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/atomic-design-in-practice/</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>Central Package Management in .NET: Real-world benefits, a no-drama migration plan, and security hardening</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/11/central-package-management-dotnet/</link>
      <description>Why and how to adopt NuGet Central Package Management (CPM) across multi-project solutions, including migration steps, PR diff, and security hardening with lock files and package source mapping.</description>
      <pubDate>Mon, 03 Nov 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/11/central-package-management-dotnet/</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 I Check and Resolve Vulnerabilities in My React and .NET Solutions</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/10/vulnerability-scanning-react-dotnet/</link>
      <description>A comprehensive guide to identifying and resolving security vulnerabilities in React and .NET applications. Learn practical tools, processes, and best practices for maintaining secure web applications.</description>
      <pubDate>Tue, 28 Oct 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/10/vulnerability-scanning-react-dotnet/</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>Introducing SARIF Visualizer: Transform Your Security Scan Reports into Actionable Insights</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/10/sarif-visualizer/</link>
      <description>SARIF Visualizer is a modern, responsive web application that transforms complex SARIF reports into beautiful, interactive dashboards. Built with React, TypeScript, and Tailwind CSS.</description>
      <pubDate>Sun, 26 Oct 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/10/sarif-visualizer/</guid>
      <author>contact@mykolaaleksandrov.dev (Mykola Aleksandrov)</author>
      <enclosure url="https://mykolaaleksandrov.dev/posts/2025/10/sarif-visualizer/dashboard.png" type="image/jpeg" length="0" />
    </item>
    <item>
      <title>HLab.TinyURL.Client: A Comprehensive .NET Library for TinyURL Integration</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/10/tinyurl-client-nuget-package/</link>
      <description>Meet HLab.TinyURL.Client - a robust, feature-complete .NET 8 client library that brings the full power of TinyURL's API to .NET developers. Open-source, free, and production-ready.</description>
      <pubDate>Sat, 18 Oct 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/10/tinyurl-client-nuget-package/</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>Microsoft 365: Add Custom Domains, Aliases, and SMTP Sending</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/10/microsoft-365-domains-aliases-smtp/</link>
      <description>Professional, step-by-step guidance to connect a custom domain, add email aliases that appear in From, and prepare a mailbox to send mail via SMTP in Microsoft 365.</description>
      <pubDate>Sun, 12 Oct 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/10/microsoft-365-domains-aliases-smtp/</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>Managing Environment Variables in Vite, Docker, and React Applications</title>
      <link>https://mykolaaleksandrov.dev/posts/2025/10/vite-docker-react-environment-variables/</link>
      <description>Comprehensive guide to managing environment variables across Vite, React, and Docker. Learn VITE_ prefix, TypeScript integration, multi-stage builds, and production best practices with real-world examples.</description>
      <pubDate>Sat, 11 Oct 2025 00:00:00 +00:00</pubDate>
      <guid>https://mykolaaleksandrov.dev/posts/2025/10/vite-docker-react-environment-variables/</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>