<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Peace Melodi</title>
    <description>The latest articles on DEV Community by Peace Melodi (@peacemelodi).</description>
    <link>https://dev.to/peacemelodi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1143603%2Fb49d7887-db17-4016-8ab1-6a546cdf938b.jpeg</url>
      <title>DEV Community: Peace Melodi</title>
      <link>https://dev.to/peacemelodi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peacemelodi"/>
    <language>en</language>
    <item>
      <title>I Built a CLI Tool That Scaffolds a Production Ready NestJS Project in Seconds</title>
      <dc:creator>Peace Melodi</dc:creator>
      <pubDate>Sun, 28 Jun 2026 22:30:05 +0000</pubDate>
      <link>https://dev.to/peacemelodi/i-built-a-cli-tool-that-scaffolds-a-production-ready-nestjs-project-in-seconds-3ghl</link>
      <guid>https://dev.to/peacemelodi/i-built-a-cli-tool-that-scaffolds-a-production-ready-nestjs-project-in-seconds-3ghl</guid>
      <description>&lt;p&gt;I built a CLI tool that scaffolds a fully production ready NestJS project instantly with one command.&lt;/p&gt;

&lt;p&gt;When you are starting a new NestJS project, the setup is always the same. Database configuration, Docker setup, Swagger, environment variables, linting, formatting, testing. Every single time, before you write one line of real business logic, you are wiring the same things together. That is the problem create-nest-pro solves.&lt;/p&gt;

&lt;p&gt;The tool is built with Commander.js and Inquirer.js. No bloated framework. No unnecessary abstractions. Just a focused CLI that knows exactly what a production NestJS project needs and builds it for you.&lt;/p&gt;

&lt;p&gt;The database layer is handled through TypeORM for PostgreSQL and MySQL, and Mongoose for MongoDB. Whichever you choose, the module is fully configured, the connection is wired through ConfigService, and the environment variables are generated automatically. You do not touch any of that manually.&lt;/p&gt;

&lt;p&gt;Docker is not an afterthought. If you choose Docker, the tool generates a Dockerfile and a docker-compose file built specifically for your chosen database. The containers are pre-wired, the volumes are configured, and the service dependencies are set. One command and your entire stack is running.&lt;/p&gt;

&lt;p&gt;Swagger is configured in main.ts and live at /api the moment your server starts. No extra setup.&lt;/p&gt;

&lt;p&gt;Every project also gets ESLint, Prettier, Jest unit testing, e2e testing with Supertest, environment configuration with dotenv wired through @nestjs/config, and a clean modular folder structure that scales.&lt;/p&gt;

&lt;p&gt;The tool also hits the npm registry at the moment you run it and fetches the latest stable version of every single package. Your project never starts with outdated dependencies.&lt;/p&gt;

&lt;p&gt;npx create-nest-pro@latest&lt;/p&gt;

&lt;p&gt;That is the entire command. Five questions. Seconds later your production ready NestJS project is scaffolded and dependencies are installed.&lt;/p&gt;

&lt;p&gt;npm: &lt;a href="https://www.npmjs.com/package/create-nest-pro" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/create-nest-pro&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/PeaceMelodi/create-nest-pro" rel="noopener noreferrer"&gt;https://github.com/PeaceMelodi/create-nest-pro&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nestjs</category>
      <category>opensource</category>
      <category>node</category>
      <category>docker</category>
    </item>
    <item>
      <title>How I Built a Production Ready Microservice Notification System with NestJS, Redis, Bull Queues, and Docker</title>
      <dc:creator>Peace Melodi</dc:creator>
      <pubDate>Sun, 28 Jun 2026 22:24:34 +0000</pubDate>
      <link>https://dev.to/peacemelodi/how-i-built-a-production-ready-microservice-notification-system-with-nestjs-redis-bull-queues-aa7</link>
      <guid>https://dev.to/peacemelodi/how-i-built-a-production-ready-microservice-notification-system-with-nestjs-redis-bull-queues-aa7</guid>
      <description>&lt;p&gt;I built a real time notification microservice with NestJS, Redis, PostgreSQL, and Docker.&lt;br&gt;
When you are building a system that needs to deliver notifications instantly, a simple REST API is not enough. You need a system that is fast, reliable, and does not collapse when traffic spikes. That is the problem this microservice solves.&lt;br&gt;
The foundation is NestJS with TypeScript. Everything is modular, everything has a clear responsibility, and the codebase scales without becoming a mess.&lt;br&gt;
The first serious architectural decision was Redis. In this system, Redis powers the job queue through Bull. When a notification request comes in, it does not get processed immediately. It goes into a queue stored in Redis and a processor picks it up and handles it. The API responds instantly, the system never gets overwhelmed, and every notification gets processed without anything getting lost. Redis is not just a cache. In this system it is the backbone of the entire asynchronous processing layer.&lt;br&gt;
The notifications are stored permanently in PostgreSQL. Every notification has a type, a read status, a timestamp, and belongs to a specific user. You can filter by read status, filter by notification type, and get an unread count, all from a well structured database.&lt;br&gt;
Real time delivery runs through Socket.IO. When a notification is processed through the queue, it gets pushed instantly to the connected client through a WebSocket. Each user has their own room so notifications are always targeted and never cross between users.&lt;br&gt;
The entire service is containerized with Docker. Without Docker, a backend service works on your machine but behaves differently on a server. With Docker, the application, its dependencies, and its environment are all packaged together. One command and the full system is up, whether that is on your local machine or a production server.&lt;br&gt;
The system also has full unit test coverage across the service layer, controller layer, and WebSocket gateway. Twenty tests, all passing.&lt;br&gt;
This is what backend development looks like when the goal is not just to make something work, but to make something that holds up under real conditions.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/PeaceMelodi/notification-microservice" rel="noopener noreferrer"&gt;https://github.com/PeaceMelodi/notification-microservice&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nestjs</category>
      <category>docker</category>
      <category>postgres</category>
      <category>redis</category>
    </item>
    <item>
      <title>Building a Production Grade Authentication System with NestJS</title>
      <dc:creator>Peace Melodi</dc:creator>
      <pubDate>Sun, 28 Jun 2026 22:11:20 +0000</pubDate>
      <link>https://dev.to/peacemelodi/building-a-production-grade-authentication-system-with-nestjs-3iem</link>
      <guid>https://dev.to/peacemelodi/building-a-production-grade-authentication-system-with-nestjs-3iem</guid>
      <description>&lt;p&gt;Building a Production Grade Authentication System with NestJS&lt;br&gt;
Security is not a feature you bolt on after the fact. It is an architectural decision that shapes every layer of a system, from how requests are received to how identities are verified and how access is enforced. NestJS, with its opinionated structure and enterprise level design philosophy, makes it possible to build authentication systems that are not just functional but genuinely production ready.&lt;br&gt;
The architecture of NestJS is where the conversation starts. Built on top of Node.js and fully written in TypeScript, every concern lives in its own module. Authentication logic does not bleed into user management. Guards do not live inside controllers. This separation is not cosmetic. It is what makes a system maintainable at scale.&lt;br&gt;
The authentication system here is structured around two core pillars: identity and access. An access token with a short expiry window handles active sessions, while a refresh token manages session continuity. When a user logs out, the refresh token is blacklisted in the database, making it permanently invalid regardless of its remaining lifespan. This is the difference between authentication that looks secure and authentication that actually is.&lt;br&gt;
Access control is enforced through a custom roles guard built on top of NestJS's guard system. Routes declare their required roles through a custom decorator, and the guard resolves those requirements against the role embedded in the JWT payload. Brute force protection runs alongside a request throttler that limits the volume of requests hitting sensitive endpoints. One protects the account. The other protects the infrastructure.&lt;br&gt;
What NestJS provides above all else is a framework that enforces discipline. The module system, the dependency injection container, the guard pipeline and the decorator based metadata system are the architectural backbone of systems meant to survive production traffic, evolving requirements, and growing teams. Security at this level is not about any single feature. It is about the sum of deliberate decisions made at every layer of the stack.&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/PeaceMelodi/secure-authentication-api" rel="noopener noreferrer"&gt;https://github.com/PeaceMelodi/secure-authentication-api&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nestjs</category>
      <category>node</category>
      <category>typescript</category>
      <category>backenddevelopment</category>
    </item>
  </channel>
</rss>
