<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Serhii Kryvoruchko – Blog</title>
    <link>https://skryvoruchko.com/blog/</link>
    <atom:link href="https://skryvoruchko.com/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Notes on Angular, React, TypeScript, Chrome extensions and frontend architecture from eight years of shipping production apps.</description>
    <language>en</language>
    <item>
      <title>How Much Does It Cost to Build a Chrome Extension in 2026?</title>
      <link>https://skryvoruchko.com/blog/chrome-extension-development-cost/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/chrome-extension-development-cost/</guid>
      <description>Realistic Chrome extension development costs in 2026 – price ranges by complexity, what actually drives the budget (MV3, AI, backend, store review), timelines, and the hidden maintenance costs founders forget.</description>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <category>Chrome Extensions</category>
      <category>Cost</category>
      <category>Manifest V3</category>
      <category>Product</category>
    </item>
    <item>
      <title>Frontend Architecture Audit: What It Is, When You Need One, and What Good Looks Like</title>
      <link>https://skryvoruchko.com/blog/frontend-architecture-audit-guide/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/frontend-architecture-audit-guide/</guid>
      <description>A practical guide to frontend architecture audits – the signals that you need one, what a rigorous audit covers, what the deliverable should contain, and how to act on it.</description>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <category>Architecture</category>
      <category>Tech Leadership</category>
      <category>Performance</category>
      <category>Process</category>
    </item>
    <item>
      <title>AngularJS to Angular Migration: A Field Guide from a 100k-Line Production Rescue</title>
      <link>https://skryvoruchko.com/blog/angularjs-to-angular-migration-guide/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/angularjs-to-angular-migration-guide/</guid>
      <description>How to migrate a large AngularJS codebase to modern Angular without stopping feature delivery – strategy, sequencing, testing, and the traps I hit doing it on a production platform.</description>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <category>Angular</category>
      <category>AngularJS</category>
      <category>Migration</category>
      <category>Legacy</category>
    </item>
    <item>
      <title>Building an AI Chrome Extension to 10,000 Users: Manifest V3 Lessons from Upwex</title>
      <link>https://skryvoruchko.com/blog/chrome-extension-manifest-v3-ai-architecture/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/chrome-extension-manifest-v3-ai-architecture/</guid>
      <description>Real-world Manifest V3 architecture for AI-powered Chrome extensions: service worker lifetime, content-script isolation, store review, and LLM cost control – lessons from building Upwex.</description>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <category>Chrome Extensions</category>
      <category>Manifest V3</category>
      <category>AI</category>
      <category>Architecture</category>
    </item>
    <item>
      <title>TypeScript at Scale: 10 Practices That Survive 100k Lines</title>
      <link>https://skryvoruchko.com/blog/typescript-tips-for-better-code/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/typescript-tips-for-better-code/</guid>
      <description>TypeScript practices that matter in large production codebases – strictness that pays for itself, discriminated unions, unknown at the boundaries, satisfies, branded types, and where to show restraint with generics.</description>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <category>TypeScript</category>
      <category>JavaScript</category>
      <category>Best Practices</category>
      <category>Architecture</category>
    </item>
    <item>
      <title>React Server Components in Practice: What Actually Changes in a Production App</title>
      <link>https://skryvoruchko.com/blog/react-server-components-explained/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/react-server-components-explained/</guid>
      <description>React Server Components beyond the theory – the real mental model, where the server/client boundary should sit, the caching layers that actually bite, and when RSC is the wrong tool.</description>
      <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
      <category>React</category>
      <category>Server Components</category>
      <category>Next.js</category>
      <category>Performance</category>
    </item>
    <item>
      <title>Angular Signals in Production: From First Signal to a Signals-First Architecture</title>
      <link>https://skryvoruchko.com/blog/getting-started-with-angular-signals/</link>
      <guid isPermaLink="true">https://skryvoruchko.com/blog/getting-started-with-angular-signals/</guid>
      <description>A practical guide to Angular Signals from production experience – signal, computed and effect done right, signal inputs, RxJS interop, migration strategy for large codebases, and the pitfalls that only show up at scale.</description>
      <pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
      <category>Angular</category>
      <category>Signals</category>
      <category>State Management</category>
      <category>TypeScript</category>
    </item>
  </channel>
</rss>
