TGViewer
Channel Public Channel
FrontEndDev

FrontEndDev

@front_end_dev

🚀 Статьи, новости, туториалы по frontend разработке.

http://jem-space.ru

Admin: @jem_jem
Пишу в @five_a_m
AI и вайбкод @vibe_and_ai

Читать на парковке: https://max.ru/front_end_dev

Реклама: http://bit.ly/2NxmVDu
РКН: https://clck.ru/3GLw7G
Subscribers
25.9K
Photos
2.7K
Videos
25
Links
7.9K

Showing posts older than #9941 · Back to latest

Older Posts 20 shown
Post #9940 2.57K
Авторизация в 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/
  • ❤ 4
  • 👍 2
  • ❤‍🔥 1
  • 🔥 1
  • 🤔 1
Post #9939 2.54K
Coaction переносит подписки и вычисления в runtime

Миграция с Zustand на Coaction показывает разницу между локальными селекторами и реактивным графом внутри стора. В Coaction чтение становится подпиской, а вычисляемые значения живут как общие узлы с зависимостями и кешированием. Это важно для больших приложений, где вокруг стора разрастаются useMemo, useShallow, селекторы и ручная синхронизация зависимостей.

https://dev.to/unadlib/reads-are-subscriptions-migrating-from-zustand-to-coaction-3228
  • ❤ 7
  • 🥴 2
  • 🤣 1
Post #9938 2.47K
Как сделать SVG-иконки живее с squash and stretch

Разбор приёма squash and stretch для SVG-микроинтеракций. Он помогает сделать иконки и стрелки более естественными и заметными без тяжёлой анимации: можно анимировать path через CSS, а для более широкой поддержки использовать Motion. Практически это даёт более приятный hover-эффект, учитывает prefers-reduced-motion и лучше работает, если вместо обычного state-based hover запускать короткую анимацию по событию.

https://www.joshwcomeau.com/animation/squash-and-stretch/
  • 🔥 8
  • ❤ 4
  • 👍 2
  • ❤‍🔥 1
  • 🥰 1
Post #9937 2.61K
Как разложить React-проект по папкам

Практичная схема для React-проектов: от одного файла к файловой структуре с папками на компонент, где рядом лежат реализация, тесты, стили, типы и хелперы. Такой подход помогает не раздувать src, держать границы компонентов видимыми и не тащить внутрь лишние детали. Для небольших экранов можно оставить всё в одном файле, но как только компонент начинает жить своей жизнью, его лучше выносить в отдельную папку и экспортировать только публичный API.

https://www.robinwieruch.de/react-folder-structure/
  • 👍 8
  • ❤ 2
  • ❤‍🔥 1
  • 👎 1
Post #9936 2.59K
Knip для Angular: чистим мертвый код автоматически

Knip помогает в крупных Angular и TypeScript-проектах находить неиспользуемые зависимости, файлы, экспорты и битые импорты, а затем держать это под контролем через pre-commit и CI/CD. В проекте с Nx workspace его настроили через knip.config.ts, автогенерацию workspaces и валидацию конфигурации, чтобы не полагаться на ручную проверку.

https://habr.com/ru/companies/tbank/articles/1078438/
  • 👍 10
  • ❤ 3
Post #9935 2.52K
Как быстро проверить HTML-письмо в Gmail

HTML-письмо можно вставить прямо в Gmail и сразу увидеть, как оно выглядит перед отправкой. Это удобно для быстрой проверки верстки, особенно если письмо собрано в MJML или другом шаблонизаторе и нужен финальный HTML без лишних шагов. Для реальной рассылки обычно всё равно используют сервисы вроде Mailchimp или Postmark, но для быстрого теста такой способ экономит время и помогает поймать проблемы с отображением раньше.

https://blog.codepen.io/2026/08/31/chris-corner-what-do-you-do-with-an-html-email/
  • 🔥 9
  • ❤ 1
Post #9934 2.47K
22-23 сентября приглашаем на АЛЬФА ВААА{АИ}ЙЙЙБ ХАКАТОН. Создавайте проект высоконагруженного прокси, соревнуйтесь за 2,3 миллиона рублей, общайтесь в комьюнити топовых вайб-кодеров.

Всех участников пригласим 30 сентября на АЛЬФА ВААА{АИ}ЙЙЙБ МИТАП. Узнаем, кто из финалистов получит миллион, зажжём на техно-рейве с группой ЛАУД и проведём ток-шоу про нейросети.

Скорее регистрируйтесь
  • 👍 12
  • ❤ 9
  • 🔥 7
  • 🤡 6
Post #9933 2.37K
CSS random() для кроссбраузерной случайности

Появился полифилл для будущей CSS random(), который позволяет использовать случайные значения в стилях в Chrome, Firefox и Safari без переписывания на JavaScript. Это полезно для эффектов вроде конфетти, звездного фона и других декоративных элементов, где нужна управляемая случайность прямо в CSS. На практике нужно подключить скрипт, пометить нужные элементы классом randomized и записывать случайные значения в custom properties с префиксом --random, чтобы код остался совместимым с нативной реализацией, когда она доедет до всех браузеров.

https://css-tricks.com/css-random-function-polyfill/
  • 👍 8
  • ❤ 1
Post #9932 2.41K
pipenet для быстрого туннеля локального сервера

pipenet — open source альтернатива localtunnel, которая позволяет поднять собственную туннельную инфраструктуру и быстро открыть локальный сервер в публичном интернете. Полезно, когда нужно показать фронтенд, бэкенд или webhook без ручной настройки прокси и лишней возни с сетями.

https://github.com/punkpeye/pipenet
GitHub GitHub - punkpeye/pipenet: Expose your local server to the public internet instantly Expose your local server to the public internet instantly - punkpeye/pipenet
  • 🔥 8
  • ❤ 2
Post #9931 2.56K
Nuxt 4.5 ускоряет SSR и обновляет сборку

Nuxt 4.5 приносит экспериментальный SSR streaming, переход на Vite 8 и новый builder на базе Rsbuild для Rspack 2. Streaming сразу отдает HTML shell и может улучшить TTFB, но не уменьшает само серверное время рендера, поэтому его стоит проверять на middleware, редиректах, cookie и кеширующих правилах.

https://www.infoq.com/news/2026/08/nuxt-4-5-streaming/
  • 👍 4
  • ❤ 1
  • ⚡ 1
  • 😐 1
Post #9930 2.67K
Vercel AI SDK для структурированного AI-вывода

Vercel AI SDK и AI Gateway позволяют вызывать разные модели из бэкенда приложения и получать не просто текст, а структурированный ответ по Zod-схеме. Это удобно, когда AI должен создавать данные в формате, который сразу можно сохранить в базу и переиспользовать в существующих компонентах. Это снимает привязку к одному провайдеру, упрощает фолбэки между моделями и даёт контроль над форматом ответа, а не только над промптом.

https://blog.master.dev/having-fun-with-vercels-ai-sdk-and-ai-gateway/
  • ❤ 4
  • 🤡 1
  • 🤨 1
Post #9929 2.79K
Как хранить состояние приложения в URL

Если нужно шарить не просто страницу, а текущее состояние интерфейса, URL может хранить фильтры, содержимое редактора или целый JSON без бэкенда. Для небольших параметров достаточно query string, но для больших данных лучше использовать fragment после #, потому что он не уходит на сервер. Данные проходят цепочку сериализацию, сжатие и Base64url, а для частых изменений стоит делать debounce и обновлять адрес через history.replaceState().

https://ivakin.dev/blog/state-in-url
  • ❤‍🔥 9
  • ❤ 4
  • 🔥 2
Post #9928 2.81K
pnpm 12 ускоряет установку без миграции

pnpm 12 переписали на Rust, но сохранили команды, флаги, lockfile и layout node_modules из pnpm 11. На практике это даёт заметный прирост скорости, особенно на повторных установках с уже прогретым кэшем. Для команд это почти безболезненное обновление, но стоит проверить совместимость в CI: убрали pnpm install --resolution-only, изменили поведение для git-зависимостей, неизвестные ключи в pnpm-workspace.yaml теперь не игнорируются.

https://www.infoq.com/news/2026/09/pnpm-12-rust/
  • ⚡ 8
  • 🔥 3
  • ❤ 2
Post #9927 2.69K
Как научить ИИ писать по правилам дизайн-системы

Эксперимент показывает, что одного промпта мало: без контекста ИИ легко генерирует UI с styled.div, хардкодом цветов и несуществующими пропсами. Скилл задает правила проекта, MCP дает актуальный контракт дизайн-системы, а вместе они заметно повышают шанс получить код, который проходит typecheck и build.

https://habr.com/ru/companies/raiffeisenbank/articles/1075704/
  • 👍 4
  • 🔥 2
Post #9926 2.77K
DevSpace ускоряет проверку микрофронтендов

DevSpace можно использовать не только для бэкенда, но и для фронтенда в Kubernetes. Вместо полного CD-пайплайна локальная сборка синхронизируется прямо в pod nginx, а после загрузки запускается постобработка deploy-url. Это убирает ручную настройку hosts, раздельные порты и ожидание деплоя, поэтому интеграционные проверки микрофронтенда с хостом становятся заметно быстрее. Подход особенно полезен в монорепозиториях с микрофронтендами, но работает и для обычных SPA

https://habr.com/ru/articles/1078234/
  • ❤ 5
  • 👍 2
  • 🤔 1
Post #9925 2.57K
Почему SVG-иконки теряют размер после экспорта

SVG-иконка может выглядеть крошечной, огромной или размытой не из-за поломанного файла, а из-за того, что viewBox, width/height и CSS задают размер по разным правилам. На практике это особенно заметно после экспорта из Figma, когда один и тот же SVG нормально работает как inline-элемент, но ведёт себя иначе в <img>, React-компоненте или при рендере в PNG.

https://habr.com/ru/articles/1074956/
  • ❤ 7
  • 🤨 3
  • ⚡ 2
  • 👍 2
Post #9924 2.59K
Когда все решения сходятся к тимлиду, команда начинает ждать, а руководитель — работать за всех. Согласования, приоритеты и спорные вопросы постепенно превращают его в узкое место, которое ограничивает скорость всей команды.

9 сентября в 20:00 МСК на открытом уроке разберём, как распределять ответственность и сохранять управляемость процессов без постоянного личного участия в каждом решении.

Вы узнаете, что действительно стоит оставлять в зоне ответственности руководителя, а что можно передавать сотрудникам. Обсудим границы самостоятельности, распределение ролей и управленческие практики, которые помогают команде принимать больше решений самостоятельно.

Открытый урок проходит в преддверии старта курса «Руководитель команд в ИТ». Примите участие, если хотите меньше контролировать каждую задачу и больше управлять системой работы команды: https://otus.pw/v4fB/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
  • 👍 3
Post #9923 2.85K
Управляемые корутины для контроля async и памяти

Корутины на TypeScript дают контроль над асинхронностью там, где async/await уже не хватает: можно задавать приоритеты, отмену, кооперативное переключение и более предсказуемое поведение под нагрузкой. В основе подхода генераторы и планировщик, который сам решает, когда продолжать корутину, а когда уступать другим задачам. Меньше случайных пауз, проще управлять долгими циклами и конкурентными задачами, а также снижать давление на GC за счет арен памяти и пулов объектов.

https://habr.com/ru/articles/1074510/
  • ❤ 8
  • 👍 4
Post #9922 2.74K
Где Vue теряет реактивность и как это чинить

Vue перестаёт обновлять экран не из-за бага, а когда вы вынимаете значение из реактивного объекта и теряете связь с прокси. На практике это всплывает после деструктуризации, при работе с вложенными ref, в watch и computed, где отслеживаются только реально прочитанные зависимости.

https://habr.com/ru/companies/otus/articles/1072130
  • 👍 6
  • ❤ 2
  • 🔥 2
Post #9921 2.91K
WebCodecs сжал скролл-фильм с 84 до 18 МБ

WebCodecs позволяет заменить тяжёлые секвенции кадров в скролл-фильме на видеопоток с покадровым контролем и сильно снизить вес лендинга. В этом кейсе мобильная версия ужалась с 84 до 18.1 МБ, а на медленном устройстве до 11.9 МБ, при этом <video> и currentTime для такой задачи оказались слишком неточными и медленными

https://habr.com/ru/articles/1074188/
  • 🔥 9
  • ⚡ 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →