Berkay Bulut
Posts

MariaDB vs MySQL vs PostgreSQL for Web Apps: The Friendly Guide I Wish I’d Had
That Moment You Ask: Which Database Should I Bet My App On? A few years back, I was nursing a…

Cookies That Behave: SameSite=Lax/Strict, Secure, and HttpOnly Done Right on Nginx, Apache, and in Your App
A couple of Mondays ago, I walked into a gnarly login loop. You know the kind: user signs in, gets…

Serve Now, Fix Quietly: How stale-while-revalidate and stale-if-error Make Caching Feel Effortless on Nginx, Cloudflare, and WordPress
So there I was, Saturday morning, sipping coffee and staring at logs while a client’s site was on the front…

The Calm Way to Secrets on a VPS: GitOps with sops + age, systemd Magic, and Rotation You Can Sleep On
So, Here’s the Secret About Secrets Ever had that moment when you SSH into a VPS, peek at an old…

The Calm Guide to Linux TCP Tuning for High‑Traffic WordPress & Laravel (Without the Drama)
So there I was, staring at a graph that looked like a heartbeat monitor during a sprint. A client had…

Zero‑Downtime DNSSEC: The Friendly Guide to KSK/ZSK Rollover and DS Updates Without Breaking the Internet
So there I was, a Thursday night deployment window that smelled suspiciously like a Friday 2 a.m. outage waiting to…

Dodging the Wall: How I Avoid Let’s Encrypt Rate Limits with SANs, Wildcards, and Calm ACME Automation
Ever had that moment when your deploy goes green, you sip your coffee, and then—bam—Let’s Encrypt says “too many requests”…

CNAME at the Apex? The Friendly Guide to ALIAS/ANAME and Cloudflare CNAME Flattening
So there I was, late on a Tuesday, staring at a DNS panel like it owed me money. A client…

The Sweet Spot for Speed and Compatibility: Serving Dual ECDSA + RSA Certificates on Nginx and Apache
A little story about speed, compatibility, and that tiny lock icon A few years back, a client messaged me late…
