Дайджест #64
🦊 Привет, это Фронти!
Я принёс свежий выпуск #64 и собрал главное за неделю ✨
В этом выпуске: браузеры готовят нативные превью изображений, DuckDB хранит полноценную базу прямо на клиенте, CSS продолжает избавляться от JavaScript, tinyjs собирает desktop-приложения легче 10 МБ, GitHub рендерит миллионные диффы за пределами React, а Transformers.js запускает всё больше AI-моделей через WebGPU.
🧪 HTML и платформа
- Атрибут previewsrc может передать браузеру загрузку и замену размытого превью изображения.
- DuckDB-Wasm вместе с OPFS превращает вкладку в приложение с полноценной локальной базой данных.
- Chrome 154 научился адаптировать размер iframe под его содержимое.
- Chrome, Edge и DevTools продолжают готовить веб к работе с AI-агентами через MCP и новые платформенные API.
🎨 CSS и дизайн
- Нативная вложенность, :has(), современные цвета и другие возможности CSS уже закрывают задачи, ради которых раньше подключали препроцессор или JavaScript.
- Scroll-triggered animations запускают эффекты в нужной точке прокрутки и дополняют scroll-driven animations.
- CSS-функция round() помогла победить дрожащие индикаторы загрузки в Safari.
- Хорошая дизайн-система — это ограниченные варианты и общие токены, а не компонент с сорока семью пропсами.
♿ Доступность и развитие
- Нативные элементы всё ещё дают семантику, клавиатурное управление и доступность дешевле любой самодельной имитации.
- Быстрая генерация интерфейса не заменяет знания веб-платформы и внимание к качеству.
- Разработчикам всё чаще приходится думать не только о реализации, но и о задаче пользователя и ценности продукта.
- Попытка молча доказать свою полезность на новой позиции может привести не к повышению, а к изоляции и выгоранию.
📦 JavaScript и фреймворки
- tinyjs собирает настольные JavaScript-приложения размером меньше 10 МБ и предлагает ещё одну лёгкую альтернативу Electron.
- Исследование V8 показало, почему криптографический JavaScript не становится безопасным только от обещания работать за постоянное время.
- Notion подробно рассказал, как CRDT помогает синхронизировать одновременное редактирование и офлайн-изменения.
- Solid 2.0 приближается к релизу, а VueUse 15 обновил большую коллекцию composable-функций.
⚛️ React и экосистема
- GitHub вынес рендеринг строк огромных pull request за пределы React, чтобы показывать тысячи файлов и миллионы изменений.
- TanStack Redact экспериментирует с компактной синхронной реализацией API React 19.3.
- React-Redux пробует сигналы, чтобы запускать только те селекторы, чьи данные действительно изменились.
- Next.js закрыл критическую уязвимость в ImageResponse, а @astrojs/react перешёл с Babel на Oxc.
⚙️ Node.js и npm
- Встроенные API Node.js уже могут заменить часть привычных зависимостей вроде axios, dotenv, nodemon и chalk.
- Node.js 26.10 добавил асинхронные util.debounce() и util.throttle() с поддержкой AbortSignal.
- GitHub Actions попрощался с Node 20, а будущий Node.js 27 — с официальными macOS-сборками для Intel.
- Stage-only токены npm позволяют CI подготовить релиз, оставив финальную публикацию человеку с 2FA.
- Новые инструменты для проверки зависимостей и защиты CI напоминают, что supply chain по-прежнему требует внимания.
🤖 ИИ и WebGPU
- Transformers.js 4.3 поддержал новые модели, структурированные ответы и WebGPU в Safari.
- Hugging Face открыла 207 WebGPU-ядер, из которых можно собирать собственные браузерные AI-runtime.
- Jev отвечает вероятностями и оценками вместо длинного текста — полезно для ранжирования, маршрутизации и выбора действий.
⚒️ Инструменты
- После четырёхкратного роста тестов Linear ускорила линтинг на 55% и снизила расходы на Vitest.
- Plotly.js 4 получил собственные TypeScript-типы, CSS Color 4 и новые векторные графики.
- Critical 9 переписал извлечение CSS первого экрана и добавил MCP-интеграцию.
- Rust-версия dev-сервера Vite вызвала спор о корректности бенчмарков и цене поддержки отдельных форков.
- Turborepo 2.11 экспериментирует с Rust, Python и Go, а ESLint 10.11 ускоряет запуск и линтинг.
🦊 Лисьи шутки недели:
GitHub вынес миллионные диффы за пределы React. Где-то React-компонент уже обновляет резюме: «Ушёл по причине несовпадения архитектурных взглядов на один миллион строк».
Node.js получил встроенные debounce и throttle. Ещё пара релизов — и node_modules наконец можно будет переносить без грузового лифта.
Разработчики ускорили Vite с помощью Rust, а всё сэкономленное время немедленно потратили на спор о том, правильно ли они его ускорили.
Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-64/
frontend digest
digest
html
css
javascript
typescript
node.js
react