Из блога OpenReplay
Автоматические проверки, которые снижают нагрузку на код-ревью
Автоматизируйте проверку кода с помощью OpenAPI, dependency-cruiser и мутационного тестирования Stryker. Настройте CI для поиска ошибок и снижения нагрузки на ревью.
Почему не работает z-index
Разберитесь, почему z-index не работает: найдите контексты наложения в инструментах разработчика, определите блокирующего предка и исправьте модальные окна, меню и закреплённые заголовки.
Стилизация выпадающего списка select с помощью base-select
Стилизуйте нативные списки select с помощью appearance: base-select. Разберите picker, варианты, значки, доступность, поддержку браузерами и ограничения.
WebMCP и MCP: в чём разница
Сравните WebMCP и MCP по среде выполнения, идентификации, жизненному циклу и обнаружению. Узнайте, когда применять каждый протокол и каков статус WebMCP.
Как собрать iOS-приложение без Mac
Соберите и выпустите приложение для iOS без Mac с Expo EAS, арендованным облачным Mac или CI. Сравните стоимость, подпись и тестирование на iPhone.
Публикация JavaScript-библиотеки с помощью Rslib
Публикуйте JavaScript-библиотеки с Rslib: настройте сборки ESM и CJS, генерацию деклараций TypeScript, включите стили компонентов и проверяйте ошибки в CI.
Стоит ли уже переходить на TypeScript 7?
Стоит ли переходить на TypeScript 7? Сравните скорость компилятора, несовместимые изменения и поддержку инструментов, чтобы выбрать безопасный путь миграции.
Как найти правила ESLint, которые замедляют линтинг
Найдите медленные правила ESLint с помощью TIMING=1 и Config Inspector. Сравните типизированные правила, выявите затратные плагины и ускорьте проверку кода.
Добавление субтитров к видео с помощью ИИ в браузере
Создавайте субтитры для видео в браузере с Transformers.js и Whisper. Извлекайте аудио, используйте WebGPU или WASM и формируйте WebVTT без отправки файлов.
ArkType — более быстрая альтернатива Zod
Сравните синтаксис ArkType и Zod, вывод типов, скорость проверки и обработку ответов API. Узнайте, когда выбрать ArkType, а когда остаться с Zod.
Что входит в файл theme.json в WordPress
Узнайте, что входит в файл WordPress theme.json, как settings и styles создают CSS-переменные и как работают пресеты, пользовательский CSS и дочерние темы.
Как обрабатывать 3D Secure в одностраничном приложении
Обрабатывайте 3D Secure в одностраничном приложении с Stripe: сохраняйте состояние оплаты, восстанавливайте страницу возврата и проверяйте PaymentIntent на сервере.
Как сократить расход токенов в ИИ-агентах для программирования
Сократите расход токенов ИИ-агентами для программирования: ограничьте доступ к файлам, пишите краткие инструкции, планируйте и начинайте новые сессии.
Как убрать лишнее пространство над текстом и под ним в CSS
Уберите лишнее пространство над и под текстом с помощью text-box-trim в CSS. Разберитесь с метриками шрифта и line-height, выберите text-box-edge и настройте поддержку старых браузеров.
Waku: серверные компоненты React без Next.js
Знакомьтесь с Waku — лёгким React-фреймворком для серверных компонентов без Next.js. Создайте пример приложения и изучите маршрутизацию, режимы рендеринга и развёртывание.
Поиск проблемного коммита с помощью git bisect
Используйте git bisect, чтобы найти коммит, вызвавший регрессию. Выберите надежные контрольные версии, автоматизируйте тесты, учтите нестабильные результаты и проверьте виновный коммит.
Как устроен pnpm, переписанный на Rust
Узнайте о переписывании pnpm 12 на Rust, результатах тестов, совместимости с pnpm 11 и рисках обновления, которые могут повлиять на CI.
Чтение и запись ZIP-файлов в Node без сторонних библиотек
Читайте и создавайте ZIP-архивы с экспериментальным API node:zlib в Node.js 26.8.0. Примеры потоковой обработки, защита от zip-slip и варианты для старых версий.
Каскадные анимации без вычислений в nth-child
Замените цепочки nth-child и циклы JavaScript на sibling-index() для каскадных CSS-анимаций. Разберите варианты, применение в вёрстке, поддержку и запасной вариант.
5 ИИ-инструментов для создания мобильных приложений
Сравните пять ИИ-конструкторов мобильных приложений: Dactyl, Rork, FlutterFlow, Thunkable и Bubble. Узнайте об экспорте кода, платформах, ценах и публикации.
Защита Docker на Linux-машине
Доступ к группе Docker дает права root. Защитите Docker в Linux с помощью rootless-режима, правил sudo, Podman, изоляции контейнеров и списка проверок.
Можно ли по-прежнему доверять строке User-Agent?
Узнайте, каким данным User-Agent можно доверять, какие браузеры замораживают и как Client Hints Chromium и проверка функций заменяют ненадежный разбор строки.
Ускоряем валидацию Zod с помощью скомпилированных схем
Узнайте, как скомпилированные схемы Zod ускоряют проверку, когда это важно и как учитывать затраты, неподдерживаемые схемы и ограничения CSP.
Почему useEffect срабатывает дважды
Узнайте, почему React StrictMode запускает useEffect дважды в режиме разработки и как исправить запросы, подписки и другие эффекты с помощью очистки.