Из блога OpenReplay
Тестирование компонентов на основе API в Storybook
Используйте MSW в Storybook 10 для тестирования API-компонентов в состояниях загрузки, ошибки, пустого ответа и успеха, затем превращайте истории в тесты.
Распространённые сокращённые свойства CSS
Шпаргалка по CSS shorthand для margin, padding, border, font, background и flex: правила сброса, порядок значений и скрытые ошибки.
Работа с геометрией в браузере с помощью Geometric.js
Geometric.js добавляет в браузерные графики и карты пересечение полигонов, bounds, point-in-polygon и интерполяцию путей для SVG и Canvas.
3 системы типов, которые не являются TypeScript
Сравните JSDoc + @ts-check, ReScript и Flow как альтернативы TypeScript для JavaScript: безопасность типов, сборка и актуальность.
MDN теперь является MCP-сервером
Сервер MCP от MDN дает ИИ-агентам доступ к поиску, документации и данным о совместимости браузеров, а также к настройке и ограничениям.
Что такое bunx и когда его использовать
bunx простыми словами: как Bun запускает npm-утилиты без глобальной установки, когда нужен --bun и когда npx безопаснее.
Как обрезать текст с помощью CSS
Обрезайте текст в CSS с text-overflow: ellipsis для одной строки или line-clamp для нескольких, плюс исправления для flex и grid.
5 полезных букмарклетов для разработчиков
Пять полезных bookmarklets для разработчиков: live-редактирование страниц, отладка layout, показ паролей, выбор цвета и запуск eruda на мобильных.
Тестирование компонентов Svelte 5 с помощью Vitest
Тестируйте компоненты Svelte 5 с Vitest через mount, testing-library или browser mode, а также с правильной настройкой runes, эффектов и snippets.
Начало работы с npm Workspaces
Настройка, команды и ограничения npm workspaces: управляйте монорепо, связывайте соседние пакеты и понимайте, когда добавить Turborepo или Nx.
Как создать резервную копию сайта на WordPress
Создайте резервную копию WordPress с mysqldump, tar, cron и rclone. Разбирает файлы, базу MySQL, хранение вне сервера и проверку восстановления.
Автоматические проверки кода с помощью CODEOWNERS
Настройте GitHub CODEOWNERS, избегайте скрытых сбоев и включите code review через правильные шаблоны, права и защиту веток.
Рецензирование AI-сгенерированного кода с помощью Difftastic
Используйте Difftastic для проверки кода от ИИ с структурными diff, настройки в git и отделения изменений поведения от форматирования.
3 JavaScript-ловушки с объяснением
Три ловушки JavaScript: ошибки с плавающей точкой, проверки NaN и await в циклах, с правильными способами исправления.
Синхронизация вкладок браузера с помощью BroadcastChannel
BroadcastChannel синхронизирует вкладки в реальном времени через structured clone, с очисткой, fallback и шаблонами для auth, корзины и темы.
Получение данных в React Server Components
Получайте данные в React Server Components через async-функции, разберитесь в кэше Next.js 15/16 и избегайте waterfall с Promise.all.
Использование текстовых экспандеров для Git, PR и AI-промптов
Сниппеты Espanso для Git, PR и AI-промптов: используйте shell, буфер обмена и курсор для контекстных расширений текста.
Как анимировать display: none без JavaScript-хаков
Анимируйте display none на CSS с allow-discrete и @starting-style, а также обработку overlay для dialog и popover и поддержку браузеров.
Практическое руководство по оператору `satisfies` в TypeScript
Пояснение оператора TypeScript satisfies: примеры конфигов, узкий вывод типов и когда использовать его вместо as или аннотации через двоеточие.
JSPI: Лучший мост между JavaScript и Wasm
JSPI связывает JavaScript и WebAssembly, чтобы синхронный Wasm вызывал API на Promise, такие как fetch, с Suspending, promising и статусом браузеров.
Не давайте Mac засыпать во время ночных задач с помощью caffeinate
Используйте caffeinate на Mac, чтобы не дать уснуть Claude Code, Codex или сборкам ночью, проверить assertions через pmset и учесть лимит закрытой крышки.
5 советов по Obsidian для более эффективного ведения заметок
Пять советов Obsidian для заметок: MOC, Dataview, Bases, Canvas, Mermaid, панели обзора и синхронизация vault через Git.
Интеграционные тесты vs сквозные тесты
Интеграционные и end-to-end тесты для веб-приложений: четкие определения, JS-инструменты и когда использовать Vitest, MSW, Playwright или Cypress.
Как JavaScript наконец научился убирать за собой
Явное управление ресурсами JavaScript с using, await using, DisposableStack и SuppressedError для детерминированной очистки файлов, блокировок, сокетов и подключений.