Justin is a self-taught developer who builds and runs DeelCart himself — from the articles to the server it runs on. He manages his own Linux infrastructure and writes guides based on tools and workflows he actually uses day to day.
Articles by Justin (22)

Preventing VPS CPU Spikes: Implementing and Auditing Compound Indexes in MongoDB
Sustained high CPU with no traffic to explain it often means a collection scan. Here's how I design and audit the index that stops it.
October 19, 2026
Writing a Custom Bash Script to Monitor Server Uptime and Send Discord/Slack Webhook Alerts
One of my four sites went down for twenty minutes before I noticed. I built a bash script so that never happens silently again.
October 3, 2026
Visual Regression Testing with Playwright: Catching UI Breakages Automatically
A CSS change silently broke a layout nobody tested by eye. Here's how I set up Playwright to catch visual breakages before they ship.
October 3, 2026
Securing SSH Access on a Public Linux VPS: Disabling Passwords Safely
The moment a new VPS goes live, bots start brute-forcing SSH. Here's the exact sequence I use to go key-only without locking myself out.
October 2, 2026
Playwright and Streaming Hydration: Why One Hydration Marker Isn't Enough
My hydration marker worked fine until a page had a slow-loading section. One button was ready, another one silently wasn't. Here's the real fix.
October 1, 2026
Setting Up Automated Let's Encrypt SSL Renewals Behind Nginx Reverse Proxies
I assumed Let's Encrypt certs just renewed themselves. One expired anyway, on a server running four separate domains. Here's what I fixed.
October 1, 2026
Handling Content Layout Shifts (CLS): Debugging and Fixing Core Web Vitals with Playwright
PageSpeed Insights kept flagging a layout shift I couldn't reproduce by eye. Here's how I used Playwright to actually catch it in the act.
September 30, 2026
Handling Dynamic Element Hydration and Network Latency Flakiness in E2E Automation Testing
My E2E tests passed locally and failed randomly in CI. The cause was clicks landing before hydration and slow responses. Here's how I made them reliable.
September 29, 2026
How to Set Up Automated Daily Backups for MongoDB to an External S3 Object Storage Bucket
My databases only ever lived on the same server as my apps. One bad night would have meant losing everything. Here's how I fixed that with S3 backups.
September 28, 2026
Hardening Your Nginx Reverse Proxy: Implementing Essential Security Headers for Next.js Apps
My Nginx reverse proxy worked fine functionally but scored an F on a security headers scan. Here's what was missing and how I fixed it properly.
September 27, 2026
Handling Infinite Scroll and Lazy-Loaded Content Reliably in Playwright
My scraper only ever captured the first page of results on sites with infinite scroll. Fixed delays didn't fix it reliably. Here's what actually works.
September 26, 2026
Setting Up a Swap File on a Low-Memory Linux VPS to Prevent Node.js Out-of-Memory Crashes
One of my apps kept dying with no error, just gone. Turned out the OOM killer was ending it. Here's how a swap file fixed it for good.
September 25, 2026
How to Configure Custom Log Rotation for PM2 to Prevent VPS Disk Storage Bloat
PM2 logs every line your apps print, forever, by default. I found that out the hard way when one server ran out of disk space. Here's the fix.
September 25, 2026
Automating Cross-Posting to Social Media: A Reliable Queue Using Official APIs
I built a script that finds new content and posts it across several social platforms automatically, without getting flagged or rate-limited.
September 24, 2026
Detecting and Recovering From a Cryptomining Compromise on a VPS
My server's CPU spiked for no reason I could explain. Here's how I confirmed a cryptomining compromise, shut it down, and locked the server down.
September 23, 2026
Building a Dynamic RSS Feed From a Database in Next.js
One of my RSS feeds sat broken for months, pulling from the wrong data entirely. Here's how I rebuilt it to read live from the database instead.
September 20, 2026
Handling Slug Collisions in an Automated Content Pipeline (MongoDB E11000 Errors)
My import pipeline throws duplicate slug errors regularly. Here's why that's the system working correctly, and how I handle collisions properly.
September 18, 2026
How I Automatically Check Thousands of Time-Sensitive Listings for Expiration
Some content goes stale on its own — a deal expires, a link dies, an offer gets pulled. Checking that by hand across thousands of listings isn't possible
September 16, 2026
Automating IndexNow Submissions So New Pages Get Indexed Faster
Manually submitting URLs to search engines doesn't scale on a site with 1,500+ pages, so I automated IndexNow submissions for new and updated content.
September 12, 2026
Building a Smart Internal Linking System for a Large Content Site (1,500+ Pages)
I run a site with over 1,500 pages of content. Manually adding internal links to every one isn't realistic — so I built a system that does it automatically
September 12, 2026
How to Host Multiple Next.js Apps on One VPS with PM2 and Nginx (Without Port Conflicts)
I run four separate Next.js sites off one DigitalOcean droplet. Here's exactly how PM2 and Nginx are set up to keep them from fighting over the same port.
September 11, 2026
Free Unlimited Custom Domain Email with Gmail and Cloudflare in 2026
A professional custom domain email address — like [email protected] or [email protected] — looks significantly more credible than a Gmail or ..
September 8, 2026