Один слухач замість клієнтського компонента на кожну кнопку
Щойно ви додаєте аналітику кліків до компонента, він перетворюється на клієнтський компонент, який тягне за собою JavaScript. Зробіть так по всьому сайту — і сам лише трекінг роздуває ваш бандл. Ось альтернатива, яка є в платформі від початку: один делегований слухач, декларативні data-атрибути та компоненти, що лишаються чистим серверним HTML.
Плавний акордеон без жодного JavaScript
Усі хапаються за стан React і хук для вимірювання висоти, щоб зібрати акордеон. А браузер уже роками має нативний — і починаючи з 2024 року він анімує відкриття й закриття чистим CSS. Ось повна техніка: details[name], ::details-content, interpolate-size і та єдина властивість, яка анімує ще й закриття.
Ловіть значення від стороннього скрипта в ту саму мить, коли воно потрапляє у window
Скрипт, якого ви не контролюєте, записує свій результат у глобал на window у момент, який неможливо передбачити. Більшість коду або програє йому гонку через timeout, або марно навантажує main-thread полінгом. Ось трюк з accessor-property, який перетворює присвоєння на подію — плюс геттер, про який не можна забувати, і як повністю підмінити значення.
Вписуй текст у контейнер чистим CSS — без JavaScript
Усі пишуть JavaScript-хук, який зменшує font-size, поки текст не влізе в контейнер. Ось повністю робоча альтернатива без жодного JS — на container query одиницях, clamp() і переносах слів з урахуванням правил мови, включно з пасткою каскаду, через яку багато хто здається.
next/dynamic вас не врятує: чому CMS-керовані сторінки Next.js відвантажують кожен чанк
Наші CMS-керовані сторінки Next.js відвантажували всі ~100 компонентів секцій на кожному роуті — попри хрестоматійний next/dynamic. Ми вичерпали всі фікси рівня бандлера (прямий import(), розбиття файлів, конфіг Turbopack, webpack splitChunks), перш ніж знайти справжню причину: досяжність, а не чанкування. Білд-тайм кодген + rewrites зрізали first-load JS на 53%.
Виношу дошки з 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'ом ще ДО першого використання.
CRAFT: користуватись AI і не втратити навички
Діагноз без ліків — це просто тривога. Після поста про деградацію навичок через AI — ось рецепт: CRAFT, п'ять принципів (Challenge First, Review Adversarially, Ask Why Not What, Friction on Purpose, Test Your Understanding) під однією аксіомою: AI робить те, що ти опанував, ти робиш те, що ще вчиш. Практичний метод, який згадаєш під тиском, щоб користуватись AI щодня й не втратити навичку.
Тиша, яку вимкнув AI
Чи варто ще вчити програмування, якщо є AI? Голосна відповідь хибна з обох боків. З доказовою базою 2025–2026 (Nature, Anthropic, AI & Society) питання не "AI чи ні", а які навички віддавати AI, а які тримати при собі — і одна річ, яка справді змінилась: раніше реальність примушувала вчитися через тертя, AI тихо вимкнув цей тиск.
Claude Code Multi-Profile, v2: чиста XDG-архітектура
Після місяця на старому підході з аліасами я переробив свій multi-profile сетап Claude Code на XDG-сумісну структуру ~/.config/claude-profiles/. Справжня причина — не охайність, а виявлення ~/.claude.json як окремого файлу в home root, у якому тихо жили MCP-сервери, додані через --scope user.
Як писати агентів Claude Code, які тобі не брешуть
Два правила для надійних пайплайнів з агентами Claude Code: один агент — одна спеціалізація, і shell-команди замість промптів усюди, де відповідь має бути кількісною.
Кілька акаунтів Claude Code на одному пристрої
Як використовувати два (або більше) акаунти Claude Code паралельно — особистий і корпоративний — з повною ізоляцією через одну змінну середовища.
Як підключити Claude Desktop до Obsidian — шлях через 4 MCP-сервери
Реальна історія пошуку стабільного способу автоматизувати роботу з Obsidian-сховищем через Claude. Що зламалось, що спрацювало, і чому VaultForge виявився єдиним робочим варіантом.
Чорні діри як рекурсивні всесвіти: від фізики до сенсу існування
Що якщо кожна чорна діра — це Великий Вибух нового всесвіту? Дослідження рекурсивної космології, випромінювання Гокінга, когнітивного закриття та чому всесвіт може бути створений для самовдосконалення.
AI вбив CMS — принаймні для простих сайтів
Чому традиційні системи управління контентом стають зайвими для портфоліо, блогів та лендінгів — і як AI-інструменти замінюють весь шар CMS природною мовою.
Як підключити Perplexity AI до Obsidian через MCP — нотатки прямо з чату
Налаштуйте Perplexity Desktop для читання та запису вашого Obsidian vault за допомогою MCP filesystem сервера. Шукайте в інтернеті та зберігайте в нотатки в одній розмові.
Щоденний AI News Digest через Claude Code CLI та Obsidian — нуль залежностей
Як я побудував щоденного агента дослідження новин з 6-рядковим bash-скриптом, headless-режимом Claude Code та macOS launchd. Він шукає 11 тем і пише дайджести прямо в Obsidian.
Dark Mode в Next.js без мигання та попереджень React 19
Як замінити next-themes на Zustand + useServerInsertedHTML для темної теми без мигання в Next.js 15+ без попереджень React 19.
Як я усунув 94 render-blocking CSS файли в Next.js 16 за допомогою погано задокументованої фічі Turbopack
Після днів спроб кожного підходу — від experimental.inlineCss до хаків з MutationObserver — я відкрив Turbopack Import Attributes, які вирішують проблему render-blocking CSS у Next.js App Router.
Next.js Memory Leak: Fetch + Standalone Mode — 2 роки без фіксу
Next.js патчить глобальний fetch та додає кеш-шар, який тече на кожному запиті. В Docker/K8s це призводить до OOM crash кожні кілька годин. Баг існує з Next.js 14 і досі не вирішений у 16.2.x.