My Ghost blog now sends emails reliably:How Claude Code Solved My Ghost Blog Email Problem in Minutes

My Ghost blog now sends emails reliably:How Claude Code Solved My Ghost Blog Email Problem in Minutes
Photo by Mohamed Nohassi / Unsplash

I'd been pulling my hair out trying to get my Ghost blog's email system working. Like many self-hosters running Ghost on AWS Lightsail with Bitnami, I thought I could just use Gmail for sending signup and login links to subscribers. Spoiler alert: that didn't work.

The Problem: Ghost + Gmail = Frustration

Ghost needs to send transactional emails—those magic links users click to sign in, password reset emails, and subscriber confirmations. I configured Gmail's SMTP settings in my config.production.json file, triple-checked my app password, restarted Ghost... and nothing. The emails simply wouldn't send.

After a couple of minutes watching test emails fail to arrive, I realized I needed a different approach.

The Failed Solutions

Mailgun was my first alternative. It's the service Ghost's documentation traditionally recommends. But here's the problem: Mailgun eliminated their pay-as-you-go option and now limits their free tier to just 100 emails per day. For a growing blog, that's barely enough for a week's worth of signups. Their paid plans start at $15/month, which felt excessive for my modest needs.

AWS Simple Email Service (SES) seemed like a natural fit since I was already on AWS Lightsail. But the documentation wasn't comprehensive enough for someone who just wanted to get emails working quickly. Between setting up IAM roles, verifying domains, moving out of the sandbox environment, and configuring SMTP credentials, it felt like overkill for simple transactional emails.

I was stuck. The conventional solutions either didn't work or felt too complicated for what should be a simple problem.

Enter Claude AI Pro and Claude Code

This is where things got interesting. I gave Claude Code permission to connect directly to my AWS Lightsail Bitnami Ghost installation via SSH. Within seconds, Claude was examining my configuration files, understanding my setup, and proposing solutions I'd never heard of before.

Claude suggested Resend—an email service I hadn't come across in my previous research. What made this recommendation brilliant wasn't just that Resend exists, but that Claude understood exactly why it was the right fit for my use case:

  • Modern API design that's easier to configure than legacy services
  • Actually generous free tier (perfect for small blogs, unlike Mailgun's current offering)
  • Simple DNS setup without the complexity of AWS SES
  • Ghost-specific integration that just works

The Solution: From Broken to Working in Minutes

Here's what Claude Code did:

  1. Diagnosed the Gmail issue - Explained why Gmail's SMTP isn't reliable for transactional emails from self-hosted applications (rate limiting, security restrictions, etc.)
  2. Set up Resend integration - Modified my Ghost configuration to use Resend's API, including proper error handling
  3. Walked me through DNS settings - Guided me through adding the necessary SPF, DKIM, and domain verification records to my DNS provider
  4. Tested the configuration - Verified that emails were actually sending and arriving

Within minutes of making the DNS changes, I sent a test signup email. It arrived instantly. Password reset links worked. Everything just... worked.

Why This Matters

What struck me most wasn't just that the problem got solved—it was how it got solved. Instead of spending hours:

  • Reading documentation for services I'd never heard of
  • Comparing pricing tiers and discovering hidden limitations
  • Manually editing configuration files hoping I didn't break something
  • Troubleshooting why Mailgun's pay-as-you-go disappeared or why AWS SES felt so incomplete

I had an AI assistant that:

  • Connected directly to my production environment
  • Understood the full context of my Bitnami Ghost setup
  • Suggested modern solutions I wouldn't have found on my own
  • Made changes safely and explained each step
  • Actually tested that it worked

This is the future of technical problem solving. Not replacing developer knowledge, but augmenting it with AI that can navigate the overwhelming landscape of tools and services to find what actually fits your specific situation.

The Takeaway

If you're running Ghost on AWS Lightsail (or anywhere else) and struggling with email delivery:

  1. I won't use Gmail SMTP for transactional emails it's not designed for this
  2. Skip Mailgun unless you need their enterprise features, their free tier is too restrictive now and pay-as-you-go is gone
  3. AWS SES works but may be more complex than you need for a simple blog
  4. Consider Resend as a modern, developer friendly alternative with actually useful free tiers
  5. Use Claude Code if you're a Claude AI Pro subscriber, having an AI that can directly access and modify your server configuration is a game-changer

My Ghost blog now sends emails reliably, and I learned about a service I'd have never discovered on my own. Sometimes the best solutions come from asking the right questions to the right assistant.

David Cooney

David Cooney

David possesses a unique blend of technical expertise in website and web application development, SEO optimization, digital marketing, complemented by a creative flair as a musician and sculptor.
Ottawa