Skip to main content

Блог

О веб-разработке, производительности, инструментах — и время от времени о чём-то большем.

JavaScriptAnalyticsEvent DelegationServer ComponentsPerformance

Один слушатель вместо клиентского компонента на каждую кнопку

Как только вы добавляете аналитику кликов в компонент, он превращается в клиентский компонент, который тянет за собой JavaScript. Сделайте так по всему сайту — и один только трекинг раздувает ваш бандл. Вот альтернатива, которая есть в платформе изначально: один делегированный слушатель, декларативные data-атрибуты и компоненты, остающиеся чистым серверным HTML.

28 июля 2026 г.10 мин чтения
Читать статью
CSSHTMLAccordionFrontendPerformance

Плавный аккордеон без единой строчки JavaScript

Все хватаются за состояние React и хук для измерения высоты, чтобы собрать аккордеон. А браузер уже годами имеет нативный — и начиная с 2024 года он анимирует открытие и закрытие чистым CSS. Вот полная техника: details[name], ::details-content, interpolate-size и то единственное свойство, которое анимирует и закрытие тоже.

28 июля 2026 г.9 мин чтения
Читать статью
JavaScriptWebThird-Party ScriptsFrontendPatterns

Ловите значение стороннего скрипта в тот самый момент, когда оно попадает в window

Скрипт, который вы не контролируете, записывает свой результат в глобал на window в момент, который невозможно предсказать. Большая часть кода либо проигрывает ему гонку с помощью timeout, либо впустую нагружает main thread полингом. Вот трюк с accessor property, который превращает запись в событие — плюс геттер, о котором нельзя забывать, и как полностью подменить значение.

27 июля 2026 г.9 мин чтения
Читать статью
CSSContainer QueriesTypographyFrontendPerformance

Вписываем текст в контейнер на чистом CSS — без JavaScript

Все пишут JavaScript-хук, который уменьшает font-size, пока текст не влезет в контейнер. Вот полностью рабочая альтернатива без единой строчки JS — на единицах container query, clamp() и переносе с дефисом по языку, включая ловушку каскада, из-за которой многие сдаются.

24 июля 2026 г.11 мин чтения
Читать статью
Next.jsPerformanceCode SplittingTurbopackReact Server Components

next/dynamic вас не спасёт: почему CMS-страницы на Next.js отгружают каждый чанк

Наши CMS-управляемые страницы на Next.js отгружали все ~100 компонентов секций на каждом роуте — несмотря на хрестоматийное использование next/dynamic. Мы перепробовали все фиксы на уровне бандлера (прямой import(), разбиение файлов, конфигурацию Turbopack, webpack splitChunks), прежде чем нашли настоящую причину: достижимость, а не чанкование. Кодген на этапе билда + rewrites срезали first-load JS на 53%.

18 июля 2026 г.14 мин чтения
Читать статью
obsidianmiroautomationtoolsopen-source

Выношу доски из Miro в Obsidian

Кнопка Export в Miro даёт тебе PNG или PDF — это фотография данных, а не сами данные. А если твои доски — это load-bearing карты мышления за годы, им место в Obsidian: editable, searchable, в локальном vault'е. Как я вытащил boards из Miro через REST API и сконвертировал в Excalidraw / Obsidian Canvas — с позициями, цветами, шрифтами, curved connectors, mindmap nodes — и урок шире, чем Miro: к любому SaaS нужно подходить с exit plan'ом ещё ДО первого использования.

30 июня 2026 г.6 мин чтения
Читать статью
ailearningcareermethodology

CRAFT: метод использования AI без потери профессионального мастерства

Диагноз без лечения — это просто тревога. После поста о деквалификации через AI — вот рецепт: CRAFT — пять принципов (Challenge First, Review Adversarially, Ask Why Not What, Friction on Purpose, Test Your Understanding) под одной аксиомой: AI делает то, что ты уже освоил, ты делаешь то, чему ещё учишься. Практический, легко запоминающийся метод для ежедневной работы с AI без незаметной утраты навыков.

23 июня 2026 г.6 мин чтения
Читать статью
ailearningcareerengineering

Тишина, которую выключил AI

Стоит ли ещё учить программирование, если есть AI? Громкий ответ ошибочен с обеих сторон. С доказательной базой 2025–2026 (Nature, Anthropic, AI & Society) вопрос не "AI или нет", а какие навыки отдавать AI, а какие держать при себе — и одна вещь, которая действительно изменилась: раньше реальность заставляла учиться через трение, AI тихо выключил это давление.

22 июня 2026 г.8 мин чтения
Читать статью
claude-codeproductivityclidevtools

Claude Code Multi-Profile, v2: чистая XDG-архитектура

После месяца на старом алиас-подходе я переделал свой multi-profile сетап Claude Code на XDG-совместимую структуру ~/.config/claude-profiles/. Настоящая причина — не аккуратность, а обнаружение ~/.claude.json как отдельного файла в home root, в котором тихо жили MCP-серверы, добавленные через --scope user.

13 июня 2026 г.9 мин чтения
Читать статью
claude-codeagentsaiprompt-engineeringautomation

Как писать агентов Claude Code, которые тебе не врут

Два правила для надёжных пайплайнов с агентами Claude Code: один агент — одна специализация, и shell-команды вместо промптов везде, где ответ должен быть количественным.

29 мая 2026 г.6 мин чтения
Читать статью
claude-codeproductivityclidevtools

Несколько аккаунтов Claude Code на одном устройстве

Как использовать два (или больше) аккаунта Claude Code параллельно — личный и корпоративный — с полной изоляцией через одну переменную окружения.

5 мая 2026 г.4 мин чтения
Читать статью
ObsidianClaudeMCPAutomationAI

Как подключить Claude Desktop к Obsidian — путь через 4 MCP-сервера

Реальная история поиска стабильного способа автоматизировать работу с Obsidian-хранилищем через Claude. Что сломалось, что сработало, и почему VaultForge оказался единственным рабочим вариантом.

3 мая 2026 г.9 мин чтения
Читать статью
physicsphilosophyconsciousnessblack-holescosmology

Чёрные дыры как рекурсивные вселенные: от физики к смыслу существования

Что если каждая чёрная дыра — это Большой Взрыв новой вселенной? Исследование рекурсивной космологии, излучения Хокинга и когнитивного закрытия.

17 апреля 2026 г.10 мин чтения
Читать статью
aicmsweb-developmentopinionworkflow

AI убил CMS — по крайней мере для простых сайтов

Почему традиционные системы управления контентом становятся ненужными для портфолио, блогов и лендингов — и как AI-инструменты заменяют весь слой CMS.

17 апреля 2026 г.8 мин чтения
Читать статью
ObsidianPerplexityMCPAIProductivity

Как подключить Perplexity AI к Obsidian через MCP — заметки прямо из чата

Настройте Perplexity Desktop для чтения и записи вашего Obsidian vault с помощью MCP filesystem сервера. Ищите в интернете и сохраняйте в заметки в одном разговоре.

12 апреля 2026 г.5 мин чтения
Читать статью
Claude CodeAIObsidianAutomationProductivity

Ежедневный AI News Digest через Claude Code CLI и Obsidian — ноль зависимостей

Как я построил ежедневного агента исследования новостей с 6-строчным bash-скриптом, headless-режимом Claude Code и macOS launchd.

12 апреля 2026 г.7 мин чтения
Читать статью
next.jsreact-19dark-modezustandperformance

Dark Mode в Next.js без мигания и предупреждений React 19

Как заменить next-themes на Zustand + useServerInsertedHTML для тёмной темы без мигания в Next.js 15+ без предупреждений React 19.

11 апреля 2026 г.8 мин чтения
Читать статью
Next.jsCSSPerformanceTurbopackSCSS

Как я устранил 94 render-blocking CSS файла в Next.js 16 с помощью плохо документированной фичи Turbopack

После дней перебора каждого подхода — от experimental.inlineCss до хаков с MutationObserver — я обнаружил Turbopack Import Attributes, которые решают проблему render-blocking CSS в Next.js App Router.

8 апреля 2026 г.12 мин чтения
Читать статью
Next.jsMemory LeakDockerAWS LambdaNode.js

Next.js Memory Leak: Fetch + Standalone Mode — 2 года без фикса

Next.js патчит глобальный fetch и добавляет кеш-слой, который течёт на каждом запросе. В Docker/K8s это приводит к OOM crash каждые несколько часов. Баг существует с Next.js 14 и до сих пор не решён в 16.2.x.

19 марта 2026 г.10 мин чтения
Читать статью