Обновить
32K+

NestJS *

фреймворк для создания приложений на Node.js

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

Три года в одиночку: как я строил бэкенд-фреймворк поверх Next.js и что из этого вышло

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

Почти три года я в одиночку строил бэкенд-фреймворк поверх Next.js App Router. По дороге мой ишью закрыл создатель C#, синтаксис подсказал Copilot, а три пакета-адаптера пришлось убить. Рассказываю, что вышло и какие грабли собрал.

Читать далее

Новости

Как мы написали 46K строк на Claude Code и не сошли с ума: практический гайд

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

Vibe coding — это одновременно и мем, и реальность 2025-2026 года. Кто-то называет это будущим разработки. Другие считают, что это способ генерировать технический долг со скоростью света.

Мы решили попробовать создать коммерческий проект с нуля полностью с помощью вайбкодинга. В результате: 46 000 строк кода, полтора месяца, два человека. Проект работает, клиент пользуется.

Вообще как бы нифига себе – написать рабочую CRM, которая автоматизирует обработку входящих запросов и может автоматически работать по сделкам: отвечать на письма, ставить задачи, проводить сделку по воронке.

Читать далее

Как я интегрировал GigaChat API в свой проект: опыт создания AI-ассистента с голосовым управлением

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

Всем привет! Сегодня я хочу поделиться опытом создания веб-приложения на основе GigaChat API от Сбера. В проекте я использовал не только текстовый диалог с нейросетью, но и добавил голосовой ввод (распознавание речи) и озвучку ответов с помощью SaluteSpeech. Получился полноценный голосовой AI-ассистент. В этой статье я расскажу о технических деталях: как получить доступ к API, как организовать обмен сообщениями, кэшировать токены, обрабатывать ошибки и сделать удобный интерфейс.

Читать далее

Парсинг, боль и AI-напарник: Как я в 16 лет строил Open Source API и оптимизировал Postgres

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

Рассказываю историю создания Mumin API — современной Open Source платформы для работы с хадисами. Внутри: битва с «кривыми» PDF-сканами через регулярки Python, ускорение Fuzzy Search в PostgreSQL почти в 2 раза с помощью GIN-индексов, публикация Kotlin SDK в Maven Central и опыт работы с AI как с Senior-напарником. Без «воды», только код, архитектура и реальные грабли 16-летнего разработчика

Читать далее

AI-пайплайн для лендингов: от промпта до продакшена за 3 дня

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

Каждый второй предприниматель хочет "сайт как у Apple". На вопрос "какой бюджет?" — пауза и "ну, тысяч 50 максимум".

Окей.

Проблема в том, что "сайт как у Apple" — это команда из 5+ человек, несколько месяцев работы и бюджет с шестью нулями. Но в 2026 году появилась альтернатива: AI-пайплайн, который позволяет одному человеку собрать лендинг премиального уровня за дни, а не месяцы.

Эта статья — техническое руководство по сборке такого пайплайна. С кодом, промптами, граблями и реальными цифрами.

Дисклеймер: Здесь не будет скриншотов готового сайта. Намеренно. Вместо этого — рабочие промпты и конфигурации. Копируйте, адаптируйте, пробуйте. Лучший способ понять — сделать.

Читать далее

Моя RAG-система: как я за 8 дней собрал RAG для своего сайта визитки

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

За 8 дней частичной занятости я собрал RAG-систему на NestJS + PostgreSQL (pgvector), которая обрабатывает ~11 000 чанков документов.

Первая версия отвечала около 4 минут, после оптимизации - 40–60 секунд.

Главный вывод: RAG - это не «векторный поиск + LLM», а в первую очередь подготовка данных, фильтрация контекста и аккуратная работа с промптами.

Читать далее

Повторяющиеся задачи без RRULE: мой опыт реализации в своём таск-трекере

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

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

У меня был выбор: внедрять тяжелый стандарт RRULE или писать свой велосипед? Для своего трекера задач в Telegram «OK, Bob!» я выбрал второй путь.

В статье рассказываю про подход «буферизированной материализации»: как хранить бесконечные серии в MongoDB, не убивая базу, зачем нужно «скользящее окно» генерации и почему работа с таймзонами сложнее, чем просто хранение в UTC. Разбор архитектуры, кода и неочевидных UX-компромиссов.

Читать далее

Почему я выбрал Warp, а не Cursor или Claude Code: мои инструменты, MCP, подход и конкретные приёмы разработки с LLM

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

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

Всё благодаря правильной связке инструментов, которые превращают AI в младшего разработчика, архитектора и DevOps одновременно. Делюсь конкретикой: почему терминал лучше IDE для AI-разработки, как управлять контекстом через Rules и MCP, какие модели выбирать для разных задач, и почему фреймворки — ваша защита от галлюцинаций LLM.

Читать далее

Obsidian-совместимые заметки в своём приложении: Nest.js, Prisma, gray-matter

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

В этой статье я покажу, как связать Nest.js и Obsidian: хранить заметки в формате Markdown прямо из бэкенда, редактировать и синхронизировать их с базой данных. Если вы тоже любите Obsidian и пишете pet-проекты — это может вам помочь.

Читать далее

CCXT + CoinGecko: гибкий сбор рыночных данных для собственного криптотрекера

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

Небольшой практический разбор библиотеки CCXT - как получать рыночные данные, баланс и историю ордеров с криптобиржи, обрабатывать ответы API и использовать их в локальном приложении. Примеры на Bitget, интеграция с CoinGecko, код на Nest.js с SQLite и Prisma.

Читать далее

О книге «Фулстек JavaScript: Секреты, которые должен знать каждый миддл»

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

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

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

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

Читать далее

Настройка ESLint и Prettier в веб-приложении на Next.js и TypeScript

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

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

В данной статье мы рассмотрим пошаговую настройку ESLint и Prettier на примере нашего веб-приложения, построенного на Next.js и TypeScript.

Читать далее

Как я улучшил свой промпт для генерации кода в OpenAI 4.1 — простой трюк, который РАБОТАЕТ

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

Несмотря на обилие моделей (а я время от времени использую четыре топовые), всё-таки на стыке моих технологий GPT-4.1 даёт лучший результат по сравнению с другими.

 ... я каждый раз сохраняю эти компоненты в файл Google Документы. И каждый раз при генерации новой функции или целого компонента я "вскармливаю" текст из этого документа именно в формате текста. В общем, эта штука работает хорошо.

Пожалуйста, объясни как ты понял мою проблему, почему я считаю что это важно, как ты собираешься это решать и что будет правильным решением.

Читать далее

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

Telegram-бот, который умеет слушать: разработка на grammY

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

Представьте: собеседник отправляет голосовое сообщение на пять минут, а вы не можете отвлечься и прослушать все от начала до конца? Что делать? Максим, ведущий канала RED Group, подошел к вопросу творчески и показал, как на базе grammY и SpeechService в NestJS разработать бота, который будет слушать и структурировать по таймкодам голосовые сообщения.

Инструкция будет полезна новичкам, которые только погружаются в работу с Telegram Bot API с помощью JavaScript. Кроме того, в конце материала мы разберем, как задеплоить готового бота на сервер, чтобы он работал вне зависимости от локальной машины. Подробности под катом!
Читать дальше →

NestJS: guards или как избежать хаоса в безопасности

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

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

Читать далее

100K юзеров за 3 дня — что сломалось после релиза

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

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

В этой статье — история запуска Telegram Mini App, куда за трое суток пришло 100.000 реальных пользователей.

Покажу, как мы масштабировали Node.js приложения на многоядерных серверах, увеличивали RPS в 10 раз, боролись с N+1 проблемой в MongoDB и снижали нагрузку на CPU. А ещё расскажу как мы быстро настроили мониторинг через Grafana, подключили Cloudflare и интегрировали Sentry. Поделюсь практическими инсайтами о том, на что стоит обращать внимание в первую очередь, и как эти инструменты помогли нам оперативно находить узкие места и устранять сбои в реальном времени. Всё, о чём будет в этой статье, основано на том, что действительно сработало. Кроме того, расскажу, какие моменты мы упустили до запуска.

Это разбор с цифрами, графиками и практическими выводами. Он может сэкономить вам время, нервы и деньги, если вы готовитесь к запуску Telegram Mini App или просто работаете с Node.js-приложениями, которые могут оказаться под серьёзной нагрузкой.

Это вторая часть истории — про то, как мы запустились и что сломалось первым после релиза. Тут будет про то, как мы это чинили и какие решения приняли, чтобы приложение продолжало работать под нагрузкой.

Первая часть про подготовку к запуску доступна здесь.

Читать далее

Как я по вечерам разрабатывал Statuser — платформу для мониторинга доступности приложений

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

Привет, меня зовут Михаил Шпаков, я руковожу разработкой в Timeweb Cloud — это крупный облачный провайдер с большой командой и множеством внутренних и внешних продуктов.

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

Так родился statuser.cloud — простой сервис для мониторинга доступности сайтов и серверов. Я хотел сделать его:

— с минималистичным и понятным интерфейсом,

— ориентированным в первую очередь на разработчиков, девопсов, админов,

— с набором действительно нужных фич, ничего лишнего.

В этой статье я расскажу, как вечерами и на выходных делал Statuser (и продолжаю делать): с какими проблемами сталкивался, как выбирал стек, как не бросил проект на полпути — и что получилось в итоге.

Читать далее

100K юзеров за 3 дня — как готовились к релизу

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

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

В этой статье — история запуска Telegram Mini App, куда за трое суток пришло 100.000 реальных пользователей.

Покажу, как мы масштабировали Node.js приложения на многоядерных серверах, увеличивали RPS в 10 раз, боролись с N+1 проблемой в MongoDB и снижали нагрузку на CPU. А ещё расскажу как мы быстро настроили мониторинг через Grafana, подключили Cloudflare и интегрировали Sentry. Поделюсь практическими инсайтами о том, на что стоит обращать внимание в первую очередь, и как эти инструменты помогли нам оперативно находить узкие места и устранять сбои в реальном времени. Всё, о чём будет в этой статье, основано на том, что действительно сработало. Кроме того, расскажу, какие моменты мы упустили до запуска.

Это разбор с цифрами, графиками и практическими выводами. Он может сэкономить вам время, нервы и деньги, если вы готовитесь к запуску Telegram Mini App или просто работаете с Node.js-приложениями, которые могут оказаться под серьёзной нагрузкой.

Это первая часть истории — про то, как мы готовились к запуску, что предусматривали и на что делали ставку.

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

Читать далее

Асинхронность в JavaScript, как использовать в web разработке на React, цепочка промисов и параллельное выполнение

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

Асинхронность в JavaScript, где и как использовать в web разработке на frontend и backend. Цепочка промисов и их параллельные выполнение.

Переходим к Async/await

Композиция DTO в TypeScript

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

Как собирать чистые и переиспользуемые DTO в TypeScript и NestJS с помощью миксинов? Модульность, валидация и никакого дублирования — всё в одном месте.

Читать далее