Обновить
512K+

Веб-разработка *

Делаем веб лучше

368,32
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Пользовательское соглашение на сайт: когда нужно и что учесть, чтобы защитить владельца сайта?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.7K

Если вы из тех владельцев сайтов / интернет-сервисов, которые:
• взяли образец пользовательского соглашения из интернета 
• разработали пользовательское соглашение самостоятельно без привлечения юриста
• считаете, что публикация пользовательского соглашения на сайте – это формальность
то этот материал точно для вас!

Благодаря ему вы сможете:
01 понять, в каких случаях нужно использовать пользовательское соглашение, а в каких иной документ
02 понять реальную цель и ценность данного документа
03 проверить, насколько хорош ваш документ с юридической точки зрения и требуется ли его замена / доработка.

Читать далее

Антидетект-браузеры: почему мультиаккаунтинг вообще работает

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели10K

Антидетект-браузеры обычно обсуждают в двух режимах. Первый — рекламный: «создай сто профилей, работай без банов, всё безопасно». Второй — морализаторский: «это инструмент для серых схем, тему можно закрывать». Оба режима скучные, потому что за ними теряется главное — техническая часть.

Почему сайт вообще может понять, что пять аккаунтов сидят из одного браузера, если у них разные cookies, разные почты и разные прокси? Почему обычная подмена User-Agent давно почти ничего не решает? Почему один профиль выглядит нормально, а другой палится на Canvas, WebGL, timezone, TLS или странной связке параметров? И почему антидетект-браузер иногда действительно помогает мультиаккаунтингу жить дольше, хотя никакой невидимости он не даёт?

В этой статье разберём антидетект-браузеры без рекламной шелухи. Как сайты собирают отпечаток, где появляются связи между аккаунтами, что именно пытается подменять антидетект и почему хорошая маскировка — это не рандом, а согласованная браузерная среда.

Читать статью

Разработали дизайн-концепцию для интернет-магазина KINGSTORE

Время на прочтение3 мин
Охват и читатели8.3K

Как сделать удобный интернет-магазин для техники премиум-класса, если у вас сотни городов и тысячи товаров?

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

Читать далее

Такая разная агентская разработка: эволюция программирования с нейросетями

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели11K

Сегодня уже наверняка никто не станет спорить с тем, что писать код полностью руками — неэффективно. Но даже при разработке с помощью агентов есть оптимальные и не оптимальные пути работы с ними. В статье поговорим на тему того, какие вообще есть варианты агентской разработки и как можно повысить их эффективность.

Читать далее

5 слоев кэширования в веб-приложениях: Полное руководство для Python-разработчиков

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.4K

Содержание

Кэширование — ключевой механизм оптимизации производительности веб-приложений, позволяющий снизить задержки и уменьшить нагрузку на серверы. В этой подробной статье рассмотрим пять основных уровней кэширования, применимых в современных веб-системах. Ты узнаешь о внутреннем и внешнем кэше, кэшировании на уровне reverse proxy, браузера и фронтенда. 

Статья будет полезна как начинающим, так и опытным разработчикам, которым интересно углубить понимание кэширования и повысить эффективность своих проектов.

Читать далее

Предотвращение лишних реактивных вычислений

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.9K

Иногда значение меняется на эквивалентное. И здесь существуют разные подходы к отсечению вырожденных вычислений…

Глубоко погрузиться в тему

Wayback Machine как архив IDOR: как временные ссылки перестали быть временными

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели10K

В марте 2026 многие обсуждали ситуацию с доступом к изображениям из ЛС мессенджера MAX по ссылкам, сохранённым через WebArchive. Тогда же многих не устроил ответ компании.

К сожалению, ситуация хуже, чем кажется. Т.к. проблемы не видят не только в MAX, но и в других компаниях (столкнулся с этим, оповещая компании о похожих проблемах). В статье я расскажу, почему считаю ситуацию — проблемой для всех: пользователей, компании, багхантеров. И как связка «WebArchive + IDOR» может стать бомбы замедленного действия для компании.
Более того, эта ситуация — наглядный пример, как отлаженный механизм повышения безопасной разработки (что не найдут внутренние безопасники компании — отловят багхантеры) иногда даёт сбой.

Читать далее

Как запихнуть килограмм LLM в телеграм-бота и не сойти с ума

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Все началось с прикола, я сидел с друзьями и подумал, а вот было бы прикольно запихать разные модели нейросетей в один чат и заставить их думать, что они реальные люди и работают в корпорации. Весь смысл был в том, чтобы это были действительно разные модели и пользователь мог просто между ними переключаться по запросу. Для начала мне нужно было найти зоопарк апи ключей с бесплатными лимитами. Я прошерстил весь интернет и в итоге нашел относительно норм варианты: Groq для LLama, Google AI Studio для Gemma и Gemini. В целом в это время код был простой, правда все время происходил забавный баг, когда пользователь переключался между моделями, одна модель не хотела отдавать очередь другой и просто притворялась ею, но я в целом без трудностей поправил это через системный промт. Однако до конца у меня исправить это так и не получилось, видимо, мои модели слишком тупые.

Читать далее

Сравнение моделей конкурентности JVM языков: Kotlin coroutines, ZIO runtime и Clojure

Уровень сложностиСложный
Время на прочтение9 мин
Охват и читатели7.6K

Coroutine, Fiber, Virtual thread - это всё одно и то же?

Или нет ?

Или нет.

А если под капотом всё равно JVM, почему нельзя просто везде включить virtual threads и успокоиться? Разберемся!

Узнать что есть кроме Java Threads

Шрифтовые иски в РФ: 15,3 млн ₽ взысканий за 5 лет и как технически проверить свой сайт

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели17K

Если вы веб‑разработчик и хоть раз подключали шрифт «потому что он красивее, чем системный Arial» — есть ненулевая вероятность, что у вас на сайте лежит коммерческий гарнитур без лицензии. Российский бизнес три‑пять лет назад массово открыл для себя, что это не безобидно: за период 2021–2025 годов через арбитражные суды по шрифтовым искам взыскано 15,3 млн ₽ (данные Коммерсанта), число исков выросло в 2,5 раза за пять лет, и тренд продолжается.

При этом проверить свой сайт на потенциально опасные шрифты — технически нетривиальная задача. Парсить CSS «как получится» через регулярки не работает: получаются ложные срабатывания на CSS‑ключевые слова, на источниках вроде Яндекс.Метрики, на иконочных шрифтах. Дальше — про правовую сторону вопроса и про то, как мы написали детектор, который этим не страдает.

Читать далее

Scoped Store: Когда useReducer не тянет, а Redux — слишком

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8K

Когда локальный стейт в React-модуле начинает расти - разработчик инстинктивно тянется к useReducer+Context. Это работает, пока не перестаёт: ререндеры везде, провайдеры в елочку, логика размазана. В статье разбираю как этот путь выглядит в реальном продакшне на примере редактора субтитров, и почему паттерн Scoped Store на базе Context+Zustand+useRef решает эту проблему чище и проще.

Читать далее

Cursor в разработке: нейропрототип модуля в корпоративной системе

Время на прочтение8 мин
Охват и читатели6.9K

Современная корпоративная разработка — это всегда про компромиссы. Нужно быстро прототипировать, но при этом не потерять в качестве кода. Хочется держать в голове всю архитектуру — и фронтенд, и бэкенд, и контейнеризацию, и тесты. А по факту время уходит на переключение между десятками вкладок, согласование REST-контрактов и разбор ошибок по логам.

В этой статье мы расскажем, как в проекте нейропрототипа модуля Планирования (PlanningProto) мы использовали Cursor — редактор с ИИ, который встроен прямо в репозиторий.

Читать далее

Как узнать все, о чем думают пользователи, когда бросают покупки: гайд по онлайн-опросам

Время на прочтение10 мин
Охват и читатели7K

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

В статье разобрал, где и когда задавать вопросы, какие метрики (NPS, CES, CSAT) использовать, как избежать типичных ошибок и превратить фидбек в реальные действия по повышению конверсии, чтобы убрать барьеры на пути клиента.

Читать далее

Ближайшие события

Я сделал приложение в Курсоре за выходные и зарабатываю 1,29 млн рублей в месяц

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели89K

Большинство историй про маленькие продукты, которые один человек запускает в свободное время, мы разбираем в комьюнити и видим одно и то же: человек годами придумывает «ту самую» идею, а когда возможность появляется прямо под носом, проходит мимо. А рынок не ждёт, окно открывается и закрывается уже через пару дней.

Денис это окно не пропустил. Когда Microsoft объявила, что закрывает Skype, он за выходные собрал простую замену и сразу начал продвигать сервис. Через 11 месяцев Yadaphone вышел на $17 500 в месяц, Денис развивает его один, без инвестиций и наёмных сотрудников.

Он сам расскажет, как это было.

Читать далее

Управляемый прокруткой CSS в 2026 году — разработка карусели без JavaScript

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели11K

Исторически создание карусели в веб-разработке означало использование какой-либо JS-библиотеки. Slick, Swiper, Flickity, Embla Carousel и другие заполняли пробел платформы. Каждая из них увеличивала размер сборки, имела свои особенности обеспечения доступности и накладные расходы на обработку событий. Полный минифицированный пакет Swiper v11 весит приблизительно 140 КБ; даже модульные импорты составляют 40-60 КБ для ядра и навигации. Умножьте это на бесчисленные маркетинговые страницы, галереи товаров в электронной коммерции и макеты с большим количеством медиаконтента, которые зависят от каруселей, и расходы сильно возрастут: долгое время до интерактивности, блокировка основного потока во время инициализации и большой размер передаваемых данных на каждой странице, где используется слайдер.

Читать далее

Build-time микрофронтенды, или делай проще

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели11K

Привет, меня зовут Александр Богданов, я ведущий фронтенд-разработчик стрима «Программы лояльности» в MWS. Наша команда отвечает за развитие и поддержку продуктов МТС Premium и МТС Cashback. 

На 2025 год у нас было три активных пользовательских витрины, которые использовали разный стек, разные дизайн-системы, по-разному взаимодействовали с бэкенд-сервисами и имели еще целый набор мелких отличий. Из-за этого разработке приходилось поддерживать зоопарк решений и технологий, а также многократно повторять одни и те же действия на разных стеках. Высокие time-to-market и стоимость разработки одной фичи закономерно не устраивали бизнес, поэтому перед нами поставили задачу — перейти на архитектуру микрофронтендов.

В посте расскажу, как мы это сделали с помощью npm-пакетов и какие результаты получили.

Читать дальше

Где лучше размещать блог компании: на поддомене или внутри основного сайта

Время на прочтение22 мин
Охват и читатели7.5K

Всем привет! Меня зовут Владимир Назаров, основатель агентства Head Promo. В последнее время, ввиду того, что мы активно развиваем направления GEO и контент-маркетинга стали появляться вопросы от клиентов: где размещать блог — внутри основного сайта или на отдельном поддомене? Делать site.ru/blog/ или blog.site.ru. На первый взгляд это техническая мелочь. На практике — архитектурное решение, которое влияет на GEO, SEO, индексацию, внутреннюю перелинковку, аналитику, скорость работы редакции, риски для основного домена и даже на то, насколько хорошо бренд будет считываться поисковыми системами и нейросетями.

Почти всегда проблема не в том, что бизнес не знает «правильный ответ», а в том, что пытается выбрать архитектуру в отрыве от цели контента. А здесь как раз нет универсального решения.

Если совсем коротко: для усиления основного сайта в большинстве случаев лучше блог в папке. Но если вы строите отдельное медиа, комьюнити, клуб, форум, UGC-платформу или контентный проект с другой редакционной и технической логикой, поддомен может быть не ошибкой, а правильным выбором.

Ниже — подробный разбор с учетом Google, Яндекса, SEO, GEO/AEO и реальных российских и международных кейсов.

Читать далее

Как я создавал платформу для внутренних торгов мебелью и почему для этого выбрал PocketBase + Nuxt 3

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели12K

Привет, Я Ваня Демидов, разработчик Selectel.

Осенью наша компания решила запустить платформу, на которой сотрудники могли бы купить ненужную офисную мебель. Например, ту, что перестала подходить к обновленному дизайну переговорок, кофе-пойнтов или рабочего спейса. В этой статье я расскажу, как создавал такую платформу и поделюсь опытом использования Nuxt3 и Pocketbase.

Читать далее

Надежный фейс-контроль: как прикрутить MFA к веб-сервису через Nginx и OAuth2 Proxy

Время на прочтение14 мин
Охват и читатели13K

Подключить MFA к современному веб-приложению обычно несложно: достаточно подключить SAML или OIDC на стороне самого приложения и включить второй фактор на Identity Provider. Проблемы начинаются там, где сервис не умеет ни в SAML, ни в OIDC, а переписывать его рискованно, дорого или попросту некому.

Во многих корпоративных сетях до сих пор живут монолитные legacy-системы, которые лучше не трогать, и кастомные сервисы, давно оставшиеся без активного развития.
На такой случай придумана концепция предаутентификации. Она позволяет вынести всю сложную логику проверки прав, работу с токенами и криптографией на внешний контур. По сути, перед приложением устанавливается барьер, который отсекает нелегитимные запросы еще до того, как они дойдут до бэкенда.

В этой статье системный инженер Артур Газеев и я, Аскар Добряков, ведущий эксперт направления защиты данных и приложений в К2 Кибербезопасность разбираем, как вынести MFA на периметр для legacy-системы, которую нельзя быстро переписать. Покажем архитектуру решения, объясним, почему выбрали связку Nginx + OAuth2 Proxy + Indeed AM, и разберем, на каких настройках поднимали и отлаживали эту схему.

Читать далее

Я хотел adjustResize. Получил adjustNothing. Три раунда войны с Android-клавиатурой в WebView

Время на прочтение8 мин
Охват и читатели8.3K

Я юрист. Я не должен был знать слово adjustResize. Сейчас оно мне снится. Это история про три недели борьбы с Android-клавиатурой в WebView, про MutationObserver, который я призвал и пожалел, и про то, как настоящее решение оказалось не там, где я искал. Если у вас в приложении WebView и формы с инпутами — возможно, я сэкономлю вам неделю.

Три недели войны с клавиатурой