with one click
blog-writing
// Write SEO-optimized blog posts for MyImageUpscaler. Use when creating new blog content, optimizing existing posts, or planning content strategy.
// Write SEO-optimized blog posts for MyImageUpscaler. Use when creating new blog content, optimizing existing posts, or planning content strategy.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | blog-writing |
| description | Write SEO-optimized blog posts for MyImageUpscaler. Use when creating new blog content, optimizing existing posts, or planning content strategy. |
Before starting: Read recent entries to understand what topics and angles have already been covered.
tail -60 .claude/skills/blog-changelog.md
After finishing: Append a brief entry.
cat >> .claude/skills/blog-changelog.md << 'EOF'
## YYYY-MM-DD
### Write: [slug or topic]
**Why:** [keyword opportunity / content gap]
**Changes:**
- `slug` — [topic summary, target keyword, word count]
EOF
content/blog/ # Blog posts (MDX format)
├── *.mdx # Individual posts
app/blog/
├── page.tsx # Blog listing page
└── [slug]/page.tsx # Individual post page
public/before-after/ # Before/after comparison images
├── girl-before.webp
├── girl-after.webp
├── bird-before.webp
└── bird-after.webp
---
title: "Post Title - Include Primary Keyword"
description: "150-160 chars. Include keyword and value prop. End with action."
date: "YYYY-MM-DD"
author: "MyImageUpscaler Team"
category: "Tutorials" | "Comparisons" | "E-commerce" | "Tips"
tags: ["tag1", "tag2", "tag3", "tag4"]
image: "/blog/images/post-cover.jpg" # Optional: OG image
---
/pricingVisual rhythm: Text → Image → Text → Table → Text → Image → CTA
/pricing, other blog postsReference /docs/SEO/keywords.csv for keyword research:
| Volume | Priority | Example |
|---|---|---|
| 500K+ | High | "image upscaler", "ai photo enhancer" |
| 50K+ | Medium | "upscale image to 4k", "free image upscaler" |
| 5K+ | Low | "best ai upscaler", "photo resolution enhancer" |
<Callout type="tip">Pro tip content here.</Callout>
<Callout type="info">Informational content here.</Callout>
<Callout type="warning">Warning or caution content here.</Callout>
| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| Data 1 | Data 2 | Data 3 |
\`\`\`
Code or formula here
\`\`\`
Reference images from /public/ using absolute paths:

For before/after comparisons:
| Before | After |
| --------------------------------------------------- | ------------------------------------------------- |
|  |  |
Use free stock photo APIs to add relevant images to blog posts. Every post should have 2-4 images placed contextually throughout the content.
Minimum images per post: 3
Contextual relevance rules:
| Post Topic | Image Ideas | Unsplash Search Terms |
|---|---|---|
| Old photo restoration | Vintage photos, family albums, old cameras | "vintage photographs", "old family photos", "photo album" |
| Social media | Phone with apps, content creation, influencer | "social media phone", "instagram", "content creator" |
| E-commerce | Product photography, online shopping, packaging | "product photography", "ecommerce", "online store" |
| Printing | Printer, photo prints, frames | "photo printing", "framed photos", "print shop" |
| General upscaling | High-res landscapes, detailed textures, before/after | "high resolution", "detailed photo", "sharp image" |
In-content image format:
## Section About Scanning Old Photos
When scanning vintage photographs, resolution matters more than you might think.

The key is to capture as much detail as possible from the original...
Image placement rules:
Source URL Pattern:
https://unsplash.com/photos/{photo-id}
Direct Image URL (for downloading):
https://images.unsplash.com/photo-{id}?w=1200&q=80
How to find images:
/public/blog/images/{post-slug}/Example workflow:
# Create directory for post images
mkdir -p public/blog/images/restore-old-photos
# Download image (use curl or wget)
curl -o public/blog/images/restore-old-photos/vintage-camera.jpg \
"https://images.unsplash.com/photo-1542567455-cd733f23fbb1?w=1200&q=80"
Attribution: Unsplash images are free to use without attribution, but credit is appreciated:

_Photo by [Photographer Name](https://unsplash.com/@username) on Unsplash_
| Source | URL | License | Best For |
|---|---|---|---|
| Unsplash | unsplash.com | Free, no attribution required | High-quality photos |
| Pexels | pexels.com | Free, no attribution required | Lifestyle, business |
| Pixabay | pixabay.com | Free, no attribution required | Illustrations, vectors |
| Lorem Picsum | picsum.photos | Free placeholder | Development/testing |
vintage-photo-album.webp not img123.webppublic/blog/images/
├── {post-slug}/ # Per-post image folder
│ ├── hero.webp # Main/OG image
│ ├── step-1.webp # Tutorial steps
│ └── comparison.webp # Before/after
└── shared/ # Reusable across posts
├── upscaler-ui.webp
└── quality-comparison.webp
Use these directly in markdown with ?w=800&q=80 for in-content images:
# Photography & Cameras


# Old Photos & Nostalgia


# Social Media & Mobile


# E-commerce & Products


# Printing & Frames


# Quality & Detail


| Need | Search Terms |
|---|---|
| Hero images | Add "minimal", "clean background" |
| Technical content | Add "workspace", "desk setup" |
| Before/after concept | "transformation", "comparison" |
| Action shots | "working on", "editing", "creating" |
# Function to download and optimize Unsplash image
download_blog_image() {
local photo_id=$1
local output_path=$2
curl -sL "https://images.unsplash.com/photo-${photo_id}?w=1200&q=80" -o "${output_path}"
}
# Usage
download_blog_image "1542567455-cd733f23fbb1" "public/blog/images/my-post/hero.jpg"
Strategic CTA placement is essential for converting readers into users. Every blog post MUST include multiple CTAs.
IMPORTANT: Link Destinations
/upscaler page - this route does not exist!/?signup=1 (homepage with signup prompt)/pricing/tools/{slug}Use blockquote-style markers to insert standardized CTAs:
| Marker | Type | Best Use Case |
|---|---|---|
> [!CTA_TRY] | Try It | Mid-article, after explaining a concept |
> [!CTA_DEMO] | Demo | After before/after comparisons or visual examples |
> [!CTA_PRICING] | Pricing | Near end, for value-conscious readers |
> [!CTA_TOOL:slug] | Tool-specific | Link to specific tool page (e.g., > [!CTA_TOOL:upscale-image-2x]) |
Minimum CTAs per post: 2
| Placement | When | CTA Type |
|---|---|---|
| After Hook (25% mark) | Reader is engaged, understanding the problem | [!CTA_TRY] |
| Mid-article (50% mark) | After key insight or before/after demo | [!CTA_DEMO] |
| Before Conclusion (75% mark) | Reader has learned, ready to act | [!CTA_PRICING] |
Example placement in article structure:
## Introduction / Hook
(Problem statement, emotional connection)
## Why This Matters
(Context, statistics)
> [!CTA_TRY]
## Main Section 1
(First key insight)
## Main Section 2
(Tutorial steps or comparison)
> [!CTA_DEMO]
## Main Section 3
(Advanced tips)
## Conclusion
> [!CTA_PRICING]
[!CTA_DEMO] after showing visual resultsFor subtle inline CTAs within paragraphs, use markdown links:
Ready to enhance your images? [Try myimageupscaler.com free](/pricing) — 10 credits, no credit card required.
Before publishing:
SEO & Metadata
Content & Links
Images
CTAs (Critical for Acquisition)
> [!CTA_*] markersFinal
yarn verify passes| Slug | Topic | Category | Keywords Covered |
|---|---|---|---|
| ai-image-enhancement-ecommerce-guide | E-commerce AI enhancement | E-commerce | AI enhancement, product photos, conversion |
| best-free-image-upscalers-comparison | Free tool comparison | Comparisons | free upscaler, comparison, reviews |
| how-to-upscale-images-without-losing-quality | Quality upscaling tutorial | Tutorials | upscale, quality, AI upscaling |
| keep-text-sharp-when-upscaling-product-photos | Text preservation | Tutorials | text preservation, product labels |
High-priority topics not yet covered:
kebab-case-with-primary-keyword.mdx
Examples:
✅ restore-old-photos-ai-enhancement.mdx
✅ social-media-image-sizes-2024.mdx
❌ OldPhotoRestore.mdx (wrong case)
❌ photo_restore.mdx (underscores)