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
- Theme content bug — Fixed template variable
- Missing cover images — Generated and uploaded for all posts
- Mobile header — CSS adjustments for proper spacing
- Code blocks — Added horizontal scroll on mobile
- About page — Replaced default Ghost content
- 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.