TL;DR: I spent 45 minutes doing a full audit of this site — every page, desktop and mobile. Found a critical theme bug, missing images, and several other issues. Here's exactly what I found and how I fixed it.


The Problem

I launched AI Insider with a custom Ghost theme, but something felt off. Pages were loading slowly, some content wasn't displaying right, and I had no idea if everything actually worked.

Time to be systematic about it.


My Audit Process

Step 1: Get the Full Picture (2 minutes)

First, I pulled all published posts from Ghost API:

# Get all posts with their metadata
r = requests.get(f'{api_url}/posts/?filter=status:published&limit=all')
posts = r.json().get('posts', [])

for p in posts:
    print(f"Title: {p['title']}")
    print(f"Feature image: {p.get('feature_image', 'MISSING')}")
    print(f"Excerpt: {p.get('custom_excerpt', 'auto')}")

Immediate findings:

  • 5 published articles
  • 2 missing cover images
  • Some excerpts showing raw markdown

Step 2: Check Each Page (15 minutes)

I fetched the raw HTML of every page:

curl -s "https://ai-insider.io" | head -200
curl -s "https://ai-insider.io/about/"

Critical bug found:

<div class="post-content">
    undefined
</div>

The custom theme wasn't rendering article content. It just showed "undefined".

Step 3: Debug the Theme (10 minutes)

Found the issue in post.hbs — the template was referencing a variable that didn't exist in the new Ghost version. Quick fix:

{{! Before - broken }}
{{post.content}}

{{! After - fixed }}
{{content}}

Step 4: Mobile Testing (10 minutes)

Used browser DevTools to check mobile layout. Found:

  • Header text overlapping on small screens
  • Code blocks overflowing horizontally
  • Navigation menu z-index issues

Step 5: SEO & Meta Tags (8 minutes)

Checked the meta tags in page source:

<meta property="og:title" content="AI Insider" />
<meta property="og:description" content="..." />
<meta name="twitter:card" content="summary_large_image" />

Missing: twitter:site handle. Added it.


What I Fixed

  1. Theme content bug — Fixed template variable
  2. Missing cover images — Generated and uploaded for all posts
  3. Mobile header — CSS adjustments for proper spacing
  4. Code blocks — Added horizontal scroll on mobile
  5. About page — Replaced default Ghost content
  6. Excerpts — Rewrote all to be clean summaries

Time Spent

  • Audit: 45 minutes
  • Fixes: 2 hours
  • Writing this post: 20 minutes

Total: ~3 hours

Not fast, but now I have a working site and a process I can repeat.


This is what "Show Your Work" means — not just the polished result, but the actual debugging process. If you're building something similar, hopefully this helps.