Projecting React: как собрать более узкую и быструю версию React под свои нужды
AI-сгенерированная проекция public API React, заточенная под требования TanStack Start, может уменьшить клиентский бандл примерно до 9 KB и ускорить работу в 2–3 раза на целевых сценариях. Это не замена React и не продукт для массового использования, а эксперимент, который уже работает на реальных сайтах и показывает, что часть API можно вырезать или упростить без потери нужного функционала.
https://tannerlinsley.com/posts/projecting-react
AI-сгенерированная проекция public API React, заточенная под требования TanStack Start, может уменьшить клиентский бандл примерно до 9 KB и ускорить работу в 2–3 раза на целевых сценариях. Это не замена React и не продукт для массового использования, а эксперимент, который уже работает на реальных сайтах и показывает, что часть API можно вырезать или упростить без потери нужного функционала.
https://tannerlinsley.com/posts/projecting-react
🔥4🤮4👍1
EmDash 1.0: открытая CMS для Astro
Стабильная open source CMS на Astro, которая упрощает публикацию контента, работает на современном хостинге и поддерживает AI-агентов через встроенные API, CLI и MCP server. Для проектов на Astro это альтернатива классическим CMS с более безопасной моделью плагинов и без жёсткой привязки к платформе.
https://emdashcms.com/blog/emdash-1-0
Стабильная open source CMS на Astro, которая упрощает публикацию контента, работает на современном хостинге и поддерживает AI-агентов через встроенные API, CLI и MCP server. Для проектов на Astro это альтернатива классическим CMS с более безопасной моделью плагинов и без жёсткой привязки к платформе.
https://emdashcms.com/blog/emdash-1-0
👍5🔥1
Как безопасно тестировать обработчик postMessage у iframe
iframe с postMessage удобно использовать для виджетов, но без проверок любой соседний или внешний window может подменить сообщение. Для resize это особенно заметно: один фальшивый payload может свернуть или раздувать встраиваемый блок, а при неосторожной обработке данных дойти и до XSS.
https://blog.master.dev/testing-an-iframes-postmessage-handler/
iframe с postMessage удобно использовать для виджетов, но без проверок любой соседний или внешний window может подменить сообщение. Для resize это особенно заметно: один фальшивый payload может свернуть или раздувать встраиваемый блок, а при неосторожной обработке данных дойти и до XSS.
https://blog.master.dev/testing-an-iframes-postmessage-handler/
❤4🔥2
Markuplint: линтер для HTML и разметки в разных фреймворках
Линтер для разметки, который проверяет HTML по стандартам, правилам доступности и вашим проектным соглашениям, а также умеет работать не только с HTML, но и с JSX, Vue, Svelte, Astro и другими форматами.
https://markuplint.dev/
Линтер для разметки, который проверяет HTML по стандартам, правилам доступности и вашим проектным соглашениям, а также умеет работать не только с HTML, но и с JSX, Vue, Svelte, Astro и другими форматами.
https://markuplint.dev/
👍4🔥2❤1
GitHub добавил API для истории звёзд без приватных данных
GitHub выпустил REST API endpoint для истории звёзд репозитория с временными метками, который показывает рост star count без раскрытия списка stargazer. Это даёт возможность снова строить графики и метрики популярности репозитория после того, как выдачу списка пользователей ограничили ради приватности. Endpoint подходит для обновления аналитики и интеграций, которые раньше отслеживали динамику звёзд.
https://github.blog/changelog/2026-09-04-new-api-endpoint-provides-privacy-safe-star-history-data/
GitHub выпустил REST API endpoint для истории звёзд репозитория с временными метками, который показывает рост star count без раскрытия списка stargazer. Это даёт возможность снова строить графики и метрики популярности репозитория после того, как выдачу списка пользователей ограничили ради приватности. Endpoint подходит для обновления аналитики и интеграций, которые раньше отслеживали динамику звёзд.
https://github.blog/changelog/2026-09-04-new-api-endpoint-provides-privacy-safe-star-history-data/
👍4❤2❤🔥1
Как передать sibling-count() родительскому элементу в CSS
CSS-трюк на Scroll-Driven Animations позволяет получить количество дочерних элементов и передать это значение родителю без JavaScript. Это полезно, когда нужно строить стили и поведение интерфейса от числа элементов, а native children-count() пока еще не готов.
https://blog.master.dev/transferring-sibling-count-to-a-parent-element
CSS-трюк на Scroll-Driven Animations позволяет получить количество дочерних элементов и передать это значение родителю без JavaScript. Это полезно, когда нужно строить стили и поведение интерфейса от числа элементов, а native children-count() пока еще не готов.
https://blog.master.dev/transferring-sibling-count-to-a-parent-element
🔥6❤3
MSW 3.0: ESM-only, плагин для Vite и перехват навигаций и отправки форм
MSW 3.0 перевёл библиотеку на ESM-only, добавил плагин для Vite, поддержку GraphQL subscriptions и перехват переходов по страницам и отправки форм. Это делает мокинг API удобнее в современных фронтенд-проектах: проще встраивать в Vite, покрывать более сложные сценарии и тестировать не только запросы, но и пользовательские действия, которые приводят к навигации или сабмиту формы.
https://github.com/mswjs/msw/releases/tag/v3.0.0
MSW 3.0 перевёл библиотеку на ESM-only, добавил плагин для Vite, поддержку GraphQL subscriptions и перехват переходов по страницам и отправки форм. Это делает мокинг API удобнее в современных фронтенд-проектах: проще встраивать в Vite, покрывать более сложные сценарии и тестировать не только запросы, но и пользовательские действия, которые приводят к навигации или сабмиту формы.
https://github.com/mswjs/msw/releases/tag/v3.0.0
GitHub
Release v3.0.0 · mswjs/msw
v3.0.0 (2026-09-28)
v3.0.0 (#2692) (2bb4342) @kettanaito @Andarist
⚠️ BREAKING CHANGES
MSW is now ESM-only (#2765).
Deprecate support for Node.js v18 and v20 (#2729). The minimal supported Node....
v3.0.0 (#2692) (2bb4342) @kettanaito @Andarist
⚠️ BREAKING CHANGES
MSW is now ESM-only (#2765).
Deprecate support for Node.js v18 and v20 (#2729). The minimal supported Node....
⚡5🔥5❤2👍1
Расширение MD-This-Page превращает страницы в Markdown
MD-This-Page — расширение для браузера, которое в один клик превращает любую страницу в чистый Markdown и убирает лишний шум. В Firefox и Chromium-браузерах оно работает локально, а для Safari сборку нужно делать вручную на macOS с Xcode.
https://github.com/Ademking/MD-This-Page
MD-This-Page — расширение для браузера, которое в один клик превращает любую страницу в чистый Markdown и убирает лишний шум. В Firefox и Chromium-браузерах оно работает локально, а для Safari сборку нужно делать вручную на macOS с Xcode.
https://github.com/Ademking/MD-This-Page
🔥9❤4👍2
Вышел Bun 1.4.3 с встроенной проверкой TypeScript
Вышел Bun 1.4.3, и в нём появился
https://bun.com/blog/bun-v1.4.3
Вышел Bun 1.4.3, и в нём появился
bun check — встроенная проверка типов TypeScript, которая читает tsconfig.json и выдаёт ошибки как tsc. bun check подключается к bun run, bun test и bun build, а в простое серверные процессы теперь расходуют заметно меньше CPU.https://bun.com/blog/bun-v1.4.3
❤🔥6👍1
HTML научился собирать потоковые ответы без рекурсии
В Chromium тестируют Declarative Partial Updates, где новый элемент
https://daverupert.com/2026/10/html-recursion/
В Chromium тестируют Declarative Partial Updates, где новый элемент
<?marker> позволяет вставлять HTML не по порядку и собирать страницу прямо на клиенте. Для длинных веток комментариев и чат-ответов это убирает необходимость сначала строить дерево на сервере и потом рендерить его целиком.<?marker> работает один раз в конкретной точке, а для очень больших веток вроде 10K постов браузер всё равно можно перегрузить.https://daverupert.com/2026/10/html-recursion/
Dave
Recursion is DEAD and HTML killed it
There’s a new web platform feature flighting in Chromium called Declarative Partial Updates. This proposal adds a new <?marker> element which enables out-of-order streaming of content. Rather than the traditional way of building the HTML you need on the server…
⚡4🤯1
Прогулка внутри «Золотой осени» Левитана на three.js
Возможность погрузиться в картину Левитана — кадр из исходной точки выверен по картине из Третьяковки, управление от первого лица (WASD + touch-джойстик на мобильных), автопилот («режим фильма»), звук шагов и окружения через Web Audio API. Работает быстро даже на средних смартфонах.
https://neurasystems.pro/zolotaya-osen/
Возможность погрузиться в картину Левитана — кадр из исходной точки выверен по картине из Третьяковки, управление от первого лица (WASD + touch-джойстик на мобильных), автопилот («режим фильма»), звук шагов и окружения через Web Audio API. Работает быстро даже на средних смартфонах.
https://neurasystems.pro/zolotaya-osen/
🔥11❤5👍2
Полный справочник по CSS-единицам
Интерактивный справочник по CSS-единицам собрал в одном месте все основные и новые единицы измерения, от
https://cssunits.com/
Интерактивный справочник по CSS-единицам собрал в одном месте все основные и новые единицы измерения, от
px и rem до svh, dvh и cqw. В браузере можно сразу увидеть, как меняются размеры, плюс есть PDF-верси, которую можно скачать.https://cssunits.com/
👍10❤2👀1
Rsbuild снизил память сборки Vue-приложения на 52%
На сервере с 4 ГБ памяти Vite-сборка Vue-приложения упиралась в OOM, а переход на Rsbuild снизил пик RSS с 1681 до 802 MiB и ускорил сборку с 41 до 11,7 секунды. Лимит
https://habr.com/ru/articles/1095642/
На сервере с 4 ГБ памяти Vite-сборка Vue-приложения упиралась в OOM, а переход на Rsbuild снизил пик RSS с 1681 до 802 MiB и ускорил сборку с 41 до 11,7 секунды. Лимит
--max-old-space-size=1280 помог, но при 1248 MiB сборка уже стала в три раза медленнее, а отключение gzip-отчёта и перестановка этапов проблему не сняли.https://habr.com/ru/articles/1095642/
👍5⚡2🤯1
Scheduler.yield() разгрузил главный поток
Современный Web API
Порция в 8192 записи укладывается примерно в 1,7 мс CPU, а
https://habr.com/ru/companies/domclick/articles/1090250/
Современный Web API
scheduler.yield() помогает дробить тяжёлые вычисления и возвращать управление браузеру без долгих блокировок интерфейса. В тесте на 500 тыс. записей задержка ввода упала с 45,4 до 0,3 мс по сравнению с синхронным запуском.Порция в 8192 записи укладывается примерно в 1,7 мс CPU, а
setTimeout(0) в такой схеме проигрывает из-за 4 мс минимальной задержки и потери приоритета продолжения.https://habr.com/ru/companies/domclick/articles/1090250/
⚡5👍3