Catalog and listing templates
Generate card, grid, and detail image variants from the same public product originals.
Keep product, CMS, avatar, and uploaded images on their current public origin. Let Angular components request Skymage URLs for exact dimensions, crops, WebP or AVIF output, and cached delivery.
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' })
export class SkymageImages {
url(src: string, params: Record) {
const query = new URLSearchParams(
Object.entries(params).map(([key, value]) => [key, String(value)])
).toString();
return `https://demo.skymage.net/v1/${src}${query ? `?${query}` : ''}`;
}
}
// template
//
A useful Angular image optimization test starts with one component template, one public source path, and enough repeated images to make bandwidth and Core Web Vitals movement visible.
Generate card, grid, and detail image variants from the same public product originals.
Serve heroes, article cards, landing-page media, and proof images from existing CMS assets.
Normalize avatars, screenshots, dashboard previews, and uploaded media into predictable component sizes.
Use one small Skymage image service, then test a single repeated component template before changing every image route in the app.
thumbnail(product: Product) {
return this.images.url(product.image, {
w: 520,
h: 390,
fit: 'cover',
f: 'webp',
q: 82,
});
}
//
Can Skymage transform the public image paths your Angular app already renders?
Can each repeated template request the exact dimensions it displays?
Can views ship WebP or AVIF without changing CMS or upload workflows?
Can one component prove the pattern before app-wide image changes?
Send one public Angular route. Skymage will identify the repeated image template to test first, the URL parameters to try, and whether the current origin fits a low-risk rollout.
Create a Skymage CDN URL, prepend it to your existing image URLs, and let the edge handle optimization, transforms, and delivery.
No credit card required. 14-day free trial.