<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>@asmyshlyaev177 — Blog</title><description>Technical articles on React, Next.js, TypeScript, testing, and frontend architecture by Aleksandr Smyshliaev.</description><link>https://asmyshlyaev177.dev</link><language>en-us</language><atom:link href="https://asmyshlyaev177.dev/rss.xml" rel="self" type="application/rss+xml"/><item><title>Why I built llm-queue: one local model, one queue</title><link>https://asmyshlyaev177.dev/blog/why-i-built-llm-queue</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/why-i-built-llm-queue</guid><description>Why I built llm-queue: one local LLM (Ollama) behind an OpenAI-compatible HTTP API, so every process shares one serialized priority queue instead of thrashing the model.</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate><category>LLM</category><category>Ollama</category><category>Open source</category><category>Side project</category><category>TypeScript</category></item><item><title>Testing Next.js SSR with Playwright: record real responses instead of writing mocks</title><link>https://asmyshlyaev177.dev/blog/testing-nextjs-ssr-playwright-record-replay</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/testing-nextjs-ssr-playwright-record-replay</guid><description>Playwright can mock browser requests, but not the fetches your Next.js server makes during SSR. Here is how I record real API responses once and replay them deterministically on CI, with the backend turned off.</description><pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate><category>Playwright</category><category>Testing</category><category>Next.js</category><category>Open source</category><category>VCR</category><category>Polly.js</category></item><item><title>How I built state-in-url: turning the URL bar into real React state</title><link>https://asmyshlyaev177.dev/blog/how-i-built-state-in-url</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/how-i-built-state-in-url</guid><description>The story of building state-in-url: turning the browser URL bar into real, type-safe React state — the design decisions and trade-offs.</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><category>React</category><category>State management</category><category>Open source</category></item><item><title>Breakpoint variables with pure CSS</title><link>https://asmyshlyaev177.dev/blog/breakpoints-variables-with-pure-css</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/breakpoints-variables-with-pure-css</guid><description>Define and use responsive breakpoints as variables in pure CSS — no preprocessor or JS — for cleaner, DRY media queries.</description><pubDate>Thu, 01 May 2025 00:00:00 GMT</pubDate><category>CSS</category><category>Next.js</category></item><item><title>The first really useful AI tool: AI code review</title><link>https://asmyshlyaev177.dev/blog/first-really-useful-ai-tool-ai-code-review</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/first-really-useful-ai-tool-ai-code-review</guid><description>My experience with CodeRabbit, an AI code review tool that actually adds value to pull requests — what it catches and where it helps.</description><pubDate>Thu, 14 Nov 2024 00:00:00 GMT</pubDate><category>AI</category><category>Code review</category></item><item><title>Automating npm package releases with CI/CD</title><link>https://asmyshlyaev177.dev/blog/automating-npm-package-release-with-cicd</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/automating-npm-package-release-with-cicd</guid><description>Automating npm package releases with GitHub Actions: versioning, changelogs, and publishing to npm from CI without manual steps.</description><pubDate>Fri, 13 Sep 2024 00:00:00 GMT</pubDate><category>CI/CD</category><category>GitHub Actions</category><category>npm</category></item><item><title>Use cases for the useInsertionEffect React hook</title><link>https://asmyshlyaev177.dev/blog/use-cases-useinsertioneffect-react-hook</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/use-cases-useinsertioneffect-react-hook</guid><description>Practical use cases for React&apos;s useInsertionEffect hook — what it&apos;s for, how it differs from useEffect and useLayoutEffect, and when to use it.</description><pubDate>Wed, 21 Aug 2024 00:00:00 GMT</pubDate><category>React</category><category>JavaScript</category></item><item><title>Clean code vs bad code</title><link>https://asmyshlyaev177.dev/blog/clean-code-vs-bad-code</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/clean-code-vs-bad-code</guid><description>What actually separates clean code from bad code — practical heuristics and examples, beyond the usual book quotes.</description><pubDate>Sat, 10 Aug 2024 00:00:00 GMT</pubDate><category>Clean code</category></item><item><title>TypeScript function overloading: a real-world example</title><link>https://asmyshlyaev177.dev/blog/ts-function-overloading-real-world-example</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/ts-function-overloading-real-world-example</guid><description>TypeScript function overloading explained with a realistic, real-world example — when it beats union types and how to write overloads cleanly.</description><pubDate>Fri, 09 Aug 2024 00:00:00 GMT</pubDate><category>TypeScript</category></item><item><title>Sharing state between unrelated React components</title><link>https://asmyshlyaev177.dev/blog/sharing-state-between-unrelated-react-components</link><guid isPermaLink="true">https://asmyshlyaev177.dev/blog/sharing-state-between-unrelated-react-components</guid><description>How to share serializable state between unrelated React components — including server and client components in Next.js — without prop drilling.</description><pubDate>Thu, 11 Jul 2024 00:00:00 GMT</pubDate><category>React</category><category>Next.js</category><category>State management</category></item></channel></rss>