#nestjs — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #nestjs, aggregated by home.social.
-
Откуда пришли пользователи: first-touch attribution для NestJS + React + Telegram Mini App в 100 строк кода
Я делаю голосовой AI-репетитор английского. Продукт живёт в трёх местах: веб-сайт speakwithai.pro , Telegram Mini App и Android-приложение в RuStore. У меня одна и та же база пользователей на NestJS + Postgres, и мне очень нужен ответ на вопрос: откуда вообще приходят люди? Yandex.Metrika и Google Analytics показывают только сайт. Telegram Mini App для них — чёрный ящик. Android-приложение через WebView — тоже. Из 6000 просмотров статьи на Habr я не мог сказать, сколько оттуда пришло в продукт, и через какой канал (TG, веб, app). Я не хотел тащить большую CDP вроде Mixpanel или Amplitude — для соло-разработчика это overkill. Вечером сел и сделал simplest-thing-that-could-possibly-work: одна колонка в БД, парсится при первом визите, читается на регистрации. 100 строк кода. Делюсь. Если интересно посмотреть на сам продукт — он живёт здесь: 🤖 Telegram-бот 🌐
https://habr.com/ru/articles/1030560/
#attribution #firsttouch_attribution #UTMметки #Telegram_Mini_App #start_param #NestJS #React #вебаналитика #TypeScript #маркетинговая_аналитика
-
Приложение полностью написанное AI
У меня возникла идея провести эксперимент, чтобы лучше понять текущие возможности агентов для написания кода. Ну и кроме этого протестировать рынок и понять что нас ожидает в ближайшем будущем в плане изменения подходов к разработке. Я хочу написать мобильные приложения для iOS и Android начиная от дизайна и до деплоя с помощью Claude Code.
https://habr.com/ru/articles/1021492/
#ai #tailwind #angular #nestjs #postgresql #mobile_development
-
Приложение полностью написанное AI
У меня возникла идея провести эксперимент, чтобы лучше понять текущие возможности агентов для написания кода. Ну и кроме этого протестировать рынок и понять что нас ожидает в ближайшем будущем в плане изменения подходов к разработке. Я хочу написать мобильные приложения для iOS и Android начиная от дизайна и до деплоя с помощью Claude Code.
https://habr.com/ru/articles/1021492/
#ai #tailwind #angular #nestjs #postgresql #mobile_development
-
Приложение полностью написанное AI
У меня возникла идея провести эксперимент, чтобы лучше понять текущие возможности агентов для написания кода. Ну и кроме этого протестировать рынок и понять что нас ожидает в ближайшем будущем в плане изменения подходов к разработке. Я хочу написать мобильные приложения для iOS и Android начиная от дизайна и до деплоя с помощью Claude Code.
https://habr.com/ru/articles/1021492/
#ai #tailwind #angular #nestjs #postgresql #mobile_development
-
Приложение полностью написанное AI
У меня возникла идея провести эксперимент, чтобы лучше понять текущие возможности агентов для написания кода. Ну и кроме этого протестировать рынок и понять что нас ожидает в ближайшем будущем в плане изменения подходов к разработке. Я хочу написать мобильные приложения для iOS и Android начиная от дизайна и до деплоя с помощью Claude Code.
https://habr.com/ru/articles/1021492/
#ai #tailwind #angular #nestjs #postgresql #mobile_development
-
152-ФЗ и LLM несовместимы по умолчанию: как мы это исправили без потери качества AI
Строим AI-ассистента для бизнеса — и обнаруживаем, что каждое сообщение пользователя с персональными данными уходит в Google. Рассказываю, как это исправить, не сломав UX. Когда мы запускали AI-ассистента для квалификации лидов в строительном бизнесе, первый же вопрос от клиента поставил меня в тупик: «А куда уходят персональные данные, которые люди вводят в чат?» Я знал ответ. И он мне не нравился. Пользователь пишет: «Меня зовут Дмитрий, наша компания ООО Ромашка, телефон +7 903 123-45-67, email [email protected] » . Это сообщение в том же виде уходит в Google Gemini API для генерации ответа. Google получает PII — имя, телефон, email конкретного человека. Каждый раз. С каждым пользователем. Для бизнеса в России это три проблемы одновременно. Юридическая. 152-ФЗ требует, чтобы персональные данные российских граждан обрабатывались на территории РФ. Передача данных на серверы Google — даже для обработки, не хранения — это трансграничная передача данных, которая требует уведомления Роскомнадзора и согласия субъекта. Штрафы начинаются от 3 млн рублей. Бизнес-риск. Контактная база клиентов — главный актив отдела продаж. Отдавать её в третьи руки, пусть даже крупной корпорации — вопрос корпоративной гигиены. Этика. Клиент пишет в ваш чат. Он доверяет вам свои данные. Не Google. Задача сформулировалась чётко: большая языковая модель должна вести диалог естественно — обращаться по имени, знать компанию, упоминать email — но никогда не получать реальные персональные данные. Звучит как противоречие. Решение оказалось элегантным.
https://habr.com/ru/articles/1015694/
#информационная_безопасность #персональные_данные #152ФЗ #LLM #большие_языковые_модели #защита_данных #NestJS #Gemini_API #PII #разработка
-
Парсинг, боль и AI-напарник: Как я в 16 лет строил Open Source API и оптимизировал Postgres
Рассказываю историю создания Mumin API — современной Open Source платформы для работы с хадисами. Внутри: битва с «кривыми» PDF-сканами через регулярки Python, ускорение Fuzzy Search в PostgreSQL почти в 2 раза с помощью GIN-индексов, публикация Kotlin SDK в Maven Central и опыт работы с AI как с Senior-напарником. Без «воды», только код, архитектура и реальные грабли 16-летнего разработчика
https://habr.com/ru/articles/1002178/
#NestJS #PostgreSQL #Prisma #Open_Source #API #Kotlin #Claude #Парсинг #Trigrams #Fullstack_разработка
-
RE: https://mastodon.social/@h4ckernews/116105137504773423
I have a good story with #dependabot
I was working with a team that depended totally in #bots #llms #ai stack. So one day checking PRs I noticed a PR that overrides the dependencies of the framework that we used to build an API( #NestJS ) Yeah it was overriding the depends of Nestjs in our repo, I mean the dependencies of the dependenciesWhy?
They told me that dependabot warnings about it.
I'm pretty sure the solution came from #chatgpt hahahahaahhaa
-
RE: https://mastodon.social/@h4ckernews/116105137504773423
I have a good story with #dependabot
I was working with a team that depended totally in #bots #llms #ai stack. So one day checking PRs I noticed a PR that overrides the dependencies of the framework that we used to build an API( #NestJS ) Yeah it was overriding the depends of Nestjs in our repo, I mean the dependencies of the dependenciesWhy?
They told me that dependabot warnings about it.
I'm pretty sure the solution came from #chatgpt hahahahaahhaa
-
RE: https://mastodon.social/@h4ckernews/116105137504773423
I have a good story with #dependabot
I was working with a team that depended totally in #bots #llms #ai stack. So one day checking PRs I noticed a PR that overrides the dependencies of the framework that we used to build an API( #NestJS ) Yeah it was overriding the depends of Nestjs in our repo, I mean the dependencies of the dependenciesWhy?
They told me that dependabot warnings about it.
I'm pretty sure the solution came from #chatgpt hahahahaahhaa
-
RE: https://mastodon.social/@h4ckernews/116105137504773423
I have a good story with #dependabot
I was working with a team that depended totally in #bots #llms #ai stack. So one day checking PRs I noticed a PR that overrides the dependencies of the framework that we used to build an API( #NestJS ) Yeah it was overriding the depends of Nestjs in our repo, I mean the dependencies of the dependenciesWhy?
They told me that dependabot warnings about it.
I'm pretty sure the solution came from #chatgpt hahahahaahhaa
-
Универсальный Backend for Frontend для всех платформ RUTUBE
У аббревиатуры BFF кроме Backend for Frontend есть и другая расшифровка — Best Friends Forever. И в контексте статьи это только отчасти шутка. Общение фронтенда и бэкенда не всегда происходит гладко (опустим тот факт, что существует множество мемов о противостоянии фронтендеров и бекендеров): клиент запрашивает данные, бэкенд отдаёт то, что запросили, но часто данных сильно больше, чем нужно, а это значит, что запрос будет возвращаться дольше, фронтенд будет отрисовываться тоже дольше и всё это отразится на опыте конечного пользователя. А что если между фронтендом и бэкендом построить мостик, который распределит нагрузку и сделает всех дружелюбнее? Примерно в этом и состоит суть паттерна BBF, а в статье разберём подробнее: зачем его внедрять и какую роль он играет в масштабировании современных сервисов; как мы реализуем этот подход в рамках RUTUBE, какой профит он нам даёт; почему мы отказались от GraphQL; в чём отличия от API Gateway и как вообще проектировать такие сервисы.
https://habr.com/ru/companies/habr_rutube/articles/970690/
#bff #nestjs #nodejs #архитектура_приложений #рефакторинг #fastify #redis #backend #frontend #видеосервисы
-
Универсальный Backend for Frontend для всех платформ RUTUBE
У аббревиатуры BFF кроме Backend for Frontend есть и другая расшифровка — Best Friends Forever. И в контексте статьи это только отчасти шутка. Общение фронтенда и бэкенда не всегда происходит гладко (опустим тот факт, что существует множество мемов о противостоянии фронтендеров и бекендеров): клиент запрашивает данные, бэкенд отдаёт то, что запросили, но часто данных сильно больше, чем нужно, а это значит, что запрос будет возвращаться дольше, фронтенд будет отрисовываться тоже дольше и всё это отразится на опыте конечного пользователя. А что если между фронтендом и бэкендом построить мостик, который распределит нагрузку и сделает всех дружелюбнее? Примерно в этом и состоит суть паттерна BBF, а в статье разберём подробнее: зачем его внедрять и какую роль он играет в масштабировании современных сервисов; как мы реализуем этот подход в рамках RUTUBE, какой профит он нам даёт; почему мы отказались от GraphQL; в чём отличия от API Gateway и как вообще проектировать такие сервисы.
https://habr.com/ru/companies/habr_rutube/articles/970690/
#bff #nestjs #nodejs #архитектура_приложений #рефакторинг #fastify #redis #backend #frontend #видеосервисы
-
Универсальный Backend for Frontend для всех платформ RUTUBE
У аббревиатуры BFF кроме Backend for Frontend есть и другая расшифровка — Best Friends Forever. И в контексте статьи это только отчасти шутка. Общение фронтенда и бэкенда не всегда происходит гладко (опустим тот факт, что существует множество мемов о противостоянии фронтендеров и бекендеров): клиент запрашивает данные, бэкенд отдаёт то, что запросили, но часто данных сильно больше, чем нужно, а это значит, что запрос будет возвращаться дольше, фронтенд будет отрисовываться тоже дольше и всё это отразится на опыте конечного пользователя. А что если между фронтендом и бэкендом построить мостик, который распределит нагрузку и сделает всех дружелюбнее? Примерно в этом и состоит суть паттерна BBF, а в статье разберём подробнее: зачем его внедрять и какую роль он играет в масштабировании современных сервисов; как мы реализуем этот подход в рамках RUTUBE, какой профит он нам даёт; почему мы отказались от GraphQL; в чём отличия от API Gateway и как вообще проектировать такие сервисы.
https://habr.com/ru/companies/habr_rutube/articles/970690/
#bff #nestjs #nodejs #архитектура_приложений #рефакторинг #fastify #redis #backend #frontend #видеосервисы
-
Универсальный Backend for Frontend для всех платформ RUTUBE
У аббревиатуры BFF кроме Backend for Frontend есть и другая расшифровка — Best Friends Forever. И в контексте статьи это только отчасти шутка. Общение фронтенда и бэкенда не всегда происходит гладко (опустим тот факт, что существует множество мемов о противостоянии фронтендеров и бекендеров): клиент запрашивает данные, бэкенд отдаёт то, что запросили, но часто данных сильно больше, чем нужно, а это значит, что запрос будет возвращаться дольше, фронтенд будет отрисовываться тоже дольше и всё это отразится на опыте конечного пользователя. А что если между фронтендом и бэкендом построить мостик, который распределит нагрузку и сделает всех дружелюбнее? Примерно в этом и состоит суть паттерна BBF, а в статье разберём подробнее: зачем его внедрять и какую роль он играет в масштабировании современных сервисов; как мы реализуем этот подход в рамках RUTUBE, какой профит он нам даёт; почему мы отказались от GraphQL; в чём отличия от API Gateway и как вообще проектировать такие сервисы.
https://habr.com/ru/companies/habr_rutube/articles/970690/
#bff #nestjs #nodejs #архитектура_приложений #рефакторинг #fastify #redis #backend #frontend #видеосервисы
-
В России блокируют доступ к документации #NestJS, поэтому я решил создать Pull Request, который позволит публиковать её в #GitHubPages.
Кто не может получить доступ к документации вы можете сделать это по этой ссылке https://vladimirleonidovich.github.io/docs.nestjs.com/ или самостоятельно сделать форк репозитория из этого Pull Request https://github.com/nestjs/docs.nestjs.com/pull/3348 с возможностью публикации документации в GitHub Pages. Будет работать до тех пор, пока не заблокируют #GitHub.
#цензура -
Hướng dẫn toàn diện về NestJS cho năm 2023!
Bài viết này là cẩm nang chi tiết về NestJS, một framework TypeScript cho Node.js đang phát triển cực nhanh. NestJS giúp xây dựng các ứng dụng backend cấp doanh nghiệp, có khả năng mở rộng cao và dễ bảo trì, với kiến trúc lấy cảm hứng từ Angular.
#NestJS #LapTrinh #Backend #HuongDan #TypeScript #NodeJS #CongNghe
#Programming #Backend #Tutorial #Techhttps://dev.to/masteringbackend/nestjs-typescript-the-ultimate-guide-2023-i8o
-
Почему я выбрал Warp, а не Cursor или Claude Code: мои инструменты, MCP, подход и конкретные приёмы разработки с LLM
15 лет я не писал код, полностью погрузившись в менеджмент. Но LLM вернули мне сверхспособности: в одиночку за два месяца я переписал легаси-проект с 20 тысячами юзеров, который мучил команды разработчиков годами. Всё благодаря правильной связке инструментов, которые превращают AI в младшего разработчика, архитектора и DevOps одновременно. Делюсь конкретикой: почему терминал лучше IDE для AI-разработки, как управлять контекстом через Rules и MCP, какие модели выбирать для разных задач, и почему фреймворки — ваша защита от галлюцинаций LLM.
-
I ran a local #Kubernetes environment and 5 pods of #nestjs app using #podman and #minikube
It was an interested exercise, I'll add a post to my blog about it. -
CCXT + CoinGecko: гибкий сбор рыночных данных для собственного криптотрекера
Небольшой практический разбор библиотеки CCXT - как получать рыночные данные, баланс и историю ордеров с криптобиржи, обрабатывать ответы API и использовать их в локальном приложении. Примеры на Bitget , интеграция с CoinGecko , код на Nest.js с SQLite и Prisma .
https://habr.com/ru/articles/955328/
#ccxt #coingecko #ohlcv #криптовалюта #nodejs #typescript #javascript #nestjs #petпроект #криптотрекер
-
I started drafting a plugin system for #Auralis 🧩
As a first plugin I plan to publish `@auralis/openapi`
I took inspirations from #NestJS, #Vue, #Vite and other systems. Usually I try first to write the code a consumer of auralis would write and then implement the stuff behind it.
Next step: find a nice lib to generate the json/yml spec response.
-
looking for an #OSS #APIgateway
* API keys (API users) + Oauth (website) for auth
* rate limiting + protection against content crawling
* queuing requests to prevent overloading our self-hosted AI models
* ability to track usage so that we can charge expensive API calls to users/orgs
* basic monitoringAPI will most likely be written in #NestJS, another likely using #FastAPI (or something else in #Python). I like #GitOps. Doesn’t need to handle insane traffic just make the above things easier.
-
Day 7
✅ 24 test suites, 153 tests passing.Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
Next: fine-tuning error handling & exploring e2e strategies.
https://write.as/bmariusz/24-test-suites-153-tests-passing-scaling-confidence-with-every-assertion
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 7
✅ 24 test suites, 153 tests passing.Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
Next: fine-tuning error handling & exploring e2e strategies.
https://write.as/bmariusz/24-test-suites-153-tests-passing-scaling-confidence-with-every-assertion
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 7
✅ 24 test suites, 153 tests passing.Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
Next: fine-tuning error handling & exploring e2e strategies.
https://write.as/bmariusz/24-test-suites-153-tests-passing-scaling-confidence-with-every-assertion
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 7
✅ 24 test suites, 153 tests passing.Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
Next: fine-tuning error handling & exploring e2e strategies.
https://write.as/bmariusz/24-test-suites-153-tests-passing-scaling-confidence-with-every-assertion
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 7
✅ 24 test suites, 153 tests passing.Solid coverage across service and controller layers in my modular monorepo. Strict typing (TypeScript), full DTO validation, and realistic mocks across complex relations (TypeORM).
Next: fine-tuning error handling & exploring e2e strategies.
https://write.tyolabs.com/?p=25
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 6
TL;DR: Groups, memberships, hierarchy — all dynamic now.Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference typesBuilt with NestJS + TypeORM. Documented via Swagger.
https://write.as/bmariusz/building-a-flexible-group-structure-with-nestjs-and-typeorm
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 6
TL;DR: Groups, memberships, hierarchy — all dynamic now.Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference typesBuilt with NestJS + TypeORM. Documented via Swagger.
https://write.as/bmariusz/building-a-flexible-group-structure-with-nestjs-and-typeorm
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 6
TL;DR: Groups, memberships, hierarchy — all dynamic now.Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference typesBuilt with NestJS + TypeORM. Documented via Swagger.
https://write.as/bmariusz/building-a-flexible-group-structure-with-nestjs-and-typeorm
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 6
TL;DR: Groups, memberships, hierarchy — all dynamic now.Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference typesBuilt with NestJS + TypeORM. Documented via Swagger.
https://write.as/bmariusz/building-a-flexible-group-structure-with-nestjs-and-typeorm
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 6
TL;DR: Groups, memberships, hierarchy — all dynamic now.Released backend v0.3.0 🎉
✅ Users can belong to multiple groups with typed roles
✅ Groups can form hierarchical or overlapping structures
✅ Roles are normalized via reference typesBuilt with NestJS + TypeORM. Documented via Swagger.
https://write.tyolabs.com/?p=23
#TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo #rbac #codingdays #swagger #jwt #jwt_auth #programming
-
Day 5
TL;DR: Continued work on backend security — role-based access is now fully wired up.✅ Got fine-grained role-based access control fully working today.
• Roles loaded from PostgreSQL
• Injected into JWT during login
• Validated via custom `@Roles()` + `RolesGuard`
• Authenticated via `@UseGuards(JwtAuthGuard)` globally
• Introduced `@Public()` decorator to bypass guards for public endpoints
• Swagger supports Bearer token for testingTook a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.
Modular, clean, and no magic. Feels good. 👌
more on: https://write.as/bmariusz/continuation-securing-routes-with-jwt-and-role-based-access-control
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 5
TL;DR: Continued work on backend security — role-based access is now fully wired up.✅ Got fine-grained role-based access control fully working today.
• Roles loaded from PostgreSQL
• Injected into JWT during login
• Validated via custom `@Roles()` + `RolesGuard`
• Authenticated via `@UseGuards(JwtAuthGuard)` globally
• Introduced `@Public()` decorator to bypass guards for public endpoints
• Swagger supports Bearer token for testingTook a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.
Modular, clean, and no magic. Feels good. 👌
more on: https://write.as/bmariusz/continuation-securing-routes-with-jwt-and-role-based-access-control
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 5
TL;DR: Continued work on backend security — role-based access is now fully wired up.✅ Got fine-grained role-based access control fully working today.
• Roles loaded from PostgreSQL
• Injected into JWT during login
• Validated via custom `@Roles()` + `RolesGuard`
• Authenticated via `@UseGuards(JwtAuthGuard)` globally
• Introduced `@Public()` decorator to bypass guards for public endpoints
• Swagger supports Bearer token for testingTook a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.
Modular, clean, and no magic. Feels good. 👌
more on: https://write.as/bmariusz/continuation-securing-routes-with-jwt-and-role-based-access-control
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 5
TL;DR: Continued work on backend security — role-based access is now fully wired up.✅ Got fine-grained role-based access control fully working today.
• Roles loaded from PostgreSQL
• Injected into JWT during login
• Validated via custom `@Roles()` + `RolesGuard`
• Authenticated via `@UseGuards(JwtAuthGuard)` globally
• Introduced `@Public()` decorator to bypass guards for public endpoints
• Swagger supports Bearer token for testingTook a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.
Modular, clean, and no magic. Feels good. 👌
more on: https://write.as/bmariusz/continuation-securing-routes-with-jwt-and-role-based-access-control
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 5
TL;DR: Continued work on backend security — role-based access is now fully wired up.✅ Got fine-grained role-based access control fully working today.
• Roles loaded from PostgreSQL
• Injected into JWT during login
• Validated via custom `@Roles()` + `RolesGuard`
• Authenticated via `@UseGuards(JwtAuthGuard)` globally
• Introduced `@Public()` decorator to bypass guards for public endpoints
• Swagger supports Bearer token for testingTook a while to get the role propagation into the token right — the key was enriching the `validateUser()` result, not just fetching data from DB.
Modular, clean, and no magic. Feels good. 👌
more on: https://write.tyolabs.com/?p=21
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
100K юзеров за 3 дня — что сломалось после релиза
Привет, Хабр! В этой статье — история запуска Telegram Mini App, куда за трое суток пришло 100.000 реальных пользователей. Покажу, как мы масштабировали Node.js приложения на многоядерных серверах, увеличивали RPS в 10 раз, боролись с N+1 проблемой в MongoDB и снижали нагрузку на CPU. А ещё расскажу как мы быстро настроили мониторинг через Grafana, подключили Cloudflare и интегрировали Sentry. Поделюсь практическими инсайтами о том, на что стоит обращать внимание в первую очередь, и как эти инструменты помогли нам оперативно находить узкие места и устранять сбои в реальном времени. Всё, о чём будет в этой статье, основано на том, что действительно сработало. Кроме того, расскажу, какие моменты мы упустили до запуска. Это разбор с цифрами, графиками и практическими выводами. Он может сэкономить вам время, нервы и деньги, если вы готовитесь к запуску Telegram Mini App или просто работаете с Node.js-приложениями, которые могут оказаться под серьёзной нагрузкой. Это вторая часть истории — про то, как мы запустились и что сломалось первым после релиза. Тут будет про то, как мы это чинили и какие решения приняли, чтобы приложение продолжало работать под нагрузкой. Первая часть про подготовку к запуску доступна здесь .
https://habr.com/ru/articles/916502/
#telegram #telegram_mini_app #nodejs #nextjs #nestjs #mongodb #нагрузочное_тестирование #масштабирование #docker #cloudflare
-
Day 4
TL;DR: Full Swagger docs + JWT auth with registration and login are live.
Today’s work focused on two key improvements.
1. Swagger documentation was extended across all API layers. DTOs, entities, and controllers were enriched with `@ApiTags`, `@ApiOperation`, `@ApiResponse`, and detailed `@ApiBody` annotations — including real-life examples for request bodies.
2. JWT-based authentication was implemented. A secure registration flow was added, with password hashing via bcrypt. A login endpoint now issues access tokens containing user ID, email, and roles. All logic is encapsulated using Passport strategies (local and JWT). The next step will be protecting routes with guards and role-based access.
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 4
TL;DR: Full Swagger docs + JWT auth with registration and login are live.
Today’s work focused on two key improvements.
1. Swagger documentation was extended across all API layers. DTOs, entities, and controllers were enriched with `@ApiTags`, `@ApiOperation`, `@ApiResponse`, and detailed `@ApiBody` annotations — including real-life examples for request bodies.
2. JWT-based authentication was implemented. A secure registration flow was added, with password hashing via bcrypt. A login endpoint now issues access tokens containing user ID, email, and roles. All logic is encapsulated using Passport strategies (local and JWT). The next step will be protecting routes with guards and role-based access.
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 4
TL;DR: Full Swagger docs + JWT auth with registration and login are live.
Today’s work focused on two key improvements.
1. Swagger documentation was extended across all API layers. DTOs, entities, and controllers were enriched with `@ApiTags`, `@ApiOperation`, `@ApiResponse`, and detailed `@ApiBody` annotations — including real-life examples for request bodies.
2. JWT-based authentication was implemented. A secure registration flow was added, with password hashing via bcrypt. A login endpoint now issues access tokens containing user ID, email, and roles. All logic is encapsulated using Passport strategies (local and JWT). The next step will be protecting routes with guards and role-based access.
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 4
TL;DR: Full Swagger docs + JWT auth with registration and login are live.
Today’s work focused on two key improvements.
1. Swagger documentation was extended across all API layers. DTOs, entities, and controllers were enriched with `@ApiTags`, `@ApiOperation`, `@ApiResponse`, and detailed `@ApiBody` annotations — including real-life examples for request bodies.
2. JWT-based authentication was implemented. A secure registration flow was added, with password hashing via bcrypt. A login endpoint now issues access tokens containing user ID, email, and roles. All logic is encapsulated using Passport strategies (local and JWT). The next step will be protecting routes with guards and role-based access.
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 4
TL;DR: Full Swagger docs + JWT auth with registration and login are live.
Today’s work focused on two key improvements.
1. Swagger documentation was extended across all API layers. DTOs, entities, and controllers were enriched with `@ApiTags`, `@ApiOperation`, `@ApiResponse`, and detailed `@ApiBody` annotations — including real-life examples for request bodies.
2. JWT-based authentication was implemented. A secure registration flow was added, with password hashing via bcrypt. A login endpoint now issues access tokens containing user ID, email, and roles. All logic is encapsulated using Passport strategies (local and JWT). The next step will be protecting routes with guards and role-based access.
https://write.tyolabs.com/?p=19
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices #monorepo
#codingdays #swagger #jwt #jwt_auth #programming -
Day 3 2/2
2. Enabling API documentation with Swagger.I integrated Swagger into the backend (NestJS v10, ESM, Turbo monorepo), using `@nestjs/swagger@7` to match our current framework version.
The docs are now live at `/api/docs`, fully aligned with our global `ValidationPipe` and `AllExceptionsFilter` — ensuring consistent validation and error responses.Next: annotate DTOs, describe endpoints properly, and restrict access.
https://write.tyolabs.com/?p=17
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices
#codingdays #programming -
Day 2:
TL;DR:
❌ `composite: true`
❌ `tsconfig.build.json`
✅ `paths` in `tsconfig.base.json`
✅ `include` shared libs explicitly where needed
✅ `turbo run build` just worksWrestled for hours (~3) with TypeScript `project references` and `paths` in a Turbo monorepo (NestJS, ESM).
Turns out: if you want global aliases like `@my-lib/foo` to *just work* across apps — skip `composite: true` and `tsc --build`.Project references and alias-based path mapping don't mix well when your intent is to keep things simple.
https://write.tyolabs.com/?p=15
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices
#codingdays #programming -
Day 1:
tl;dr: ESM + TS + NestJS + TypeORM is possible, but not recommended for the impatient.Successfully bootstrapped NestJS + TypeORM + PostgreSQL stack using ESM.
It only took:
- 6 hours
- 17 cryptic errors
- 3 existential crisesTurns out, using modern JS modules with legacy decorators is... bold. But hey — it runs now.
https://write.tyolabs.com/?p=13
#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices
#codingdays #programming -
Часть 1: 100K юзеров за 3 дня — что сломалось
Привет, Хабр! В этой статье — история запуска Telegram Mini App, куда за трое суток пришло 100.000 реальных пользователей. Покажу, как мы масштабировали Node.js приложения на многоядерных серверах, увеличивали RPS в 10 раз, боролись с N+1 проблемой в MongoDB и снижали нагрузку на CPU. А ещё расскажу как мы быстро настроили мониторинг через Grafana, подключили Cloudflare и интегрировали Sentry. Поделюсь практическими инсайтами о том, на что стоит обращать внимание в первую очередь, и как эти инструменты помогли нам оперативно находить узкие места и устранять сбои в реальном времени. Всё, о чём будет в этой статье, основано на том, что действительно сработало. Кроме того, расскажу, какие моменты мы упустили до запуска. Это разбор с цифрами, графиками и практическими выводами. Он может сэкономить вам время, нервы и деньги, если вы готовитесь к запуску Telegram Mini App или просто работаете с Node.js-приложениями, которые могут оказаться под серьёзной нагрузкой. Это первая часть истории — про то, как мы готовились к запуску, что предусматривали и на что делали ставку. Во второй части будет про то, что именно сломалось первым после релиза, как мы это чинили и какие решения приняли, чтобы приложение продолжало работать под нагрузкой.
https://habr.com/ru/articles/914606/
#telegram #telegram_mini_app #nodejs #nextjs #nestjs #mongodb #нагрузочное_тестирование #масштабирование #docker #cloudflare
-
Day 0:
TL;DR: Set up the basic foundations for a new system: database schema finalized, core backend modules scaffolded, and initial API contracts defined. The real work begins now.
No hype. Just building.Today I worked on building the core backend infrastructure for a cloud-native insurance platform. Key points:
Modular microservices architecture based on NestJS
PostgreSQL schemas designed for flexibility — no hardcoded values, all dynamic
Using TypeScript with ESM modules for better code organization
Setting up communication patterns between backend and Next.js frontend
Focus on scalability and simplicity in cloud deployment
This lays a solid foundation for a system built from scratch to replace legacy solutions and support future growth.#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices
#codingdays #programming -
Day 0:
TL;DR: Set up the basic foundations for a new system: database schema finalized, core backend modules scaffolded, and initial API contracts defined. The real work begins now.
No hype. Just building.Today I worked on building the core backend infrastructure for a cloud-native insurance platform. Key points:
Modular microservices architecture based on NestJS
PostgreSQL schemas designed for flexibility — no hardcoded values, all dynamic
Using TypeScript with ESM modules for better code organization
Setting up communication patterns between backend and Next.js frontend
Focus on scalability and simplicity in cloud deployment
This lays a solid foundation for a system built from scratch to replace legacy solutions and support future growth.#CloudNative #TypeScript #NestJS #Nextjs #InsuranceTech #Microservices
#codingdays #programming