Еженедельный дайджест #57: Новости фронтенда
Как читать этот дайджест
- Начните с заголовков статей, чтобы получить общее представление о содержании
- Быстро пробегитесь по первым абзацам, чтобы понять актуальность материалов именно для вас
- Выберите наиболее интересные или полезные темы под текущие задачи
- Планируйте чтение: выделите, например, 15 минут утром и 15 минут вечером
- Не пытайтесь прочитать всё сразу — возвращайтесь к дайджесту в удобное время
- При повторном просмотре читайте выбранные статьи более вдумчиво, делая заметки
- Не сожалейте, если прочитали лишь часть: ценность в качестве, а не в количестве
- Используйте закладки для сохранения интересных материалов
- Делитесь инсайтами и ссылками с коллегами — так информация лучше усвоится

🧪 HTML и веб-платформа
WOFF исполнилось 16 лет
В материале о WOFF 1.0 рассказывают, почему привычные веб-шрифты стали возможны не сразу. Хотя @font-face появился ещё в CSS2, издателей и браузеры долго разделяли вопросы лицензий и DRM. Ситуацию помог изменить открытый формат WOFF — продолжение идей из раннего обоснования веб-шрифтов W3C.
Это полезное напоминание: часть «обычных» возможностей браузера возникла не только из-за кода, но и благодаря договорённостям об открытых форматах и правах на контент.
Container Timing API измеряет отрисовку отдельных компонентов
В Chrome идёт origin trial для Container Timing API. Если пометить область DOM атрибутом containertiming, браузер сможет сообщать, когда на экране появились значимые части именно этого блока. Подробный разбор объясняет, как измерять производительность компонентов, а черновик API доступен в репозитории WICG.
Метрики страницы вроде LCP показывают общую картину, но не отвечают, какой именно виджет тормозит. Новый API может сделать диагностику сложных интерфейсов точнее. При этом он пока не определяет момент, когда компонент полностью «готов», поэтому результаты нужно трактовать аккуратно.
Web Locks API помогает вкладкам не мешать друг другу
Web Locks API позволяет нескольким вкладкам договориться, кто сейчас выполняет важную работу: например, синхронизацию, запись в локальное хранилище или обновление токена. В практическом разборе блокировок в вебе показано, как избежать гонок, когда две вкладки почти одновременно меняют одни данные.
- Кампания Kill the Cookie Banner при поддержке NOYB и других организаций предлагает заменить бесконечные cookie-баннеры единым сигналом приватности в браузере.
- Новый интерфейс Firefox можно попробовать в Nightly: ранее Mozilla только показала направление редизайна, а тестовая сборка доступна на странице канала Nightly.
- В Safari 26.6 исправили ошибки и доработали движок WebKit.
- Chrome для Linux на ARM64 вышел из долгого ожидания и уже включает Widevine DRM.
- Joost de Valk размышляет о том, каким может стать будущее сайтов в мире платформ, поисковиков и ИИ.
- Статья о порогах Core Web Vitals сравнивает их с данными интернет-магазинов и предлагает не воспринимать границу LCP в 2,5 секунды как универсальный ориентир.
- Подход «сначала показать статичную картинку, затем загрузить анимацию» помогает быстрее показать интерфейс на слабой сети, не отказываясь от SVG-анимации на больших экранах.
- SVG-фильтры для текста позволяют сделать эффекты печати, чернил и дерева прямо в векторной графике.
- В эксперименте с рендерингом OKLCH через WebGL показывают, как обсчитывать современное цветовое пространство на GPU в реальном времени.
🎨 CSS и дизайн
CSS-математика получила константу infinity
В CSS-функциях вычислений уже поддерживаются e, pi, infinity и NaN. Adam Argyle показывает несколько практических применений infinity, а на Can I use можно проверить поддержку в браузерах. Константа особенно полезна в формулах, где нужно задать «верхнюю границу без потолка», а не подбирать огромные числа.
Треугольники и анимации без лишней разметки
conic-gradient() умеет больше, чем круговые диаграммы: с его помощью можно собирать треугольники, лучи и сегменты, а затем анимировать переходы. Ещё один приём — анимация входа и выхода элементов через sibling-index(): элементы списка получают разные задержки без ручных классов в JavaScript.
- CodePen 2.0 получил новый редактор и возможность публиковать работы на поддомене CodePen.
- Коллекция Stolen Buttons собирает интересные кнопки с реальных сайтов; расширение для браузера поможет пополнить такую подборку самостоятельно.
- scroll-mask добавляет Tailwind-утилиты для плавного затухания краёв прокручиваемого контейнера.
- Analyze Any Font по адресу страницы находит используемые шрифты, их начертания и похожие гарнитуры.
- CodeFronts — каталог готовых CSS-компонентов, генераторов, анимаций и шаблонов интерфейса.
- Библиотека edge-aura создаёт органичное свечение по краю экрана на Canvas 2D и предлагает компонент для React.
- Разбор zero-runtime CSS-in-JS в середине 2026 года сравнивает подходы, включая Linaria и dx-styles, в которых стили стараются собрать до запуска приложения.
Заходите в Telegram-канал
Там можно спокойно обсудить выпуск, принести свою ссылку, задать вопрос или просто отметить материал, который пригодился в работе
📦 JavaScript
Rust продолжает забирать работу у JavaScript-инструментов
Lee Robinson обновил обзор «Rust всё ещё съедает JavaScript». Всё больше знакомых инструментов переписывают критичные части на Rust: так уже устроены Rspack, Biome, Turbopack и недавняя переработка Bun на Rust. Речь не о замене JavaScript в браузере, а о более быстрых сборщиках, линтерах и рантаймах вокруг него.
Модули смогут откладывать выполнение
Предложение import defer перешло на третий этап TC39. Оно позволит заранее объявить зависимость, но выполнить её позже — когда код действительно понадобится. Это может дать более понятную альтернативу некоторым самодельным схемам ленивой загрузки.
- Await Dictionary (
Promise.allKeyed) тоже дошёл до Stage 3: он должен упростить ожидание нескольких промисов, собранных в объект. - htmx 4.0 необычно представил релиз через картридж для Game Boy, но сама библиотека по-прежнему развивает HTML-ориентированный подход к интерактивности.
- Ryan Dahl рассказал, что
deno compileможет получить режим на QuickJS вместо V8, чтобы создавать заметно меньшие бинарники; анонс появился в его публикации. - Oxlint стабилизировал linting с учётом типов: правила теперь могут опираться не только на текст файла, но и на информацию TypeScript.
- Domenic Denicola описал свою среду для агентной разработки: временные виртуальные машины, Tailscale и worktree. Это взгляд автора, который участвовал во внедрении Promise в JavaScript, создал jsdom и много других инструментов.
- Deno 2.9.4 — небольшое обновление альтернативного JavaScript-рантайма с исправлениями после серии релизов 2.9.
- Medium показал, как собрал динамическое оглавление статей по образцу расширения браузера.
- js1024 завершил ежегодное соревнование, где авторы делают JavaScript-демо размером до 1024 байт; все работы и исходники уже можно посмотреть.
⚛️ React и React Native
Что вообще считать управлением состоянием
Alex Russell в статье «The Absolute State of Management» провокационно утверждает, что React, Redux, MobX и Zustand в основном распространяют состояние, но не управляют временем, конфликтами и синхронизацией. В качестве более полного подхода он приводит CRDT и sync-движки. С этим не согласен мейнтейнер Redux — его ответ помогает увидеть другую сторону дискуссии.
Для практики вывод проще: локальные UI-данные и данные, которые редактируются на нескольких устройствах, — это разные задачи. Не стоит ожидать, что один store автоматически решит конфликты и офлайн-синхронизацию.
React получил обновления безопасности
React 19.2.8, 19.1.9 и 19.0.8 закрывают DoS-уязвимость в конечных точках server functions. Подробности опубликованы в security advisory. Проекты на затронутых ветках стоит обновить без ожидания следующего большого релиза.
TanStack отказался от RSC на своём сайте
Tanner Linsley рассказал, почему tanstack.com перестал использовать React Server Components. После уменьшения Markdown-стека и подсветки кода до 27 КБ обычный SSR дал меньше блокирующей работы и более понятный код. Это не приговор RSC, а хороший пример того, как архитектурное решение стоит проверять измерениями для конкретного сайта.
Вместе с этим TanStack провёл ребрендинг и обновил главную страницу.
Shopify уместил виджеты оформления заказа в 64 КБ
Shopify описал миграцию checkout-виджетов с React на Preact и веб-компоненты. Пять виджетов нужно было удержать в строгом лимите размера, поэтому команда выбрала более лёгкий рантайм и платформенные API. История хорошо показывает, когда стоимость каждого килобайта важнее привычного стека.
shadcn/uiдобавил возможность выбрать React Aria как основу компонентов через CLI, пресеты иshadcn/create, а также выпустил новый Toast-компонент.- Next.js выпустил июльское обновление безопасности в рамках обещанной регулярной программы security-релизов.
- В Next.js 16.3 Preview можно включить
experimental.useTypeScriptCli, чтобы тестировать TypeScript 7.0. - React Router просит обновиться до v7.18.0 или v8.3.0: команда опубликовала предупреждение о нескольких CVE, а в React Router 8.3 есть доработки нестабильных RSC-приложений с собственными entry-файлами.
- Next.js-подходы к RSC разбирают на примере социальной сети, а soak test для SPA предлагает многократно запускать сценарий Playwright в одном браузере, чтобы поймать утечки памяти.
- Паттерн композиции через props, composer и provider помогает выбрать между простыми параметрами компонента и контекстом; отдельно есть гид, как искать утечку памяти Next.js в production.
- TanStack Table v9 представил новую модель реактивности. Для React Native можно сравнить производительность библиотек анимации, собрать распознавание лиц на устройстве через VisionCamera или подключить Google через
@thoughtbot/react-native-social-auth. - Современный туториал по Storybook охватывает stories, interaction-тесты и CI.
Новые компоненты и библиотеки React
- React Colorful 5.8 — компактный выбор цвета; в релизе появилась поддержка Shadow DOM.
- Shadscan статически проверяет
shadcn-компоненты почти по 60 правилам доступности, состояния и композиции. - React on Rails 17 полностью поддерживает React 19 и связывает React с Ruby on Rails; подробности есть на сайте проекта. React Data Table 8.8 даёт сортировку, пагинацию и редактирование таблиц без большого UI-кита.
- Для мобильных интерфейсов вышли react-native-graph 1.3, react-native-nitro-sqlite 9.7 и VisionCamera 5.2, где появились управление зумом, экспозицией и фонарём в
SkiaCamera. - react-jsonschema-form 6.7 строит формы по JSON Schema, а react-intersection-observer 10.1 оборачивает Intersection Observer API в React-хуки.
- MDXEditor 4.1 — визуальный Markdown-редактор с демо; Jotai 3.0 Alpha готовит следующую версию менеджера атомарного состояния.
- TanStack Markdown и TanStack Highlight выросли из задачи уменьшить сайт: статья о новых библиотеках сравнивает их с прежней тяжёлой связкой на Shiki. Также вышла альфа TanStack Charts; похожую декларативную идею исследует Microsoft в Flint.
- OverflowGuard замечает, когда навигация или toolbar перестали помещаться, и даёт свернуть интерфейс без магических брейкпоинтов.
- MobX 7.0 убрал устаревшие возможности, всегда использует
Proxyдля observable-объектов и обновил React bindings. В Mantine 9.5 появились нативный выбор месяца/года и SunburstChart. - React Ace 15.0 добавил нативную ESM-сборку для редактора Ace, react-router-hono-server 3.0 быстро поднимает Hono-сервер для React Router 8, а Virtua 0.50 — виртуальный список и сетку для React, Vue, Solid, Svelte и Angular с демо.
- react-x11 1.2 экспериментирует с React-рендерером, который выводит интерфейс прямо на X11-сервер. Microcharts переносит идею компактных sparkline-графиков из книг Эдварда Тафти в React и публикует исходники на GitHub.
🛰️ Фреймворки и сборка
Octane компилирует React-подобные компоненты заранее
Octane — новый UI-фреймворк от автора Inferno. Он сохраняет знакомую модель компонентов на JSX/TSX, но строит реактивность во время компиляции и обходится без VDOM. Сравнение с React есть в документации различий, а в экосистеме уже появился экспериментальный Nextane: попытка совместить Pages Router Next.js и Octane по примеру Vinext.
Релизы фреймворков
- Ember 7.1 добавил новые helpers и операторы, а также обновил документацию.
- Nuxt 4.5.1 и 3.21.10 закрывают проблемы безопасности после крупного релиза Nuxt 4.5.
- Vue 3.6 RC2 приближает следующую стабильную версию, а Wasp 0.25 обновил full-stack стек с React и Node до Vite 8 и React Router 8.
- GTKX позволяет писать нативные Linux-приложения на React и GTK4; RC 1.0 уже доступен для тестирования.
- В статье о Cloudflare Workers, Hyperdrive и SvelteKit разбирают, как соединить SvelteKit с edge-средой и базой данных.
⚙️ Node.js
npm будет сканировать пакеты ещё до установки
npm начинает проверять пакеты на вредоносный код во время публикации. Поэтому новая версия может стать доступна с задержкой в несколько минут, а подозрительная — быть остановлена. Это уменьшает окно для атак, но не освобождает проект от проверки зависимостей и контроля прав публикации.
Полезен и практический гид «Как безопасно выпустить npm-пакет в 2026 году»: он объясняет staged и trusted publishing на примере автора PostCSS и nanoid. GitHub также описал, как нарушает цепочки supply-chain-атак, а Amazon связал несколько атак на debug, chalk и другие пакеты с одной северокорейской группой.
Обновления безопасности Node.js
Июльские security-релизы Node.js исправляют 11 CVE, среди которых проблемы HTTP/2 и обход allowlist в Permission Model. Обновления доступны как Node 26.5.1, 24.18.1 и 22.23.2; общее объявление — на странице security releases. Проекты на поддерживаемых ветках лучше обновить, даже если они не используют HTTP/2 напрямую.
Границы доверия важнее защиты Object.prototype
Matteo Collina объясняет, почему Node.js Core не может «закалить» Node против prototype pollution: если атакующий уже способен менять Object.prototype, уязвимость находится раньше — там, где недоверенный JSON превращается в объекты приложения. Материал помогает не ограничиваться поиском одного флага безопасности, а проверять входные данные на границе системы.
- Node приглашает протестировать обновлённую документацию API: она использует общую с nodejs.org дизайн-систему и получила поиск. Сам preview расположен на beta.docs.nodejs.org.
- Команда Bun намекает на скорый выход Bun 1.4 с большим шагом в совместимости с Node.js; анонс опубликован в социальной сети.
- OpenJS Foundation опубликовал рейтинг участников своих проектов за год — среди них Node.js, Express и Electron.
- Microsoft показал preview динамической проекции WinRT API для Node.js: она открывает нативные Windows API Node и Electron без C++-аддонов.
wranglerтеперь умеет запускать интеграционные тесты Workers из любого Node.js test runner.- pnpm 11.11–11.14 добавили управление релизами workspace и
doctorдля диагностики установки, а официальные codemod-миграции ESLint автоматизируют переходы с v8 на v9 и с v9 на v10. Сам ESLint 10.8 тоже уже вышел. - better-sqlite3 13 перешёл на N-API, поэтому готовые бинарники должны лучше работать между версиями Node и Electron. Execa 10 упростил запуск дочерних процессов; подробности есть в релизе.
- BullMQ подходит для фоновых задач в Node, а Testcontainers помогает поднимать реальные зависимости в интеграционных тестах.
- Разбор компрометации AsyncAPI в npm показывает, что угрозы не исчерпываются
postinstall; с этим перекликается исследование о 53 целях для slopsquatting у популярных LLM. - Материал о восьми серьёзных уязвимостях NodeBB напоминает о ценности независимой проверки, а запуск
npmв отдельном контейнере при работе с Claude — один из способов ограничить последствия экспериментов с зависимостями.
Инструменты и релизы Node.js
- scriptc от Vercel — AOT-компилятор TypeScript в нативные приложения, который стремится сохранить поведение Node «байт в байт». Исходники доступны в vercel-labs/scriptc; режим
--dynamicвстраивает JavaScript-движок для действительно динамичного кода. - tslog 5 переписан как ESM-only логгер без зависимостей для Node, Deno, Bun и браузера; есть middleware, транспорты и маскировка секретов. Код — в репозитории проекта.
- npm-check-updates 23 ищет версии новее диапазонов в
package.json, а релиз v23 стал быстрее и перешёл на чистый ESM. - jsdom 30 добавил
CSS.escape(),CSS.supports()и поддержкуbackground-position-x/y; crypto-random-string 6 ускорил генерацию криптографически стойких случайных строк. - Ada v4 ускоряет URL-парсер, совместимый с WHATWG, который использует Node. modern-tar 0.8 читает и пишет
tarпотоково без зависимостей, а tinyclip 1.0 даёт кросс-платформенный API буфера обмена. - Nub 0.5 добавил
nub init, а Nub 0.6 продолжил развитие единого набора инструментов, расширяющего Node; его концепция описана в статье Introducing Nub. - Вышли odiff 4.5 для SIMD-сравнения изображений, node-html-to-image 6.2 для создания картинок из HTML, find-my-way 9.7 — быстрый HTTP-роутер Fastify, Gitify 7 — Electron-приложение для уведомлений Git и Piscina 5.3 — пул worker threads.
- Verdaccio 6.8 и Verdaccio 6.9 обновляют самостоятельный приватный npm-регистр Verdaccio, а Prisma 7.9 — очередное обновление ORM.
🤖 ИИ и агентная разработка
Доступность становится частью контекста для агентов
A11Y.md предлагает протокол проверки доступности и постоянный контекст, который можно подключать к Cursor, Claude, Copilot и другим агентам. Идея в том, чтобы требования к семантике, клавиатурной навигации и контрасту не оставались разовой просьбой в чате, а жили рядом с проектом.
- Optio координирует агентов в задачах, повторяемых workflow и интеграциях с внешними сервисами.
- AI Interaction Atlas предлагает общий язык для проектирования ИИ-интерфейсов: действий человека, задач модели, данных, ограничений и точек взаимодействия.
- Multica позиционирует себя как open-source платформа управляемых агентов, Claude Code Tips собирает практические советы по Claude Code, а Pi Agent Harness объединяет LLM API, агентный цикл, TUI и CLI.
- Draw.io MCP Server даёт агентам возможность работать с диаграммами Draw.io, AionUI — приложение для совместной работы с несколькими coding-агентами, а Code Wiki превращает публичные репозитории в обновляемую документацию, созданную Gemini.
- В статье «How I Stopped Running Out of Tokens» описан подход к экономии контекста, включая инструмент rtk.
- Is AI Profitable Yet? собирает оценки расходов и выручки крупных ИИ-компаний, чтобы наглядно показать экономику отрасли.
⚒️ Инструменты и библиотеки
Карты, Canvas и математическая вёрстка
MapLibre GL JS 6 перешёл на ESM, требует WebGL 2 и получил заметные оптимизации. Перед обновлением полезно посмотреть release notes и гайд миграции с v5. Для необычных интерфейсов есть Canvas UI — framework-agnostic библиотека HTML-в-Canvas и WebGL-компонентов.
KaTeX быстро превращает формулы TeX в HTML без зависимостей; результат можно проверить в интерактивной песочнице. А Markdy предлагает отдельный язык для описания движения и анимаций, по аналогии с тем, как Mermaid описывает диаграммы.
Проверки, форматы и небольшие полезные пакеты
- Bruno 4 — открытый настольный клиент для запросов к HTTP API, а eslint-package-json ловит ошибки в
package.json: от неверных имён до сломанныхexports. - Slick 2 сделал классическую jQuery-карусель совместимой с jQuery 4; посмотреть её можно в демо и сравнить с анонсом jQuery 4.
- isomorphic-git 1.40 реализует Git на чистом JavaScript для Node и браузеров, Satori 0.29 преобразует JSX с HTML/CSS в SVG, а dompdf.js 2 создаёт многостраничные PDF прямо в браузере.
- hihtml проверяет невалидную и устаревшую HTML-разметку, минифицирует её и проверяет ссылки. wc-location-field — самостоятельный веб-компонент выбора адреса с OpenStreetMap, Google Maps и геолокацией браузера.
- React Text Highlight Component подсвечивает фрагменты текста через CSS Custom Highlight API и
TreeWalkerбез зависимостей. - BotKit помогает писать и самостоятельно размещать ботов для ActivityPub, а IP66 предоставляет ежедневно обновляемую базу IP-геолокации с ASN без лицензионных ключей.
- Yerd поднимает локальные PHP-сайты на доменах
.test, Pica — нативный менеджер шрифтов для macOS, а human.json предлагает протокол, которым авторы сайтов могут подтверждать, что контент создан людьми. - Solarch превращает архитектуру backend в живой граф с проверкой правил и генерацией кода. docfind — поисковый движок документов на Rust с поддержкой WebAssembly, полнотекстовым поиском и нечётким сопоставлением.
- Dither It позволяет экспериментировать с dithering для изображений прямо в браузере; примеры и идеи можно посмотреть в подборке Josh W. Comeau.
- Команда GitHub опубликовала короткий совет по усилению безопасности проекта.