Авторизация в Next.js ближе к данным
Разбор того, где в Next.js с App Router, React Server Components и Server Actions ставить проверки доступа, чтобы закрыть чтение и запись до обращения к базе. Показываем рабочую схему: проверка сессии в data access и service layer, использование getAuth и getAuthOrRedirect, а для маршрутов и layout держть в уме, что это улучшает UX, но не заменяет защиту на уровне данных.
https://www.robinwieruch.de/next-authorization/
Разбор того, где в Next.js с App Router, React Server Components и Server Actions ставить проверки доступа, чтобы закрыть чтение и запись до обращения к базе. Показываем рабочую схему: проверка сессии в data access и service layer, использование getAuth и getAuthOrRedirect, а для маршрутов и layout держть в уме, что это улучшает UX, но не заменяет защиту на уровне данных.
https://www.robinwieruch.de/next-authorization/
❤4👍2❤🔥1🔥1🤔1
Устарел ли next‑intl? И как реально оптимизировать такую архитектуру
next-intl долго был стандартом для i18n в Next.js, но в App Router у него есть заметные архитектурные издержки: в браузер часто уезжают переводы со всего приложения и динамический вызов t() мешает tree-shaking.
Выход: грузить сообщения не в корневом лейауте, а локально по роутам и неймспейсам + переносить переводимый статичный текст в RSC через getTranslations().
https://habr.com/ru/articles/1077908/
next-intl долго был стандартом для i18n в Next.js, но в App Router у него есть заметные архитектурные издержки: в браузер часто уезжают переводы со всего приложения и динамический вызов t() мешает tree-shaking.
Выход: грузить сообщения не в корневом лейауте, а локально по роутам и неймспейсам + переносить переводимый статичный текст в RSC через getTranslations().
https://habr.com/ru/articles/1077908/
👍7❤2
Как Turbopack режет JS на чанки
Turbopack в Next.js 16.3 экспериментально улучшил разбиение JavaScript на чанки. Это ускоряет загрузку страниц и помогает переиспользовать общий код между роутами: вместо одного тяжёлого бандла на весь сайт или отдельного бандла на каждую страницу сборка может находить баланс между размером загрузки и кэшированием.
https://nextjs.org/blog/turbopack-chunking
Turbopack в Next.js 16.3 экспериментально улучшил разбиение JavaScript на чанки. Это ускоряет загрузку страниц и помогает переиспользовать общий код между роутами: вместо одного тяжёлого бандла на весь сайт или отдельного бандла на каждую страницу сборка может находить баланс между размером загрузки и кэшированием.
https://nextjs.org/blog/turbopack-chunking
❤10🔥3
Видео-спрайты против Lottie на мобильных
Для крупных анимаций в встраиваемом виджете Lottie на iPhone начал греть процессор и вызывать троттлинг, а замена на видео-спрайты сняла нагрузку с CPU за счёт аппаратного декодирования. Но у видео-спрайтов есть цена: их нужно вручную ставить на паузу, потому что IntersectionObserver не видит скрытие через opacity, оверлеи и модалки.
https://habr.com/ru/articles/1078644/
Для крупных анимаций в встраиваемом виджете Lottie на iPhone начал греть процессор и вызывать троттлинг, а замена на видео-спрайты сняла нагрузку с CPU за счёт аппаратного декодирования. Но у видео-спрайтов есть цена: их нужно вручную ставить на паузу, потому что IntersectionObserver не видит скрытие через opacity, оверлеи и модалки.
https://habr.com/ru/articles/1078644/
👍6❤1🔥1
🔴 Тестовый собес на Frontend-разработчика со старшим разработчиком ex. Сбер в этот четверг!
[+ разбор 50 сложных вопросов в подарок ]
17 сентября (в этот четверг!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика!
Собеседование проведёт Даниил Дмитриев - старший разработчик в R-Vision, ex. Сбер,
Как это будет:
📂 Даниил задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе
📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью
📂 В конце сможешь задать любой вопрос Даниилу и получить на него развёрнутый ответ
Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы
И ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!
🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Frontend-собеседований 🔥
Переходи в бот, чтобы попасть на эфир и забрать подарок 👉 @shortcut_front_bot
Реклама.
О рекламодателе.
[+ разбор 50 сложных вопросов в подарок ]
17 сентября (в этот четверг!) в 19:00 по мск приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика!
Собеседование проведёт Даниил Дмитриев - старший разработчик в R-Vision, ex. Сбер,
Как это будет:
📂 Даниил задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе
📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью
📂 В конце сможешь задать любой вопрос Даниилу и получить на него развёрнутый ответ
Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы
И ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!
🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Frontend-собеседований 🔥
Переходи в бот, чтобы попасть на эфир и забрать подарок 👉 @shortcut_front_bot
Реклама.
О рекламодателе.
👍5🤡3
Как сделать липкий хедер с подменой фона
Показан CSS-приём для sticky header, который визуально меняет фон при скролле без JavaScript: в hero и в основном контенте стоят sticky blocker-элементы, совпадающие по цвету с фоном секций и перекрывающие контент под фиксированным хедером. Это полезно, когда нужен аккуратный переход между секциями и хочется избежать лишней логики на скролле.
https://www.joshwcomeau.com/css/header-blockers/
Показан CSS-приём для sticky header, который визуально меняет фон при скролле без JavaScript: в hero и в основном контенте стоят sticky blocker-элементы, совпадающие по цвету с фоном секций и перекрывающие контент под фиксированным хедером. Это полезно, когда нужен аккуратный переход между секциями и хочется избежать лишней логики на скролле.
https://www.joshwcomeau.com/css/header-blockers/
🔥6❤2⚡1
Three.js демо с физикой и 3D Парижем
Интерактивное демо на Three.js превращает Эйфелеву башню в катапульту: модель можно деформировать, накапливать энергию и запускать шар по траектории с коллизиями и приземлением. Хороший пример того, как сочетать физику, анимацию и реальные 3D-данные из Cesium ion, чтобы делать не просто красивую сцену, а живой веб-опыт с географическим контекстом.
Демо | Github
https://tympanus.net/codrops/2026/09/01/bend-aim-fling-turning-the-eiffel-tower-into-a-catapult-with-three-js/
Интерактивное демо на Three.js превращает Эйфелеву башню в катапульту: модель можно деформировать, накапливать энергию и запускать шар по траектории с коллизиями и приземлением. Хороший пример того, как сочетать физику, анимацию и реальные 3D-данные из Cesium ion, чтобы делать не просто красивую сцену, а живой веб-опыт с географическим контекстом.
Демо | Github
https://tympanus.net/codrops/2026/09/01/bend-aim-fling-turning-the-eiffel-tower-into-a-catapult-with-three-js/
👍6❤2👎1🔥1
Как Shop.app собрали на Remix и Vite
Shopify показал, как на Remix быстро превратить маркетинговый сайт Shop в полноценное веб-приложение с SSR, роутингом, prefetch и возможностью переиспользовать логику, стили и UX из React Native через monorepo. Это хороший пример того, как не переписывать инфраструктуру с нуля, а встроить новый веб-слой в уже существующий стек и начать выпускать фичи быстрее.
https://remix.run/blog/shop-case-study
Shopify показал, как на Remix быстро превратить маркетинговый сайт Shop в полноценное веб-приложение с SSR, роутингом, prefetch и возможностью переиспользовать логику, стили и UX из React Native через monorepo. Это хороший пример того, как не переписывать инфраструктуру с нуля, а встроить новый веб-слой в уже существующий стек и начать выпускать фичи быстрее.
https://remix.run/blog/shop-case-study
❤8⚡3👍2
Как OpenAPI ускорил генерацию email
Кейс про spec-driven подход для email-платформы: вместо ручного правления до 15 файлов на одно письмо команда описывает контракт в OpenAPI, а CLI генерирует NestJS-артефакты, React-компонент и типы. Это убирает рассинхрон между бэкендом и фронтендом, фиксирует правила шаблонов и сокращает добавление нового письма с часов до минут.
https://habr.com/ru/companies/yoomoney/articles/1076874/
Кейс про spec-driven подход для email-платформы: вместо ручного правления до 15 файлов на одно письмо команда описывает контракт в OpenAPI, а CLI генерирует NestJS-артефакты, React-компонент и типы. Это убирает рассинхрон между бэкендом и фронтендом, фиксирует правила шаблонов и сокращает добавление нового письма с часов до минут.
https://habr.com/ru/companies/yoomoney/articles/1076874/
❤6👍3👎2👌2
Процедурная геометрия в Three.js и WebGPU
Показан рабочий подход к построению гибкого Geometry Painter на Three.js с WebGPU и TSL. Здесь есть выбор поверхности, генерация процедурной геометрии, свои шейдеры, освещение и постобработка, то есть набор техник для интерактивных 3D-инструментов и визуальных редакторов без упора на готовые меши.
Демо | Github
https://tympanus.net/codrops/2026/08/11/exploring-procedural-geometry-with-three-js-and-webgpu/
Показан рабочий подход к построению гибкого Geometry Painter на Three.js с WebGPU и TSL. Здесь есть выбор поверхности, генерация процедурной геометрии, свои шейдеры, освещение и постобработка, то есть набор техник для интерактивных 3D-инструментов и визуальных редакторов без упора на готовые меши.
Демо | Github
https://tympanus.net/codrops/2026/08/11/exploring-procedural-geometry-with-three-js-and-webgpu/
👍7🔥2❤1
Как делать быстрые 3D-интерфейсы в вебе
WebGL позволяет собирать иммерсивные 3D-сцены прямо в браузере, но без аккуратной оптимизации легко убить загрузку и отзывчивость интерфейса. Для фронтенда это значит, что 3D можно использовать не только ради вау-эффекта, а как часть продукта, если заранее контролировать вес ассетов, количество отрисовок и работу анимаций.
https://mdx.so/blog/webgl-development-how-to-build-immersive-3d-web-experiences-in-2026
WebGL позволяет собирать иммерсивные 3D-сцены прямо в браузере, но без аккуратной оптимизации легко убить загрузку и отзывчивость интерфейса. Для фронтенда это значит, что 3D можно использовать не только ради вау-эффекта, а как часть продукта, если заранее контролировать вес ассетов, количество отрисовок и работу анимаций.
https://mdx.so/blog/webgl-development-how-to-build-immersive-3d-web-experiences-in-2026
❤6👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Оффер 427 000₽ на руки в Сбер и отказались
Оффер 380 000₽ на руки в банк
Оффер 6 800$ net с релокацией на Кипр
Оффер 4 500$ в американскую компанию
👆Это недавние рeзультаты участников нашего комьюнити.
В нашем канале много ценного для разработчиков по подготовке к собесам👇
Полные разборы реальных собеседований: Сбер, VK, OZON, M-Video, Evrone, еще раз OZON, IT One, Trading View, МТС, Лантан, ДОМ.РФ
Сборники вопросов по темам:
Кибербезопасность на собеседовании
Все вопросы по React на собеседовании
Все вопросы по TypeScript на собеседовании
Как решать задачи двумя указателями
Вопросы с Vue собеседований
Вопросы по сетям и методологиям с 200 собесов
Вопросы по JS с 200 собесов
Какие задачи спрашивают на livecoding чаще
Полезные посты:
Job-борды для поиска работы
Запись нашего самого кринжового собеса
Новый HTTP метод QUERY
Как я прохожу собесы:
Оффер 260к на Go в Empoycity
Оффер 300к на Go в "Системная интеграция"
Отжал 390 gross + 25% премии в Иннотех
Оффер на лида 415 gross + 20% премии в ПСБ
🏆Статистика по рынку:
Июль, Июнь, Май, Апрель, Март
А еще каждый четверг у нас проходят полезные стримы с решениями задач и разборами резюме)
Подписывайся 👇
frontend_punks
Реклама, erid: 2W5zFJU63WH ИП Галактионов Тихон Витальевич, ИНН 771618975809
Оффер 380 000₽ на руки в банк
Оффер 6 800$ net с релокацией на Кипр
Оффер 4 500$ в американскую компанию
👆Это недавние рeзультаты участников нашего комьюнити.
Меня зовут Тихон - я действующий разработчик и ментор. Уже 2 года я развиваю комьюнити, где 300+ разработчиков, и вместе мы выжимаем из рынка максимум!
В нашем канале много ценного для разработчиков по подготовке к собесам👇
Полные разборы реальных собеседований: Сбер, VK, OZON, M-Video, Evrone, еще раз OZON, IT One, Trading View, МТС, Лантан, ДОМ.РФ
Сборники вопросов по темам:
Кибербезопасность на собеседовании
Все вопросы по React на собеседовании
Все вопросы по TypeScript на собеседовании
Как решать задачи двумя указателями
Вопросы с Vue собеседований
Вопросы по сетям и методологиям с 200 собесов
Вопросы по JS с 200 собесов
Какие задачи спрашивают на livecoding чаще
Полезные посты:
Job-борды для поиска работы
Запись нашего самого кринжового собеса
Новый HTTP метод QUERY
Как я прохожу собесы:
Оффер 260к на Go в Empoycity
Оффер 300к на Go в "Системная интеграция"
Отжал 390 gross + 25% премии в Иннотех
Оффер на лида 415 gross + 20% премии в ПСБ
🏆Статистика по рынку:
Июль, Июнь, Май, Апрель, Март
А еще каждый четверг у нас проходят полезные стримы с решениями задач и разборами резюме)
Подписывайся 👇
frontend_punks
Реклама, erid: 2W5zFJU63WH ИП Галактионов Тихон Витальевич, ИНН 771618975809
🤡20👍5👎3
Rust-версия React Compiler ускоряет сборку
Переход на Rust-реализацию React Compiler даёт заметный прирост скорости на больших кодовых базах: в React Router сборка компилятора сократилась с 14,3 секунды до 0,81 секунды, а общая сборка стала примерно в 2,4 раза быстрее. Ещё один плюс в том, что линтер и билд могут использовать один и тот же React Compiler, поэтому меньше шансов, что компонент пройдёт проверку, но не будет скомпилирован в проде. В Vite с @vitejs/plugin-react достаточно включить compiler: true и убрать Babel-обвязку.
https://blog.master.dev/react-now-rusted-all-the-way-out/
Переход на Rust-реализацию React Compiler даёт заметный прирост скорости на больших кодовых базах: в React Router сборка компилятора сократилась с 14,3 секунды до 0,81 секунды, а общая сборка стала примерно в 2,4 раза быстрее. Ещё один плюс в том, что линтер и билд могут использовать один и тот же React Compiler, поэтому меньше шансов, что компонент пройдёт проверку, но не будет скомпилирован в проде. В Vite с @vitejs/plugin-react достаточно включить compiler: true и убрать Babel-обвязку.
https://blog.master.dev/react-now-rusted-all-the-way-out/
👍9⚡3💩2👌2❤1
withComponentInputBinding и резолверы в Angular
withComponentInputBinding позволяет передавать данные роута прямо в input routed-компонента, а резолверы выносят загрузку данных из самого компонента. На практике это убирает из страницы знание о ActivatedRoute и сервисах, снижает связанность, упрощает переиспользование и делает тесты чище: компоненту нужен только контракт данных, а не логика их получения.
https://habr.com/ru/articles/1078996/
withComponentInputBinding позволяет передавать данные роута прямо в input routed-компонента, а резолверы выносят загрузку данных из самого компонента. На практике это убирает из страницы знание о ActivatedRoute и сервисах, снижает связанность, упрощает переиспользование и делает тесты чище: компоненту нужен только контракт данных, а не логика их получения.
https://habr.com/ru/articles/1078996/
⚡6❤3👍2
vlt 1.0: npm-замена с защитой от вредных пакетов
vlt 1.0 — drop-in замена npm с упором на безопасность и аудит зависимостей. install и build разделены: пакеты можно скачать без запуска скриптов, а затем отдельно выполнить только доверенные, что снижает риск supply chain атак. Для команды это даёт более безопасные установки, удобный аудит зависимостей и почти безболезненный переход: команды остаются совместимыми с npm API, меняются только vlt.json и vlt-lock.json.
https://www.infoq.com/news/2026/09/vlt-npm-replacement/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=JavaScript
vlt 1.0 — drop-in замена npm с упором на безопасность и аудит зависимостей. install и build разделены: пакеты можно скачать без запуска скриптов, а затем отдельно выполнить только доверенные, что снижает риск supply chain атак. Для команды это даёт более безопасные установки, удобный аудит зависимостей и почти безболезненный переход: команды остаются совместимыми с npm API, меняются только vlt.json и vlt-lock.json.
https://www.infoq.com/news/2026/09/vlt-npm-replacement/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=JavaScript
❤🔥7
Как ускорить сайт при блокировках
Пост про шесть практических мер, которые помогают сайту быстрее открываться при нестабильном интернете и блокировках. В фокусе перенос видео на доступные хостинги, сжатие и перевод изображений в WebP или AVIF, lazy loading для картинок и тяжёлых блоков, а также проверка результата через Network в DevTools.
https://habr.com/ru/companies/itsumma/articles/1077670/
Пост про шесть практических мер, которые помогают сайту быстрее открываться при нестабильном интернете и блокировках. В фокусе перенос видео на доступные хостинги, сжатие и перевод изображений в WebP или AVIF, lazy loading для картинок и тяжёлых блоков, а также проверка результата через Network в DevTools.
https://habr.com/ru/companies/itsumma/articles/1077670/
❤6🤣6👍3💩1
Blume превращает Markdown в сайт документации
Blume собирает папку с Markdown в готовый docs-сайт на Astro и Vite без шаблонного приложения и лишней настройки. Для старта нужен только Node.js и один Markdown-файл, дальше доступны типизированная конфигурация, автоматический SEO, llms.txt, raw Markdown по .md URL, MCP-сервер и blume eval, который прогоняет документацию как тесты и валит CI, если она не отвечает на вопросы.
https://www.infoq.com/news/2026/09/blume-docs-ai/
Blume собирает папку с Markdown в готовый docs-сайт на Astro и Vite без шаблонного приложения и лишней настройки. Для старта нужен только Node.js и один Markdown-файл, дальше доступны типизированная конфигурация, автоматический SEO, llms.txt, raw Markdown по .md URL, MCP-сервер и blume eval, который прогоняет документацию как тесты и валит CI, если она не отвечает на вопросы.
https://www.infoq.com/news/2026/09/blume-docs-ai/
👍7❤2👌1
Cordis делает плагины основой архитектуры
Cordis предлагает собирать JS/TS-приложение не вокруг ядра, а из плагинов, где каждый компонент явно описывает зависимости, эффекты, конфигурацию и жизненный цикл. Это полезно для модульных продуктов, плагинных платформ и систем с AI-компонентами: связи между частями становятся формализованными, а изменения можно вносить локально, не разбирая весь bootstrap и набор скрытых договорённостей. На практике Cordis даёт отдельный слой композиции для frontend и backend, а не просто ещё один DI или plugin framework.
https://habr.com/ru/articles/1079044/
Cordis предлагает собирать JS/TS-приложение не вокруг ядра, а из плагинов, где каждый компонент явно описывает зависимости, эффекты, конфигурацию и жизненный цикл. Это полезно для модульных продуктов, плагинных платформ и систем с AI-компонентами: связи между частями становятся формализованными, а изменения можно вносить локально, не разбирая весь bootstrap и набор скрытых договорённостей. На практике Cordis даёт отдельный слой композиции для frontend и backend, а не просто ещё один DI или plugin framework.
https://habr.com/ru/articles/1079044/
❤4🤔1
Серверный 1v1 на Cloudflare Durable Object
Разбор того, как держать 60Hz серверную симуляцию внутри одного Cloudflare Durable Object и что это даёт на практике: предсказание движения на клиенте, откат состояния для честного попадания, адаптивный выбор лучшего edge-сервера и удержание слота при обрыве соединения. Полезно как пример архитектуры для realtime-игр и других web-приложений, где важны низкая задержка, синхронизация и предсказуемое поведение на сервере и в тестах.
https://railmid.com/blog/how-it-works
Разбор того, как держать 60Hz серверную симуляцию внутри одного Cloudflare Durable Object и что это даёт на практике: предсказание движения на клиенте, откат состояния для честного попадания, адаптивный выбор лучшего edge-сервера и удержание слота при обрыве соединения. Полезно как пример архитектуры для realtime-игр и других web-приложений, где важны низкая задержка, синхронизация и предсказуемое поведение на сервере и в тестах.
https://railmid.com/blog/how-it-works
👍5⚡1
CSS Anchor Positioning для тултипов и меню
Anchor Positioning решает старую боль интерфейсов: позволяет прикреплять один элемент к другому без ручной JS-логики для тултипов, дропдаунов и вложенных меню. Для target задаются anchor-name, position-anchor и position-area, а браузер сам следит за переполнением и может переключать элемент на fallback-позицию вроде bottom или flip-block. Это особенно полезно там, где раньше приходилось писать сложный код для пересчёта координат, проверки viewport и переворота подсказки.
https://www.joshwcomeau.com/css/anchor-positioning/
Anchor Positioning решает старую боль интерфейсов: позволяет прикреплять один элемент к другому без ручной JS-логики для тултипов, дропдаунов и вложенных меню. Для target задаются anchor-name, position-anchor и position-area, а браузер сам следит за переполнением и может переключать элемент на fallback-позицию вроде bottom или flip-block. Это особенно полезно там, где раньше приходилось писать сложный код для пересчёта координат, проверки viewport и переворота подсказки.
https://www.joshwcomeau.com/css/anchor-positioning/
❤13👍1