Серия видео про микрофронтенды
Автор популярного канала про фронтенд АйТи Синяк опубликовал уже третье видео, где последовательно разбирает, что такое микрофронтенды, какие есть подходы и в каких случаях это действительно оправдано.
Если интересует тема — рекомендую посмотреть плейлист 👇
Микрофронтенды — это базовый минимум
Независимый хостинг, Cache-Control, mf-manifest.json
Строим первое приложение с нуля
Весь плейлист здесь (пополняется)
Подписывайтесь на мой Telegram канал
Автор популярного канала про фронтенд АйТи Синяк опубликовал уже третье видео, где последовательно разбирает, что такое микрофронтенды, какие есть подходы и в каких случаях это действительно оправдано.
Если интересует тема — рекомендую посмотреть плейлист 👇
Микрофронтенды — это базовый минимум
Независимый хостинг, Cache-Control, mf-manifest.json
Строим первое приложение с нуля
Весь плейлист здесь (пополняется)
Подписывайтесь на мой Telegram канал
Bippy — React DevTools для взрослых 😈
Bippy — это тулкит, который притворяется React DevTools и через
Проще говоря — это способ «залезть внутрь React» без форка React и без хаков в коде приложения.
Что умеет:
🧠 доступ к fiber tree (props, state, context компонентов)
🎣 хуки на события рендера (
🌳 обход дерева fibers удобными утилитами (
🔥 Самое интересное
Ты можешь перехватывать каждый commit React и проходиться по fiber-дереву, получая полный снапшот приложения:
какие компоненты есть, какие у них props/state, что реально перерендерилось.
То есть это уровень ниже любых devtools — фактически свой runtime-инспектор React.
Когда это нужно
🛠 Если делаешь инструменты
Например, тот же react-scan построен поверх Bippy.
Если хочешь писать свои devtools, анализаторы рендеров или runtime-инспекции — это база.
🔬 Исследования и сложные кейсы
Когда нужно понять, как реально работает React под капотом, или достать данные, которые обычным способом недоступны.
⚠️ Но есть нюанс
Это прямой хак в React internals, которые могут меняться в любой момент. Авторы сами предупреждают, что это может ломать приложения и не подходит для продакшена.
Если ты не уверен, зачем тебе это — скорее всего, тебе это не нужно. 😄
Подробности
Подписывайтесь на мой Telegram канал
Bippy — это тулкит, который притворяется React DevTools и через
__REACT_DEVTOOLS_GLOBAL_HOOK__ перехватывает события рендера, позволяя работать с fiber напрямую.Проще говоря — это способ «залезть внутрь React» без форка React и без хаков в коде приложения.
Что умеет:
🧠 доступ к fiber tree (props, state, context компонентов)
🎣 хуки на события рендера (
onCommitFiberRoot и др.)🌳 обход дерева fibers удобными утилитами (
traverseFiber, traverseRenderedFibers)🔥 Самое интересное
Ты можешь перехватывать каждый commit React и проходиться по fiber-дереву, получая полный снапшот приложения:
какие компоненты есть, какие у них props/state, что реально перерендерилось.
То есть это уровень ниже любых devtools — фактически свой runtime-инспектор React.
Когда это нужно
🛠 Если делаешь инструменты
Например, тот же react-scan построен поверх Bippy.
Если хочешь писать свои devtools, анализаторы рендеров или runtime-инспекции — это база.
🔬 Исследования и сложные кейсы
Когда нужно понять, как реально работает React под капотом, или достать данные, которые обычным способом недоступны.
⚠️ Но есть нюанс
Это прямой хак в React internals, которые могут меняться в любой момент. Авторы сами предупреждают, что это может ломать приложения и не подходит для продакшена.
Если ты не уверен, зачем тебе это — скорее всего, тебе это не нужно. 😄
Подробности
Подписывайтесь на мой Telegram канал
Тебе не нужен
Dominik Dorfmeister в своей статье разбирает, почему атрибут
Главная мысль: если для теста тебе нужен
👉 Вместо этого автор предлагает:
• искать элементы по роли (
• использовать доступные имена (
• строить UI так, чтобы он был понятен не только глазу, но и ассистивным технологиям
либо плохой семантики, либо неудобного UI.
💡 Хороший тест = почти как пользовательский сценарий
Если тест читается как «найди кнопку с текстом Submit» — ты на правильном пути.
Читать
Подписывайтесь на мой Telegram канал
data-testid для тестированияDominik Dorfmeister в своей статье разбирает, почему атрибут
data-testid — это признак плохого accessibility и проблем с интерфейсом.Главная мысль: если для теста тебе нужен
testid, значит элемент сложно найти так, как это делает пользователь. А пользователь (и скринридер) ориентируется не на data-testid, а на роли, текст и доступные имена.👉 Вместо этого автор предлагает:
• искать элементы по роли (
getByRole)• использовать доступные имена (
aria-label, текст)• строить UI так, чтобы он был понятен не только глазу, но и ассистивным технологиям
data-testid — не зло само по себе. Но его частое использование — это симптом:либо плохой семантики, либо неудобного UI.
💡 Хороший тест = почти как пользовательский сценарий
Если тест читается как «найди кнопку с текстом Submit» — ты на правильном пути.
Читать
Подписывайтесь на мой Telegram канал
Называйте свои эффекты
Небольшая, но очень полезная мысль из статьи: эффекты в React стоит называть как обычные функции.
Автор предлагает смотреть на
вместо:
Почему это важно:
👀 код становится более читаемым
🧠 проще понять, что именно делает эффект
🔁 легче переиспользовать и тестировать
🐞 в стектрейсах видно имя функции, а не анонимный коллбек
По сути, это маленький шаг от «анонимных сайд-эффектов» к более декларативному коду.
Иногда такие мелкие практики дают больше, чем очередной новый хук.
Читать
Подписывайтесь на мой Telegram канал
Небольшая, но очень полезная мысль из статьи: эффекты в React стоит называть как обычные функции.
Автор предлагает смотреть на
useEffect не как на «магический хук», а как на именованное действие. То есть выносить логику и давать ей осмысленное имя:useEffect(function openSocket() {
// создаем web socket
}, [deps])вместо:
useEffect(() => {
// какая-то магия 🪄
}, [deps])Почему это важно:
👀 код становится более читаемым
🧠 проще понять, что именно делает эффект
🔁 легче переиспользовать и тестировать
🐞 в стектрейсах видно имя функции, а не анонимный коллбек
По сути, это маленький шаг от «анонимных сайд-эффектов» к более декларативному коду.
Иногда такие мелкие практики дают больше, чем очередной новый хук.
Читать
Подписывайтесь на мой Telegram канал
🧠 В браузеры добавили AI.css
Новый стандарт, который «дописывает» стили за тебя 👀
Типа такого:
И браузер сам решает:
Работа с текстом:
Под капотом он настраивает
Адаптив:
Без медиа-запросов, просто «сделай нормально на всех экранах».
Цвета:
И тебе сразу контраст, hover-состояния и нормальная читаемость.
Самое опасное:
После этого форма внезапно становится удобной, валидирует поля как надо и не бесит пользователей.
Скоро добавят "
Новый стандарт, который «дописывает» стили за тебя 👀
Типа такого:
.card {
layout: auto;
spacing: comfortable;
}И браузер сам решает:
grid это, flex или вообще что-то третье.Работа с текстом:
.article {
typography: readable;
}Под капотом он настраивает
line-height, max-width, размеры шрифта — как будто ты реально подумал об этом заранее.Адаптив:
.container {
adapt: fluid;
}Без медиа-запросов, просто «сделай нормально на всех экранах».
Цвета:
.button {
color-scheme: accessible primary;
}И тебе сразу контраст, hover-состояния и нормальная читаемость.
Самое опасное:
.form {
ux: good;
}После этого форма внезапно становится удобной, валидирует поля как надо и не бесит пользователей.
Скоро добавят "
performance: fast", чтобы сайт сразу грузился быстро, даже если ты не старался 😏🚨 Axios взломали
В npm-пакет Axios попал вредоносный код — классическая supply chain атака.
📦 Заражённые версии:
—
—
⏱️ Они прожили всего ~2–3 часа, но этого хватило, чтобы попасть в CI/CD и прод.
Если ты сделал
🧩 Внутри был не сам код axios, а «левая» зависимость
🛠 Что делать:
— проверить lockfile на
— если были → считать окружение скомпрометированным (локалка/CI)
— удалить
— срочно ротировать ВСЕ секреты (npm, GitHub, AWS, env и т.д.)
— проверить CI/CD (если там был install в это время)
— зафиксировать версии на безопасные (
— использовать строго зафиксированные версии зависимостей (без плавающих диапазонов)
💡 И да — про зависимости
Мы часто тащим библиотеки просто по привычке, хотя:
— HTTP → уже есть
— базовые вещи пишутся за пару минут
— веб-стандарты давно закрывают кучу кейсов
Каждая зависимость — это:
— ⚠️ потенциальная точка атаки
— 📦 чужой код в твоём проде
— 🔗 риск supply chain атак, как эта
Иногда дешевле написать своё, чем потом разгребать последствия.
Подробнее
Подписывайтесь на мой Telegram канал
В npm-пакет Axios попал вредоносный код — классическая supply chain атака.
📦 Заражённые версии:
—
1.14.1—
0.30.4⏱️ Они прожили всего ~2–3 часа, но этого хватило, чтобы попасть в CI/CD и прод.
Если ты сделал
npm install в 00:21 – 03:15 по UTC, то твое окружение считается скомпрометированным.🧩 Внутри был не сам код axios, а «левая» зависимость
plain-crypto-js, которая через postinstall ставила троян.🛠 Что делать:
— проверить lockfile на
axios@1.14.1 или 0.30.4— если были → считать окружение скомпрометированным (локалка/CI)
— удалить
node_modules + lockfile и пересобрать проект— срочно ротировать ВСЕ секреты (npm, GitHub, AWS, env и т.д.)
— проверить CI/CD (если там был install в это время)
— зафиксировать версии на безопасные (
1.14.0 / 0.30.3)— использовать строго зафиксированные версии зависимостей (без плавающих диапазонов)
💡 И да — про зависимости
Мы часто тащим библиотеки просто по привычке, хотя:
— HTTP → уже есть
fetch— базовые вещи пишутся за пару минут
— веб-стандарты давно закрывают кучу кейсов
Каждая зависимость — это:
— ⚠️ потенциальная точка атаки
— 📦 чужой код в твоём проде
— 🔗 риск supply chain атак, как эта
Иногда дешевле написать своё, чем потом разгребать последствия.
Подробнее
Подписывайтесь на мой Telegram канал
Pretext — layout текста без браузера 🤯
Cheng Lou сделал deps-free библиотеку для мультистрочного измерения текста и его layout’а без участия браузера.
Что это даёт?
Ты можешь получить размеры текста, строки и переносы на основе заданной ширины и шрифта.
Работает с любыми языками, шрифтами и даже эмодзи 👍
И главное — все расчёты происходят в JS, без DOM, а значит без любимых браузером reflow при каждом измерении.
💡 Что можно сделать
— Идеальные chat bubbles под конкретный текст, без лишнего воздуха.
Пример.
— Обтекание текста вокруг динамических объектов. Пример. (отдельно стоит отметить перфоманс — ~19ms на текст из 500 слов)
— Рендер текста в Canvas, SVG и даже на сервере.
Выглядит нишево, но на самом деле это про контроль:
ты сам управляешь layout’ом текста, а не браузер за тебя.
Репозиторий
Демки
Подписывайтесь на мой Telegram канал
Cheng Lou сделал deps-free библиотеку для мультистрочного измерения текста и его layout’а без участия браузера.
Что это даёт?
Ты можешь получить размеры текста, строки и переносы на основе заданной ширины и шрифта.
Работает с любыми языками, шрифтами и даже эмодзи 👍
И главное — все расчёты происходят в JS, без DOM, а значит без любимых браузером reflow при каждом измерении.
💡 Что можно сделать
— Идеальные chat bubbles под конкретный текст, без лишнего воздуха.
Пример.
— Обтекание текста вокруг динамических объектов. Пример. (отдельно стоит отметить перфоманс — ~19ms на текст из 500 слов)
— Рендер текста в Canvas, SVG и даже на сервере.
Выглядит нишево, но на самом деле это про контроль:
ты сам управляешь layout’ом текста, а не браузер за тебя.
Репозиторий
Демки
Подписывайтесь на мой Telegram канал
Встречайте Cursor 3 🤖
Разработчики Cursor представили третью версию своего редактора.
Главное нововведение — Agents Window: теперь вся работа с агентами вынесена в отдельное окно.
Появилась возможность запускать несколько агентов параллельно, а также стало удобнее переключаться между локальной и облачной средой.
Что ещё:
🧠 Улучшили понимание кода — агент глубже погружается в проект
🌐 Встроенный браузер — теперь агент может сам «покликать» по интерфейсу
🛠 Новый интерфейс для менеджмента PR
💭 Впечатление:
Если вы использовали Cursor просто как редактор + AI — для вас изменилось не так много.
А вот если заходили в сторону agent-first подхода, то апдейт получился очень жирным — точно стоит попробовать.
Читать анонс
Подписывайтесь на мой Telegram канал
Разработчики Cursor представили третью версию своего редактора.
Главное нововведение — Agents Window: теперь вся работа с агентами вынесена в отдельное окно.
Появилась возможность запускать несколько агентов параллельно, а также стало удобнее переключаться между локальной и облачной средой.
Что ещё:
🧠 Улучшили понимание кода — агент глубже погружается в проект
🌐 Встроенный браузер — теперь агент может сам «покликать» по интерфейсу
🛠 Новый интерфейс для менеджмента PR
💭 Впечатление:
Если вы использовали Cursor просто как редактор + AI — для вас изменилось не так много.
А вот если заходили в сторону agent-first подхода, то апдейт получился очень жирным — точно стоит попробовать.
Читать анонс
Подписывайтесь на мой Telegram канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Наткнулся на прикольную игру — CSS or BS
Суть простая: тебе показывают «CSS-свойство», а ты должен угадать — это реально существует или это полная дичь.
И вот тут начинаешь понимать, что в CSS за последние годы появилось СТОЛЬКО всего, что уже реально сложно отличить правду от выдумки 😄
Короче, отличный способ проверить, насколько ты вообще в теме современного CSS.
Скидывайте свои результаты в комменты 👇
Играть
Подписывайтесь на мой Telegram канал
Суть простая: тебе показывают «CSS-свойство», а ты должен угадать — это реально существует или это полная дичь.
И вот тут начинаешь понимать, что в CSS за последние годы появилось СТОЛЬКО всего, что уже реально сложно отличить правду от выдумки 😄
Короче, отличный способ проверить, насколько ты вообще в теме современного CSS.
Скидывайте свои результаты в комменты 👇
Играть
Подписывайтесь на мой Telegram канал
Субботнее чтиво ☕️
Как одна инженерная команда протащила фичу в веб-стандарт
Squarespace и веб-стандарты: история о том, как ребята добавили
В статье Squarespace инженер Скотт Джел рассказывает весь путь:
— от идеи и первых обсуждений
— до работы с WHATWG
— написания Web Platform Tests
— и коллаборации с командами Mozilla, Apple и Chromium
📅 В итоге — фича стала частью стандарта 23 марта 2026.
Почему это интересно:
— хороший пример, как реально появляются веб-стандарты (а не «где-то там решили»)
— много про процесс: обсуждения, компромиссы, тесты
— и немного про perf, который мы в итоге получаем «бесплатно»
💡 Ну и да — lazy loading теперь не только для
Если хочется лёгкого, но полезного чтения про внутреннюю кухню веба — очень рекомендую 👇
Читать
Подписывайтесь на мой Telegram канал
Как одна инженерная команда протащила фичу в веб-стандарт
Squarespace и веб-стандарты: история о том, как ребята добавили
loading="lazy" для <video> и <audio> в HTML.В статье Squarespace инженер Скотт Джел рассказывает весь путь:
— от идеи и первых обсуждений
— до работы с WHATWG
— написания Web Platform Tests
— и коллаборации с командами Mozilla, Apple и Chromium
📅 В итоге — фича стала частью стандарта 23 марта 2026.
Почему это интересно:
— хороший пример, как реально появляются веб-стандарты (а не «где-то там решили»)
— много про процесс: обсуждения, компромиссы, тесты
— и немного про perf, который мы в итоге получаем «бесплатно»
💡 Ну и да — lazy loading теперь не только для
<img> и <iframe>Если хочется лёгкого, но полезного чтения про внутреннюю кухню веба — очень рекомендую 👇
Читать
Подписывайтесь на мой Telegram канал
Cloudflare представили «убийцу» WordPress ⚡️
Команда Cloudflare снова напрягла своих AI-агентов — и за ~2 месяца собрала новый проект, нацеленный сместить WordPress с пьедестала самой популярной CMS. Встречайте — EmDash.
Что внутри:
— TypeScript
— Serverless-архитектура
— Изолированные плагины на хуках → меньше рисков безопасности (в отличие от WordPress, где плагины — частый источник уязвимостей)
— Фронт на Astro — один из лучших вариантов для content-driven сайтов
Проект полностью open-source и уже доступен на GitHub.
WordPress во многом стал таким популярным именно из-за своей безумной гибкости — из него можно собрать что угодно (вспоминаем WooCommerce).
Вопрос: сможет ли EmDash с новым подходом дать такую же гибкость?
С одной стороны — строгая архитектура и изоляция.
С другой — TypeScript, open-source и явный упор на AI-агентов, которым дали весь тулчейн для расширения системы.
Посмотрим, что из этого вырастет 👀
Читать анонс
GitHub
Подписывайтесь на мой Telegram канал
Команда Cloudflare снова напрягла своих AI-агентов — и за ~2 месяца собрала новый проект, нацеленный сместить WordPress с пьедестала самой популярной CMS. Встречайте — EmDash.
Что внутри:
— TypeScript
— Serverless-архитектура
— Изолированные плагины на хуках → меньше рисков безопасности (в отличие от WordPress, где плагины — частый источник уязвимостей)
— Фронт на Astro — один из лучших вариантов для content-driven сайтов
Проект полностью open-source и уже доступен на GitHub.
WordPress во многом стал таким популярным именно из-за своей безумной гибкости — из него можно собрать что угодно (вспоминаем WooCommerce).
Вопрос: сможет ли EmDash с новым подходом дать такую же гибкость?
С одной стороны — строгая архитектура и изоляция.
С другой — TypeScript, open-source и явный упор на AI-агентов, которым дали весь тулчейн для расширения системы.
Посмотрим, что из этого вырастет 👀
Читать анонс
GitHub
Подписывайтесь на мой Telegram канал
Великое расширение CSS 🚀
Павел Лаптев разобрал, как новые возможности CSS постепенно заменяют JavaScript-библиотеки.
В статье — прямые сравнения: что раньше делали через JS, теперь можно реализовать нативно. Причём без костылей и с нормальной читаемостью кода.
📦 Итог на практике:
– минус ~300 KB бандла
– лучше Core Web Vitals
– меньше зависимостей и боли с ними
Главная мысль: CSS уже давно не «про стили», а про полноценную логику интерфейса.
Если вам не критична поддержка старых браузеров — отличный повод пересмотреть стек и повыкидывать лишние библиотеки 💡
Читать
Подписывайтесь на мой Telegram канал
Павел Лаптев разобрал, как новые возможности CSS постепенно заменяют JavaScript-библиотеки.
В статье — прямые сравнения: что раньше делали через JS, теперь можно реализовать нативно. Причём без костылей и с нормальной читаемостью кода.
📦 Итог на практике:
– минус ~300 KB бандла
– лучше Core Web Vitals
– меньше зависимостей и боли с ними
Главная мысль: CSS уже давно не «про стили», а про полноценную логику интерфейса.
Если вам не критична поддержка старых браузеров — отличный повод пересмотреть стек и повыкидывать лишние библиотеки 💡
Читать
Подписывайтесь на мой Telegram канал
Легкая библиотека для создания веб-компонентов ⚡️
Ариэль Салминен представляет Elena — open-source библиотеку для создания веб-компонентов, которые сначала работают на чистом HTML и CSS, а затем гидратация с JavaScript'ом.
Elena пытается решить типичные боли веб-компонентов: сдвиги layout’а, флешинга, проблемы с доступностью и сложности с SSR.
При этом вес — всего ~2.6 кб.
Основные фичи:
🧩 Progressive enhancement из коробки — сначала HTML/CSS, потом JS
⚡️ Минимальный runtime (~2.6 кб)
💤 Ленивая гидратация (можно контролировать, когда компонент «оживает»)
🖥 SSR-friendly — корректно работает с серверным рендерингом
🎯 Фокус на доступности (a11y)
🧱 Чистые Web Components без обвязки фреймворками
Веб-компоненты становятся всё привлекательнее: порог входа снижается, старые проблемы постепенно решаются.
А у вас был опыт построения приложений полностью на веб-компонентах? Как ощущения после React/Vue — норм или боль?
Читать пост
Сайт
Подписывайтесь на мой Telegram канал
Ариэль Салминен представляет Elena — open-source библиотеку для создания веб-компонентов, которые сначала работают на чистом HTML и CSS, а затем гидратация с JavaScript'ом.
Elena пытается решить типичные боли веб-компонентов: сдвиги layout’а, флешинга, проблемы с доступностью и сложности с SSR.
При этом вес — всего ~2.6 кб.
Основные фичи:
🧩 Progressive enhancement из коробки — сначала HTML/CSS, потом JS
⚡️ Минимальный runtime (~2.6 кб)
💤 Ленивая гидратация (можно контролировать, когда компонент «оживает»)
🖥 SSR-friendly — корректно работает с серверным рендерингом
🎯 Фокус на доступности (a11y)
🧱 Чистые Web Components без обвязки фреймворками
Веб-компоненты становятся всё привлекательнее: порог входа снижается, старые проблемы постепенно решаются.
А у вас был опыт построения приложений полностью на веб-компонентах? Как ощущения после React/Vue — норм или боль?
Читать пост
Сайт
Подписывайтесь на мой Telegram канал
…продолжаем про веб-компоненты
Как MDN Web Docs переехал с React на Lit
В прошлом году наш любимый портал MDN полностью переписал фронтенд на веб-компоненты.
В статье Leo McArdle подробно рассказывает о проделанной работе.
Что в итоге получили:
⚡️ Среда разработки стартует за ~2 секунды вместо ~2 минут
📦 Меньше зависимостей — отказ от тяжелого React-стека
🧩 Переход на нативные веб-компоненты через Lit
🚀 Упростили сборку и дев-сервер (меньше магии, быстрее дебаг)
🧼 Чище архитектура — компоненты ближе к платформе
🔁 Проще переиспользование компонентов между проектами
📉 Снижение сложности поддержки и обновлений
🌍 Улучшения в производительности и загрузке страниц
Читать
Подписывайтесь на мой Telegram канал
Как MDN Web Docs переехал с React на Lit
В прошлом году наш любимый портал MDN полностью переписал фронтенд на веб-компоненты.
В статье Leo McArdle подробно рассказывает о проделанной работе.
Что в итоге получили:
⚡️ Среда разработки стартует за ~2 секунды вместо ~2 минут
📦 Меньше зависимостей — отказ от тяжелого React-стека
🧩 Переход на нативные веб-компоненты через Lit
🚀 Упростили сборку и дев-сервер (меньше магии, быстрее дебаг)
🧼 Чище архитектура — компоненты ближе к платформе
🔁 Проще переиспользование компонентов между проектами
📉 Снижение сложности поддержки и обновлений
🌍 Улучшения в производительности и загрузке страниц
Читать
Подписывайтесь на мой Telegram канал
CSS Containment — недооценённый буст производительности 🚀
Наткнулся на отличную статью от CSS Wizardry про
В результате браузер может сильно оптимизировать перерасчёты layout, paint и style.
Автор разбирает основные значения:
Особенно полезно для:
— виджетов
— сложных компонентов
— виртуализированных списков
— любых изолированных UI-блоков
💡 По сути — это способ вручную подсказать браузеру границы влияния, чтобы он не пересчитывал лишнее.
Но есть нюансы:
— можно случайно сломать layout
—
— не всё можно безопасно заизолировать
В статье много примеров и объяснений, где это реально даёт профит.
Читать
Подписывайтесь на мой Telegram канал
Наткнулся на отличную статью от CSS Wizardry про
contain — и кажется, многие до сих пор недооценивают эту штуку.contain позволяет изолировать часть DOM и сказать браузеру: «всё, что происходит внутри — не влияет на остальную страницу».В результате браузер может сильно оптимизировать перерасчёты layout, paint и style.
Автор разбирает основные значения:
contain: layout — изоляция layoutcontain: paint — ничего не «вылезает» за границыcontain: size — элемент не влияет на размеры родителяcontain: content — сразу всё вместе (самый частый кейс)Особенно полезно для:
— виджетов
— сложных компонентов
— виртуализированных списков
— любых изолированных UI-блоков
💡 По сути — это способ вручную подсказать браузеру границы влияния, чтобы он не пересчитывал лишнее.
Но есть нюансы:
— можно случайно сломать layout
—
size ведёт себя не всегда очевидно— не всё можно безопасно заизолировать
В статье много примеров и объяснений, где это реально даёт профит.
Читать
Подписывайтесь на мой Telegram канал
IPv8 — новый интернет?
В IETF появился драфт IPv8 draft — и на бумаге выглядит как мечта.
Если коротко: авторы предлагают просто добавить ещё блоков к IPv4 (почему раньше до этого не додумались — хороший вопрос).
Структура такая:
То есть было:
Без шестнадцатеричной магии и
Идея в том, что IPv4 становится подмножеством IPv8, а значит, внедрение должно быть менее болезненным, чем с IPv6.
Но мы уже видели, как «должно быть» работает в реальности — IPv6 до сих пор внедряют спустя десятилетия 🙂
Плюс в драфте есть и другие изменения:
— криптография
— аутентификация
— более гибкая адресация
Я не очень силён в сетях, так что за деталями лучше сразу идти в первоисточник 👇
Читать драфт
Подписывайтесь на мой Telegram канал
В IETF появился драфт IPv8 draft — и на бумаге выглядит как мечта.
Если коротко: авторы предлагают просто добавить ещё блоков к IPv4 (почему раньше до этого не додумались — хороший вопрос).
Структура такая:
r.r.r.r.n.n.n.n
r.r.r.r — 32-bit ASN роутинг-префикс
n.n.n.n — 32-bit адрес хоста (по сути тот же IPv4)
То есть было:
192.168.0.1 → станет что-то вроде 10.20.30.40.192.168.0.1Без шестнадцатеричной магии и
::, как в IPv6.Идея в том, что IPv4 становится подмножеством IPv8, а значит, внедрение должно быть менее болезненным, чем с IPv6.
Но мы уже видели, как «должно быть» работает в реальности — IPv6 до сих пор внедряют спустя десятилетия 🙂
Плюс в драфте есть и другие изменения:
— криптография
— аутентификация
— более гибкая адресация
Я не очень силён в сетях, так что за деталями лучше сразу идти в первоисточник 👇
Читать драфт
Подписывайтесь на мой Telegram канал
Нативный masonry почти здесь
Появился Masonry Grid Lanes — веб-компонент с “native-first” подходом: сначала пытается использовать нативный masonry (через Grid Lanes API), а если браузер не поддерживает — аккуратно фоллбечится на JS.
Что по факту:
— Проверяет поддержку в браузере
— Есть натив → используем его
— Нет → включается JS-раскладка
— Снаружи — просто кастомный элемент
— Есть поддержка Pretex
Хороший пример прогрессивного улучшения: пишем как будто платформа уже умеет, но не ломаемся там, где она ещё не догнала.
Подробнее
Подписывайтесь на мой Telegram канал
Появился Masonry Grid Lanes — веб-компонент с “native-first” подходом: сначала пытается использовать нативный masonry (через Grid Lanes API), а если браузер не поддерживает — аккуратно фоллбечится на JS.
Что по факту:
— Проверяет поддержку в браузере
— Есть натив → используем его
— Нет → включается JS-раскладка
— Снаружи — просто кастомный элемент
— Есть поддержка Pretex
<masonry-grid-lanes
min-column-width="280"
gap="16"
text-metrics="pretext"
>
<div>...</div>
<div>...</div>
</masonry-grid-lanes>
Хороший пример прогрессивного улучшения: пишем как будто платформа уже умеет, но не ломаемся там, где она ещё не догнала.
Подробнее
Подписывайтесь на мой Telegram канал
Прелоад изображений: не всё так очевидно 🖼
Наткнулся на хороший разбор про способы сказать браузеру «эта картинка важная».
Коротко по вариантам:
1. Обычный
Браузер сам решает приоритет. Часто — достаточно хорошо.
2. Атрибут
Откладывает загрузку.
Хорошо для всего, что ниже изначального viewport.
Плохо, если случайно повесить на hero → замедлите LCP.
3. Атрибут
Даёт явный сигнал приоритета:
👉 В большинстве случаев — лучшее решение для LCP-картинок
Без лишней магии и дублей.
4. Тэг
Жёстко форсит раннюю загрузку:
Но:
— легко сделать двойную загрузку
— можно забить сеть и сломать приоритеты
— требует аккуратности (типы,
👉 Использовать точечно
Для responsive-картинок следует использовать атрибуты
👉 Иначе браузер может скачать не тот размер
5. Скрытый
👉 Браузер всё равно начнёт загрузку.
Но это скорее костыль — приоритет будет неочевидный, и читаемость страдает.
6.
👉 Вот тут нюанс:
браузер узнаёт о такой картинке только после парсинга CSS,
поэтому она часто грузится позже, чем
7. Хаки с background + preload / скрытые элементы
Типа прелоадить background через
👉 Всё это работает, но выглядит как обход ограничений, а не нормальный путь.
8. JS через
👉 Старый способ, который хуже дружит с приоритетами браузера.
———
Главный вывод из статьи:
— способов «заставить» браузер грузить картинку раньше — много
— но большинство из них — костыли или edge-case решения
👉 Практика:
— для hero →
— для background → иногда оправдан
— всё остальное — только если понимаешь последствия
TL;DR:
Не нужно изобретать схемы с hidden div и хаками — в 90% случаев есть более простой и нативный способ.
Читать статью
Подписывайтесь на мой Telegram канал
Наткнулся на хороший разбор про способы сказать браузеру «эта картинка важная».
Коротко по вариантам:
1. Обычный
<img />Браузер сам решает приоритет. Часто — достаточно хорошо.
2. Атрибут
loading="lazy"Откладывает загрузку.
Хорошо для всего, что ниже изначального viewport.
Плохо, если случайно повесить на hero → замедлите LCP.
3. Атрибут
fetchpriority="high" (самый практичный вариант)Даёт явный сигнал приоритета:
<img src="/hero.jpg" fetchpriority="high" alt="" />
👉 В большинстве случаев — лучшее решение для LCP-картинок
Без лишней магии и дублей.
4. Тэг
<link rel="preload" as="image"> в <head />Жёстко форсит раннюю загрузку:
<link rel="preload" as="image" href="/hero.jpg">
Но:
— легко сделать двойную загрузку
— можно забить сеть и сломать приоритеты
— требует аккуратности (типы,
imagesrcset, sizes)👉 Использовать точечно
Для responsive-картинок следует использовать атрибуты
rel="preload", imagesrcset и imagesizes.<link
rel="preload"
as="image"
imagesrcset="hero-800.jpg 800w, hero-1600.jpg 1600w"
imagesizes="100vw"
/>
👉 Иначе браузер может скачать не тот размер
5. Скрытый
<img /> или display: none<div style="display:none">
<img src="/hero.jpg" alt="">
</div>
👉 Браузер всё равно начнёт загрузку.
Но это скорее костыль — приоритет будет неочевидный, и читаемость страдает.
6.
background-image в CSS.hero {
background-image: url('/hero.jpg');
}👉 Вот тут нюанс:
браузер узнаёт о такой картинке только после парсинга CSS,
поэтому она часто грузится позже, чем
<img />.7. Хаки с background + preload / скрытые элементы
Типа прелоадить background через
<link /> или подсовывать невидимый <img />.👉 Всё это работает, но выглядит как обход ограничений, а не нормальный путь.
8. JS через
new Image()const img = new Image()
img.src = '/hero.jpg'
👉 Старый способ, который хуже дружит с приоритетами браузера.
———
Главный вывод из статьи:
— способов «заставить» браузер грузить картинку раньше — много
— но большинство из них — костыли или edge-case решения
👉 Практика:
— для hero →
fetchpriority="high"— для background → иногда оправдан
preload— всё остальное — только если понимаешь последствия
TL;DR:
Не нужно изобретать схемы с hidden div и хаками — в 90% случаев есть более простой и нативный способ.
Читать статью
Подписывайтесь на мой Telegram канал
Zed 1.0 — быстрый редактор на Rust 🚀
Ребята из Zed Industries выкатили Zed 1.0 — первый стабильный релиз своего редактора кода.
Вообще, интересный тренд: всё больше вещей утекает из JS/TS в Rust. Сначала туда переехали линтеры, форматтеры и прочие тулзы (и дали нам ощутимый буст по скорости), а теперь и полноценные редакторы. Zed — как раз из этой новой волны.
Редактор с самого начала делался с упором на производительность и мультиплеерность. В итоге — очень быстрый, отзывчивый, активно развивается и уже собрал вокруг себя внушительное комьюнити.
Что завезли к 1.0:
⚡️ Мгновенная работа с большими проектами — всё благодаря Rust и продуманной архитектуре
👥 Коллаборация в реальном времени — можно прямо в редакторе работать вместе с другими
🤖 AI — встроенный ассистент для кода (подсказки, генерация и т.д.)
🧩 Расширяемость — плагины и кастомизация под себя
🖥 Нативный UI без веб-вью, что тоже влияет на производительность
🔌 Интеграции с LSP и привычным дев-стеком
🌐 Кроссплатформенность (Windows, macOS, Linux)
Выглядит как серьёзная заявка на конкуренцию с Visual Studio Code и другими редакторами.
Интересно наблюдать, как Rust постепенно становится базой не только для инфраструктуры, но и для девелоперских инструментов, которыми мы пользуемся каждый день.
Вы уже смотрели в сторону Zed или даже успели пересесть? 👀
Читать анонс
Подписывайтесь на мой Telegram канал
Ребята из Zed Industries выкатили Zed 1.0 — первый стабильный релиз своего редактора кода.
Вообще, интересный тренд: всё больше вещей утекает из JS/TS в Rust. Сначала туда переехали линтеры, форматтеры и прочие тулзы (и дали нам ощутимый буст по скорости), а теперь и полноценные редакторы. Zed — как раз из этой новой волны.
Редактор с самого начала делался с упором на производительность и мультиплеерность. В итоге — очень быстрый, отзывчивый, активно развивается и уже собрал вокруг себя внушительное комьюнити.
Что завезли к 1.0:
⚡️ Мгновенная работа с большими проектами — всё благодаря Rust и продуманной архитектуре
👥 Коллаборация в реальном времени — можно прямо в редакторе работать вместе с другими
🤖 AI — встроенный ассистент для кода (подсказки, генерация и т.д.)
🧩 Расширяемость — плагины и кастомизация под себя
🖥 Нативный UI без веб-вью, что тоже влияет на производительность
🔌 Интеграции с LSP и привычным дев-стеком
🌐 Кроссплатформенность (Windows, macOS, Linux)
Выглядит как серьёзная заявка на конкуренцию с Visual Studio Code и другими редакторами.
Интересно наблюдать, как Rust постепенно становится базой не только для инфраструктуры, но и для девелоперских инструментов, которыми мы пользуемся каждый день.
Вы уже смотрели в сторону Zed или даже успели пересесть? 👀
Читать анонс
Подписывайтесь на мой Telegram канал
Streaming в React: что реально происходит
Интересный разбор того, как в React устроен стриминг UI под капотом — и почему он может рендерить интерфейс «не по порядку».
Автор показывает, что современный SSR в React — это уже не просто «собрали HTML → отдали». С появлением Suspense и streaming сервер начинает отправлять куски разметки по мере готовности. Причём порядок может отличаться от исходного дерева компонентов.
Ключевая идея:
— React разбивает дерево на чанки
— каждый Suspense boundary становится точкой, которую можно «дождаться или пропустить»
— готовые части улетают клиенту сразу, не блокируя всё остальное
В итоге:
— быстрый TTFB
— пользователь раньше видит хоть что-то полезное
— тяжёлые куски догружаются позже
Но под капотом там довольно хитрая магия:
React вставляет специальные маркеры и скрипты, чтобы потом «собрать» всё обратно в правильном порядке уже в браузере и гидрировать.
Хорошо объясняется, почему это не ломает DOM и как вообще возможно рендерить out-of-order, не превращая страницу в кашу.
Если работаешь с SSR / RSC — прям мастрид, чтобы понять, что реально происходит, а не «оно как-то стримится само».
Читать статью
Подписывайтесь на мой Telegram канал
Интересный разбор того, как в React устроен стриминг UI под капотом — и почему он может рендерить интерфейс «не по порядку».
Автор показывает, что современный SSR в React — это уже не просто «собрали HTML → отдали». С появлением Suspense и streaming сервер начинает отправлять куски разметки по мере готовности. Причём порядок может отличаться от исходного дерева компонентов.
Ключевая идея:
— React разбивает дерево на чанки
— каждый Suspense boundary становится точкой, которую можно «дождаться или пропустить»
— готовые части улетают клиенту сразу, не блокируя всё остальное
В итоге:
— быстрый TTFB
— пользователь раньше видит хоть что-то полезное
— тяжёлые куски догружаются позже
Но под капотом там довольно хитрая магия:
React вставляет специальные маркеры и скрипты, чтобы потом «собрать» всё обратно в правильном порядке уже в браузере и гидрировать.
Хорошо объясняется, почему это не ломает DOM и как вообще возможно рендерить out-of-order, не превращая страницу в кашу.
Если работаешь с SSR / RSC — прям мастрид, чтобы понять, что реально происходит, а не «оно как-то стримится само».
Читать статью
Подписывайтесь на мой Telegram канал
Remix 3 Beta — курс на zero-deps 🧩
Команда Remix показала бета-версию Remix 3. Фреймворк уходит от монолита: вместо React и больших зависимостей — набор маленьких пакетов. Хочешь работать с cookies — ставь пакет. Нужны headers — отдельный пакет. Middleware, proxy, auth — тоже всё отдельно. Как это всё дружит между собой — решать уже вам.
Remix продолжает продвигать идею server-driven state: формы, loaders/actions и Web APIs вместо клиентских стейт-менеджеров.
Правда, пока всё выглядит довольно сыро: документации мало, а собирать приложение местами приходится буквально по демкам и примерам из репозитория.
Подход стал заметно сложнее, но даёт больше контроля и предсказуемости — меньше магии, больше понимания того, что реально происходит под капотом.
Как думаете, есть ли будущее у такого Remix-пути?
Читать анонс
Подписывайтесь на мой Telegram канал
Команда Remix показала бета-версию Remix 3. Фреймворк уходит от монолита: вместо React и больших зависимостей — набор маленьких пакетов. Хочешь работать с cookies — ставь пакет. Нужны headers — отдельный пакет. Middleware, proxy, auth — тоже всё отдельно. Как это всё дружит между собой — решать уже вам.
Remix продолжает продвигать идею server-driven state: формы, loaders/actions и Web APIs вместо клиентских стейт-менеджеров.
Правда, пока всё выглядит довольно сыро: документации мало, а собирать приложение местами приходится буквально по демкам и примерам из репозитория.
Подход стал заметно сложнее, но даёт больше контроля и предсказуемости — меньше магии, больше понимания того, что реально происходит под капотом.
Как думаете, есть ли будущее у такого Remix-пути?
Читать анонс
Подписывайтесь на мой Telegram канал