Skip to content

Using Images and Diagrams in Technical Blog Posts

DodaTech Updated 2026-06-28 5 min read

In this tutorial, you will learn about Using Images and Diagrams in Technical Blog Posts. We cover key concepts, practical examples, and best practices to help you master this topic.

Images and diagrams in technical blog posts communicate architecture, workflows, and data flows visually, reducing cognitive load and increasing reader comprehension of complex topics.

In this lesson, you will learn when to use images versus diagrams, how to create Mermaid diagrams inline, screenshot best practices, image optimization for page speed, and Accessibility through alt text.

What You'll Learn

You will learn how to choose between screenshots and diagrams, create Mermaid diagrams embedded in Markdown, take clear screenshots with annotations, optimize images for fast loading, and write descriptive alt text for accessibility.

Why It Matters

A single architecture diagram can replace 500 words of explanation. Posts with relevant images get 94 percent more views than posts without. Properly optimized images improve page speed and SEO.

Real-World Use

DodaTech's tutorial on DodaZIP compression settings uses a Mermaid flowchart showing the compression pipeline. Readers understand the settings impact in 10 seconds instead of 3 minutes of reading.

flowchart LR
  A[Choose Visual Type] --> B{Need Detail?}
  B -->|Yes| C[Screenshot]
  B -->|No| D{Show Process?}
  D -->|Yes| E[Mermaid Flowchart]
  D -->|No| F{Show Architecture?}
  F -->|Yes| G[Architecture Diagram]
  F -->|No| H[Simple Icon or Table]
  C --> I[Add Annotations]
  E --> I
  G --> I
  I --> J[Optimize & Add Alt Text]
  A:::current
  classDef current fill:#f90,color:#fff,stroke:#333,stroke-width:2px
def generate_image_html(src, alt, caption=None, lazy=True):
    """Generate optimized image HTML with lazy loading."""
    loading = 'loading="lazy"' if lazy else ""
    img = f'<img src="{src}" alt="{alt}" {loading} />'
    if caption:
        img = f'<figure>{img}<figcaption>{caption}</figcaption></figure>'
    return img

html = generate_image_html(
    "/images/dodazip-compression.png",
    "DodaZIP compression settings panel showing compression level slider",
    "DodaZIP compression settings"
)
print(html)
def create_mermaid_diagram(flow_steps):
    """Generate Mermaid flowchart syntax from step list."""
    lines = ["flowchart TD"]
    for i, step in enumerate(flow_steps):
        node_id = f"S{i+1}"
        lines.append(f"  {node_id}[{step}]")
        if i > 0:
            prev = f"S{i}"
            lines.append(f"  {prev} --> {node_id}")
    return "\n".join(lines)

steps = ["Start", "Process Data", "Validate", "Save", "Done"]
diagram = create_mermaid_diagram(steps)
print(diagram)
def optimize_image_metadata(filename, alt_text, title=None):
    """Generate image metadata for SEO optimization."""
    metadata = {
        "filename": filename,
        "alt": alt_text,
        "title": title or alt_text,
        "format": filename.split(".")[-1],
        "recommended_format": "webp",
        "max_width": 800,
        "compression": "lossy 85% quality",
    }
    return metadata

meta = optimize_image_metadata(
    "database-schema.png",
    "Database schema diagram showing users, orders, and products tables"
)
print(meta)

Teacher Mindset

Think of images as visual exclamation points in your content. They emphasize, clarify, and reinforce your written explanations. A screenshot of an error message tells the reader: you are not alone, I have seen this too. A diagram of an architecture says: here is the map, now you can navigate. Every image should earn its place by either teaching faster than words or showing something words cannot.

Common Mistakes in Images and Diagrams

1. Screenshots With Too Much Clutter

A screenshot of your entire desktop with 20 browser tabs open confuses readers. Crop to the relevant area only. Use full-screen capture for the specific window or element.

2. Diagrams Without Context

A diagram without an introductory paragraph leaves readers guessing. Introduce diagrams with a sentence explaining what they show and why it matters.

3. No Alt Text

Screen readers cannot interpret images. Every image needs descriptive alt text that conveys the information the image displays. Alt text also improves SEO.

4. Unoptimized Image File Sizes

A 5 MB screenshot slows your page load. Resize images to max 800px width, compress with lossy WebP format, and lazy load below-the-fold images.

5. Images Without Annotations

A raw screenshot of a settings panel forces readers to hunt for the relevant field. Add arrows, circles, or callout boxes to direct attention to the important part.

Practice Questions

1. When should you use a screenshot instead of a diagram? Use screenshots to show an interface, tool output, or code result. Use diagrams to show processes, architecture, or relationships that are not visible in the interface.

2. What are the recommended image dimensions for blog posts? 800 to 1200 pixels wide. Tall images can be up to 2000 pixels in height. Keep file sizes under 200 KB by using compression and WebP format.

3. How do you write good alt text for technical diagrams? Describe the content and purpose of the diagram. Example: "Flowchart showing the user authentication Process with steps for login, validation, and token generation."

4. Why is Lazy Loading important for images? Lazy loading defers image loading until the image is about to appear in the viewport. This reduces initial page load time and saves bandwidth for readers who do not scroll the full page.

5. Challenge: Create a Mermaid diagram for a process you use daily. Add it to a blog post with an introductory paragraph, alt text, and lazy loading. Compare the post with and without the diagram and note the comprehension difference.

FAQ

What is the best image format for blog posts?

WebP provides the best compression-quality ratio. Use PNG for screenshots with text and JPEG for photographs. Convert all images to WebP at 85 percent quality for optimal performance.

How many images should a blog post have?

One image per 300 to 500 words is a good target. Each image must add value. Do not add images just to break up text — add them to teach.

Can I use Mermaid diagrams in any blog platform?

Mermaid works natively with GitHub, GitLab, and static site generators like Hugo and the DodaTech Python generator. For platforms without Mermaid support, render diagrams to images during build.

Should I create original images or use stock photos?

Original screenshots and diagrams always outperform stock photos for technical content. Developers want to see real interfaces, not generic computer images.

How do I handle images in dark mode?

Use images with transparent backgrounds or create separate images for light and dark modes. SVG diagrams adapt well to both modes. Test images in both themes.

Mini Project

Take a blog post you have written or plan to write. Add at least 2 images: one screenshot with annotations and one Mermaid diagram. Optimize both images to WebP format under 150 KB. Add descriptive alt text and lazy loading. Measure the page load before and after.

What's Next

Blog SEO in the next lesson.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro