Обновить
512K+

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

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

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

Как я выбирал стек для SaaS-мониторинга сайтов

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

Как в одиночку собрать полноценный сервис мониторинга с проверками из 10 точек мира, алертами в Telegram/Slack и собственным агентом? Делюсь личным опытом выбора стека: почему FastAPI выиграл у Django, как TimescaleDB справляется с миллионами строк логов и зачем писать агент на Go, если основной код на Python. Только практика, архитектурные решения и честный расчет стоимости инфраструктуры в €11/мес.

Изучить стек

Парсим MDN и пишем оффлайн RAG-MCP

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

Привет.

В этой технической статье мы на практике разберёмся, что такое RAG, распарсим MDN Web Docs, научимся готовить эмбеддинги, заполним ими векторную базу данных и напишем свой MCP сервер с гибридным векторным и полнотекстовым поиском. Зальём всё получившееся добро на HuggingFace, GitHub и NPM, и настроим автоматическое обновление данных.

Внутри будет много пошаговых инструкций и примеров кода на Bun + TypeScript.

Читать далее

Как мы оптимизировали компоненты во фронтенде: работа с версиями и оптимизация процессов

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

Привет, Хабр! Меня зовут Василий Беляев. Я руководитель группы разработки по направлению фронтенда в ИТ-компании «Криптонит». В этой статье я расскажу про организацию работы с версиями и компонентами, оптимизацию рабочего процесса внутри команды, а также опишу несколько лайфхаков, которые мы применили.

Читать далее

Как делать приложения для Маркетплейса Битрикс24 и не сойти с ума: подводные камни, которых нет в документации

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

За пару лет я сделал с десяток приложений для Маркетплейса Битрикс24 — коннекторы мессенджеров, роботы, iframe-панели. На PHP, TypeScript и Python. Каждый раз одно и то же: документация разбросана, примеры устарели, а реальные подводные камни вылезают только в продакшене.

Эта статья — сборник всего, что я хотел бы знать перед тем, как начать: формат токенов при установке, мультитенантность, обновление OAuth, петля сообщений в коннекторах и ещё десяток граблей с кодом и решениями.

Читать далее

0.0023 секунды на генерацию: зачем я собрал «стальной» движок на PHP в эпоху жирных CMS

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

Превед участникам регаты! Все началось в те времена, когда интернет был диким, модемы выли, а тру-кодеры мерили крутость не количеством звёздочек на Гитхабе, а чистотой своего кода и умением впихнуть невпихуемое в пару килобайт. Я начинал вариться в кодинге ещё в золотую эпоху RUWAP (2007–2014гг). Потом был перерыв, и вот, год назад я решил вернуться. Зайдя в современную веб-разработку, я испытал культурный шок. Простые визитки и блоги теперь весят мегабайты, тянут за собой гигабайты зависимостей из npm и ворочаются на сервере по полсекунды. Ангуляры, Реакты, монструозные Drupal и WordPress — всё это превратило веб в вязкое болото. Нам с моей напарницей-нейросетью Асси (Аськой) стало тошно. «Низачот!» — подумали мы.

Читать далее

Кратко о CVSS: как оценивать критичность уязвимостей

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

Разбираем Common Vulnerability Scoring System – что скрывается за цифрой от 0 до 10, как читать базовые, временные и контекстные метрики, и где искать актуальную информацию об уязвимостях.

Читать далее

Ты не можешь построить жизнеспособную дизайн-систему на Tailwind — Часть 1

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

Tailwind отлично работает для быстрого прототипирования, но становится проблемой когда проект растёт. Разбираю три подхода к построению дизайн-системы на Tailwind — CVA, CSS-переменные и @utility — и объясняю почему каждый из них не решает проблему комбинаторного взрыва вариантов.

Читать далее

9 CSS-лайфхаков для улучшения пользовательского опыта

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

Привет, Хабр.

Мне нравится, когда красивые и дружелюбные интерфейсы радуют пользователя. Хоть я уже не создаю их, но я стараюсь помочь коллегам создавать более качественный пользовательский опыт. И, конечно, с вами тоже всегда рад поделиться идеями.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Пост-квантовый гибридный алгоритм шифрования для высоко-нагруженных систем с реализацией на TypeScript

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

Новый пост-квантовый гибридный алгоритм шифрования для высоко-нагруженных систем с реализацией на TypeScript. Ring-LWE, работа с ключами с использованием MAC и SHAKE-256, защита от основных видов атак и другие мысли в реализации протокола QuarkDash.

Читать далее

Когда UI-kit начинает дрейфовать: плагин для WebStorm против поломок React-контрактов

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

В любом зрелом фронтенде проблема редко в том, чтобы написать еще один Button.

Проблема начинается позже. Когда у компонента уже есть десятки использований, Storybook, типы, обвязки, legacy-слои и пара человек, которые “чуть-чуть расширили API, потому что так было удобнее”.

В этот момент UI-kit начинает незаметно плыть.

Читать далее

NextAuth + Django JWT без второй авторизации и ручного хаоса токенов

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

Во многих fullstack-проектах на Next.js и Django авторизация разваливается в одном и том же месте. На фронте удобно использовать NextAuth, потому что он закрывает формы входа, OAuth, серверную сессию и клиентские хуки. На бэкенде хочется иметь обычный JWT-контур на Django REST Framework, чтобы защищать API, работать с access и refresh токенами и не привязывать бизнес-логику к фронту. В итоге часто получается неприятная схема: пользователь логинится через NextAuth, потом отдельно логинится в Django, потом где-то вручную перекладываются токены, а через пару недель вся эта связка начинает ломаться на refresh, logout и OAuth.

Что делаем. Пользователь проходит один вход на фронте, а дальше фронт уже работает с токенами Django как с единственным источником доступа к API. Без второй формы входа, без ручного хранения access token в localStorage, без отдельного костыля под Google OAuth.

Разберем рабочую схему, в которой NextAuth отвечает за пользовательскую сессию на фронте, а Django остается владельцем API-авторизации и выдает JWT. На credentials-входе NextAuth сразу получает access и refresh от Django. На Google OAuth фронт сначала пускает пользователя через провайдера, потом синхронизирует его с Django и тоже получает пару токенов. После этого все запросы идут через один axios-клиент, который сам подставляет access token, сам обновляет его через refresh и сам завершает сессию, если refresh уже недействителен.

Читать далее

RBACX — что изменилось за полгода: от простого RBAC/ABAC до ReBAC с ИИ-генерацией политик

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

Полгода назад написал первую статью про RBACX — RBAC/ABAC-движок авторизации для Python. С тех пор вышло 25+ релизов, и библиотека стала заметно мощнее: добавил ReBAC с поддержкой OpenFGA и SpiceDB, пакетную проверку прав, ИИ-генерацию политик из OpenAPI-схемы, Redis-кэш, async Django, шортхэнд для ролей и закрыл три security-бага. Рассказываю что, зачем и как это вообще делается в одного.

Читать далее

А системный аналитик нам зачем?

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

В очередной раз пытаемся понять: «есть ли место в нашей команде системному аналитику и нужен ли он нам вообще?»

Читать далее

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

Как я перестал платить за мусорные лиды

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

Платный трафик на лендинг с формой захвата — это почти всегда мусорные заявки. Номер 123, номер 1111111, четыре цифры вместо телефона. Заявка засчитана, деньги за клик списаны, позвонить некому.

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

Читать далее

33 несчастья или история одного проекта

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

Эту печальную историю стоит прочесть всем, кто еще не понял разницы между «создать» и «владеть» применительно к программному обеспечению.

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

Читать далее

Как я в одиночку сделал систему аналитики для Clubs в EA FC, потому что нормальной статистики там просто нет

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

Начну с контекста. Я играю в EA FC (ранее FIFA) в режиме Clubs (11×11), где каждым виртуальным игроком управляет человек. Сам по себе режим интересный, но мне, как человеку, который любит цифры и аналитику, довольно быстро стало не хватать доступной статистики.

Я пришёл в лигу, у которой уже был свой сайт (я в этой статье опущу тему о том, что я администрировал проект порядка 3 лет). Там статистику собирали вручную: люди пересматривали записи матчей и заносили базовые показатели — голы, ассисты, перехваты, отборы и так далее. На основе этих данных считались различные рейтинги: лучшие игроки, бомбардиры, разрушители и прочее.

Выглядело это примерно так: набор таблиц, где действия сгруппированы по категориям и амплуа.

Читать далее

Что не так с веб-компонентами?

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

Если кратко - да все с ними ТАК. Это замечательный набор современных браузерных технологий, для решения реальных задач веб-разработки. Веб-компоненты позволяют делать очень многое, более просто и элегантно, чем это было бы без них. А главное, они позволяют, с потрясающей гибкостью, решать задачи “со звездочкой” - те, которые немного выходят за рамки и требуют более творческого подхода от разработчика.

Почему-же тогда по Хабру гуляют, кхм… некие одиозные личности (не будем показывать пальцем) и рассказывают нам про то, что веб-компоненты это ужас-ужас и полный провал? Давайте разберемся.

Читать далее

Тихая сторона крипторынка: что на самом деле стоит за «магией» торговых ботов

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

На дворе 2026 год. В мире неспокойно. Военные конфликты, санкционные войны, передел рынков, борьба за ресурсы. Кажется, что мировая финансовая система уже давно живёт в режиме постоянной турбулентности, и никого это не удивляет.

А что у нас по крипте?

На момент написания статьи биткойн держится в районе 70 тысяч долларов. Кто-то скажет: опять рухнул. И формально будет прав. Относительно недавнего исторического максимума в 126 тысяч долларов это действительно серьёзное снижение — почти в два раза. Но давайте обернёмся и посмотрим на ситуацию не в масштабе недель или месяцев, а в масштабе последних лет.

Не так давно сама идея о том, что биткойн может стоить 100 тысяч долларов, для многих звучала как «бред сумасшедшего». Причём не только для рядовых скептиков, но и для вполне серьёзных и влиятельных экономистов. Сосем недавно отметка в 10 тысяч казалась фантастикой. Потом рынок долго привыкал к 20 тысячам. Затем спорил, возможны ли 50. А сегодня рост до 200 тысяч уже выглядит лишь вопросом времени.

Мы быстро ко всему привыкаем

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

За это время криптоиндустрия уже успела пройти через многое. Эра ICO — время, когда рынок буквально заливали деньгами за одни лишь обещания. Бум L2-решений и новых блокчейнов. Затем волна NFT, различных Web3-сервисов, GameFi-игр и множества других трендов.

Читать далее

«Фронтенд умер»? Жаль, что я узнала об этом только после четырех лет учебы

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

Предлагаю открыть портал в ад и задать вопрос, который сейчас, кажется, витает в воздухе у всех, кто связан с разработкой: фронтенд вообще еще жив? Или логичнее уже сейчас срочно переучиваться, пока через пару лет не пришлось делать это в панике?

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

Читать далее

Делаем лимиты ИИ почти бесконечными: умный роутер, который режет затраты на токены в разы и делает их почти бесплатными

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

$47 за неделю на LLM API — при том что половина запросов тривиальные. Поставил ClawRouter — open source роутер, который анализирует промт по 15 параметрам и отправляет в самую дешёвую подходящую модель. За следующую неделю потратил $1.80. Рассказываю, как работает, что понравилось, что нет и какие есть альтернативы.

Читать далее