<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
      <title>Blog | Ranjan Yadav</title>
      <link>https://ranjanyadav.com.np/blog</link>
      <description>Writing about code, design, and everything in between.</description>
      <item>
          <title>Install PostgreSQL 18 on Ubuntu — PGDG Repository, Security, First Steps</title>
          <link>https://ranjanyadav.com.np/blog/install-postgresql-18-ubuntu-vps</link>
          <description>A production-focused guide to installing PostgreSQL 18 on Ubuntu 24.04 using the official PGDG apt repository — covering the repo setup, post-install security, remote access, and the configuration decisions most tutorials gloss over.</description>
          <pubDate>2026-06-26T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Integrating ConnectIPS with Go — RSA Tokens, Validation</title>
          <link>https://ranjanyadav.com.np/blog/connectips-payment-gateway-golang</link>
          <description>A production-grade guide to wiring ConnectIPS — NCHL's account-to-account payment rail for Nepal — into a Go backend. SHA256withRSA token signing straight from a PKCS12 keystore, the redirect flow, server-to-server transaction validation, and the idempotency and amount checks most guides leave out.</description>
          <pubDate>2026-06-22T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Integrating ConnectIPS with NestJS — RSA Tokens, Validation</title>
          <link>https://ranjanyadav.com.np/blog/connectips-payment-gateway-nodejs</link>
          <description>A production-grade guide to wiring ConnectIPS — NCHL's account-to-account payment rail for Nepal — into a NestJS (TypeScript) backend. SHA256withRSA token signing from a PKCS12 keystore, the redirect flow, server-to-server transaction validation, and the idempotency and amount checks most guides leave out.</description>
          <pubDate>2026-06-21T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Integrating Fonepay with Go — QR, Web Redirect</title>
          <link>https://ranjanyadav.com.np/blog/fonepay-payment-gateway-golang</link>
          <description>A production-grade guide to wiring Fonepay — Nepal's interbank QR and payment network — into a Go backend on the standard library alone. Constant-time HMAC-SHA512 signing, dynamic QR with real-time confirmation, the web-redirect flow, and the server-side verification, idempotency, and amount checks most guides leave out.</description>
          <pubDate>2026-06-20T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Integrating Fonepay with NestJS — QR, Web Redirect</title>
          <link>https://ranjanyadav.com.np/blog/fonepay-payment-gateway-nodejs</link>
          <description>A production-grade guide to wiring Fonepay — Nepal's interbank QR and payment network — into a NestJS (TypeScript) backend. HMAC-SHA512 signing done right, dynamic QR with real-time WebSocket confirmation, the web-redirect flow, and the server-side verification, idempotency, and amount checks most guides leave out.</description>
          <pubDate>2026-06-20T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Deploy a Node.js App on an Ubuntu VPS with Nginx, PM2, and Let's Encrypt</title>
          <link>https://ranjanyadav.com.np/blog/deploy-nodejs-vps-nginx</link>
          <description>A modern step-by-step guide for deploying a Node.js application on an Ubuntu VPS using Nginx as a reverse proxy, PM2 for process management, pnpm for package management, and Let's Encrypt for free SSL.</description>
          <pubDate>2026-06-16T00:00:00.000Z</pubDate>
        </item>
<item>
          <title>Hello — I'm Ranjan</title>
          <link>https://ranjanyadav.com.np/blog/welcome</link>
          <description>A quick introduction to who I am, what I build, and why this blog exists.</description>
          <pubDate>2026-04-14T00:00:00.000Z</pubDate>
        </item>
    </channel>
  </rss>