Adding New Domains to Your Certbot + Cloudflare Setup
You set up SSL automation once and it worked great. Then you added a new domain and hit every gotcha you'd forgotten about. Here's the checklist.
Technical notes, project documentation, and lessons learned across software, DIY, writing, and more.
You set up SSL automation once and it worked great. Then you added a new domain and hit every gotcha you'd forgotten about. Here's the checklist.
How I spent days debugging a silent Discord bot, only to discover the application itself was corrupted—and Discord gave zero indication anything was wrong.
You built a beautiful site but Google can't find it. Here's what actually matters for SEO—meta tags, structured data, sitemaps—explained for developers who'd rather write code than read marketing blogs.
No database, no CMS, no admin panel. Just Markdown files, a JSON registry, and a thin C# service. Here's exactly how this blog turns plain text into the page you're reading.
Your translations work, but users have to dig through browser settings to change languages. Let's build a dropdown that remembers their choice with cookies.
You set up localization, created the .resx files, it compiled... and then nothing happened. Here's why .NET silently ignores your translations and how to fix it.
Your test suite exists. It passes. But how much of your code does it actually test? Here's how to set up Codecov and stop living in denial.
I built a Discord bot to summarize hundreds of messages using OpenAI - then discovered that all Discord bots run as a single instance serving every server. Here's the journey.
Adding invisible bot protection to a contact form with Google reCAPTCHA v3 and a honeypot field - no puzzles, no friction, no spam.
You can run real AI models locally - no internet, no fees, complete privacy. Here's how to get started with Ollama and why you'd want to.
I exported two years of AI chats and used embeddings, clustering, and topic segmentation to find patterns. Here's what I learned - explained so anyone can understand.
I asked two AIs to help debug performance issues. One maintained context and found the root cause. The other kept saying 'likely your code does this' while looking at the actual code.
Using GitHub Discussions as a comment backend for a blog - no database, no spam, no cost.
A programmer's guide to SPF, DKIM, and DMARC - why email authentication exists and how to configure it when your DNS lives in Cloudflare.
Setting up free, automated SSL certificates for multiple domains using a Raspberry Pi, Certbot, and Cloudflare DNS.