Blog

Learned Geek Blog

Technical notes, project documentation, and lessons learned across software, DIY, writing, and more.

Adding New Domains to Your Certbot + Cloudflare Setup
Computers

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.

ssl letsencrypt certbot cloudflare raspberry-pi troubleshooting
SEO Demystified: How to Stop Being Invisible to Google
Computers

SEO Demystified: How to Stop Being Invisible to Google

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.

seo meta-tags open-graph json-ld sitemap aspnet-core
How This Blog Works: From Markdown to Web Pages
Computers

How This Blog Works: From Markdown to Web Pages

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.

blog markdown aspnet-core architecture markdig csharp
TLDRkseid: Building a Discord Bot That Summarizes Chaos
Computers

TLDRkseid: Building a Discord Bot That Summarizes Chaos

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.

discord bot openai csharp dotnet ai side-project
Email Authentication: SmarterASP + Cloudflare DNS
Computers

Email Authentication: SmarterASP + Cloudflare DNS

A programmer's guide to SPF, DKIM, and DMARC - why email authentication exists and how to configure it when your DNS lives in Cloudflare.

email dns cloudflare smarterasp spf dkim dmarc
Resetting a Raspberry Pi Password via WSL
Computers

Resetting a Raspberry Pi Password via WSL

When Windows won't mount ext4 and you've forgotten your Pi's password, WSL and disk images come to the rescue.

raspberry-pi wsl linux password-recovery
VS Code tasks.json for .NET Projects
Computers

VS Code tasks.json for .NET Projects

A reusable task configuration for building, running, testing, and deploying ASP.NET projects with Tailwind CSS.

vscode dotnet tasks deployment tailwind