imgix

$npx mdskill add TerminalSkills/skills/imgix

Optimize images instantly with real-time transformations and CDN delivery.

  • Delivers responsive, compressed images directly from storage without pre-processing.
  • Integrates with S3, GCS, and web folders via URL parameters and client libraries.
  • Applies automatic format conversion, compression, and cropping based on request parameters.
  • Returns optimized image URLs and srcsets ready for immediate use in web applications.

SKILL.md

.github/skills/imgixView on GitHub ↗
---
name: imgix
description: >-
  Optimize and transform images with imgix. Use when serving responsive images,
  implementing image CDN, adding real-time transformations, or optimizing
  Core Web Vitals with image delivery.
license: Apache-2.0
compatibility: 'Any web app, React, Next.js'
metadata:
  author: terminal-skills
  version: 1.0.0
  category: content
  tags: [imgix, images, cdn, optimization, responsive]
---

# imgix

## Overview

imgix is a real-time image processing CDN. Point it at your image storage (S3, GCS, web folder), and it serves optimized, transformed images via URL parameters. No pre-processing needed — transformations happen on request and are cached globally.

## Instructions

### Step 1: URL API

```typescript
// lib/imgix.ts — Image URL builder
import ImgixClient from '@imgix/js-core'

const client = new ImgixClient({
  domain: 'myapp.imgix.net',
  secureURLToken: process.env.IMGIX_TOKEN,    // sign URLs to prevent abuse
})

// Responsive image with auto format/quality
const url = client.buildURL('photos/hero.jpg', {
  w: 1200,
  h: 630,
  fit: 'crop',
  auto: 'format,compress',    // WebP/AVIF + quality optimization
  crop: 'faces',               // crop around detected faces
})

// Generate srcset for responsive images
const srcset = client.buildSrcSet('photos/hero.jpg', {
  auto: 'format,compress',
  fit: 'crop',
  ar: '16:9',
})
```

### Step 2: React Component

```tsx
import Imgix from 'react-imgix'

function ProductImage({ path, alt }: { path: string; alt: string }) {
  return (
    <Imgix
      src={`https://myapp.imgix.net/${path}`}
      sizes="(max-width: 768px) 100vw, 50vw"
      imgixParams={{
        auto: 'format,compress',
        fit: 'crop',
        ar: '1:1',
      }}
      htmlAttributes={{ alt, loading: 'lazy' }}
    />
  )
}
```

### Step 3: Video Thumbnails

```typescript
// Extract video thumbnails via URL
const thumbnail = client.buildURL('videos/demo.mp4', {
  fm: 'jpg',
  frame: 1,          // extract frame at 1 second
  w: 640,
  h: 360,
  fit: 'crop',
})
```

## Guidelines

- `auto=format,compress` delivers WebP/AVIF with optimal quality — always include it.
- Sign URLs with secureURLToken in production — prevents parameter tampering.
- imgix doesn't store images — it proxies from your origin (S3, GCS, HTTP).
- Use `buildSrcSet()` for responsive images — generates proper `srcset` with widths.
- Pricing: based on origin images accessed per month, not transformations.

More from TerminalSkills/skills