🧩 Bento Grid: как сетка стала говорить за интерфейс
Bento Grid — асимметричная сетка, где размер блока отражает его важность. Паттерн пришёл из продуктового дизайна и стал стандартом для лендингов, дашбордов и портфолио.
Его используют Apple, Vercel, Linear, Stripe — чтобы выстраивать иерархию без лишних акцентов. Выше — карточки с разбором: от идеи до кода и best practices.
🔗 Наглядный пример с codesandbox
📍 Навигация: [Вакансии]
🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса
🐸 Библиотека фронтендера
#ux_review
Bento Grid — асимметричная сетка, где размер блока отражает его важность. Паттерн пришёл из продуктового дизайна и стал стандартом для лендингов, дашбордов и портфолио.
Его используют Apple, Vercel, Linear, Stripe — чтобы выстраивать иерархию без лишних акцентов. Выше — карточки с разбором: от идеи до кода и best practices.
#ux_review
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🥰3🥱1
🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy
Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими?
Мы ищем сильных практиков, которые хотят попробовать себя в роли:
— преподавателей;
— авторов курсов;
— наставников.
Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов.
👉 Заполни короткую анкету
Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими?
Мы ищем сильных практиков, которые хотят попробовать себя в роли:
— преподавателей;
— авторов курсов;
— наставников.
Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов.
👉 Заполни короткую анкету
😁4🥰3
Если в приложении много iframe, воркеров или окон с postMessage() — это для вас.
Проблема:
Сообщения между контекстами могут тормозить, приложение подвисает. Задержка видна, но без понятной причины: main thread, очередь сообщений или сериализация.
Новый PerformanceObserver показывает:
— сколько сообщение провело в очереди (`blockedDuration`)
— какие задачи его блокировали
— время сериализации
— полный тайминг от отправки до обработки
Высокий blockedDuration + длинная задача → разбить на чанки
Высокий taskCount → батчить сообщения, debounce
Медленная сериализация → Transferable, меньше payload
Статус:
Если сталкиваетесь с тормозами в cross-context коммуникации — расскажите о своих кейсах в GitHub Issues. Это поможет сделать API полезнее.
#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰7❤3👍2
Frontend больше не заканчивается на UI
Ваши приложения становятся умнее, но простого
Мы обновили курс «Разработка AI-агентов», сделав его понятным и для тех, кто не пишет на Python 24/7.
Что внутри для инженера:
— No-code прототипирование:
— Tool Calling: Как научить нейронку нажимать кнопки и вызывать функции на фронте.
— RAG и Векторные БД: Pinecone, Chroma — чтобы агент помнил контекст пользователя.
В отличие от старой версии, здесь есть Обзорный трек: вы поймете архитектуру и сможете грамотно ставить задачи бэкенду, не закапываясь в
⚡️ Промо 3 в 1:
Берете курс по агентам — получаете два курса в подарок. Например, можно захватить «Алгоритмы» или «Математику».
Ссылка на программу
Ваши приложения становятся умнее, но простого
fetch к LLM уже недостаточно для UX уровня 2026 года. Чтобы создавать настоящий Next-Gen, нужно понимать, как работают AI-агенты под капотом.Мы обновили курс «Разработка AI-агентов», сделав его понятным и для тех, кто не пишет на Python 24/7.
Что внутри для инженера:
— No-code прототипирование:
LangFlow для быстрой сборки логики (визуально, как вы любите).— Tool Calling: Как научить нейронку нажимать кнопки и вызывать функции на фронте.
— RAG и Векторные БД: Pinecone, Chroma — чтобы агент помнил контекст пользователя.
В отличие от старой версии, здесь есть Обзорный трек: вы поймете архитектуру и сможете грамотно ставить задачи бэкенду, не закапываясь в
torch.⚡️ Промо 3 в 1:
Берете курс по агентам — получаете два курса в подарок. Например, можно захватить «Алгоритмы» или «Математику».
Ссылка на программу
🥰5🥱4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🤩2🌚2😢1
Проблема часто не в коде, а в том, откуда он взят.
Когда есть dev / stage / prod, форки и PR, легко:
— тестировать не ту версию
— чинить несуществующий баг
— деплоить «не туда»
Полезные команды:
git remote add <name> <url>
git remote -v
git remote show <name>
git remote rename <old> <new>
git remote remove <name>
#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4❤3
Что чаще всего ломает прод во фронтенде? 😱
Anonymous Poll
7%
Конфиг / env
6%
Фича-флаг
28%
“Мелкий” хотфикс
5%
Несовпадение веток
15%
Кеш / CDN
39%
Никто не знает
🥰5
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт, который должен быть в закладках у каждого фронтендера.
— Иллюстрации для каждого свойства
— Удобные коллекции: Flexbox, Grid, Animations, Typography
— Быстрый поиск по свойствам
— Идеально для освежить память перед собесом
Особенно полезно для объяснения CSS джунам — показали картинку, и не нужно рисовать на доске
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2🥰2
Большинство «странных» багов в JS начинаются не с фреймворков, а с типов данных. Непонимание разницы между примитивами и объектами приводит к ошибкам в сравнениях, мутации данных и поведении функций.
#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🥰2
3 элемента
flex: 1 0 100px
Контейнер 500px
Какой будет offsetWidth одного блока?
❤️ — 100px
😁 — 166.66px (или ~167px)
👾 — 500px
🌚 — 0px
#code_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16❤4🥰1🌚1👾1
frontend-fundamentals cheatsheet.pdf
58.6 MB
Сжатый конспект ключевых тем и механизмов современной фронтенд-разработки.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🥰3❤2
⚛️ React: правильный useEffect с setInterval
Типичная ошибка — класть состояние в зависимости эффекта, который сам его обновляет.
❌ Плохо
count в зависимостях → useEffect пересоздаёт setInterval каждую секунду.
✅ Правильно
Функциональное обновление → интервал создаётся один раз, состояние всегда актуально.
Правило из документации:
📍 Навигация: [Вакансии]
🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса
🐸 Библиотека фронтендера
#hotfix #react
Типичная ошибка — класть состояние в зависимости эффекта, который сам его обновляет.
count в зависимостях → useEffect пересоздаёт setInterval каждую секунду.
Функциональное обновление → интервал создаётся один раз, состояние всегда актуально.
Правило из документации:
Если новое состояние зависит от предыдущего — используйте функциональное обновление.
useEffect не должен перезапускаться из-за собственного setState.
#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🥰3
Недавно наткнулись на то, что Safari в марте этого года добавил поддержку Iterator helpers. А ведь это реально полезная штука — позволяет делать цепочки трансформаций массивов без создания промежуточных копий.
array.at(-1) вместо array[array.length - 1]
structuredClone() вместо танцев с JSON.stringify/parse
У Set появились нормальные операции типа union() и intersection()
replaceAll() или про то, что Promise.withResolvers() избавляет от странного паттерна с промисами.#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Фронтенд-разработчик, пора выходить за рамки обычного чат-бота 🧠
Пользователи ждут от интерфейсов автономности. Мы научим вас строить AI-агентов, которые умеют принимать решения, сохранять контекст и надёжно интегрироваться в ваш продукт.
Чему вы научитесь:
— интеграции через n8n для связи фронтенда с мощными AI-сценариями через визуальные воркфлоу;
— основам RAG для того, чтобы ваш агент давал точные ответы на базе внешних данных;
— контролю стейта в
— обсервабилити в LangSmith для отладки поведения нейросети в режиме реального времени.
Сделайте свой проект по-настоящему умным.
Записаться на курс
Пользователи ждут от интерфейсов автономности. Мы научим вас строить AI-агентов, которые умеют принимать решения, сохранять контекст и надёжно интегрироваться в ваш продукт.
Чему вы научитесь:
— интеграции через n8n для связи фронтенда с мощными AI-сценариями через визуальные воркфлоу;
— основам RAG для того, чтобы ваш агент давал точные ответы на базе внешних данных;
— контролю стейта в
LangGraph для создания надёжных диалоговых систем, которые не «тупят»;— обсервабилити в LangSmith для отладки поведения нейросети в режиме реального времени.
Сделайте свой проект по-настоящему умным.
Записаться на курс
❤4😁2
Правильный ответ:
flex: 1 0 100px = flex-grow: 1, flex-shrink: 0, flex-basis: 100px
flex-grow: 1 — элемент может расти
flex-shrink: 0 — элемент НЕ может сжиматься
flex-basis: 100px — базовый размер 100px
Ширина контейнера: 500px
Базовый размер всех элементов: 3 × 100px = 300px
Свободное пространство: 500px - 300px = 200px
Распределение на 3 элемента: 200px ÷ 3 ≈ 66.66px каждому
Финальный размер каждого элемента: 100px + 66.66px ≈ 166.66px
#code_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰2❤1