Og Image Design
OG Image Design automation and integration for social media preview image creation
OG Image Design is a community skill for creating Open Graph images for social media sharing, covering template design, dynamic generation, text layout, brand consistency, and platform optimization for link preview images.
What Is This?
Overview
OG Image Design provides tools for creating Open Graph preview images that appear when links are shared on social platforms. It covers template design that creates reusable layouts with brand elements and dynamic text zones, dynamic generation that produces images from page metadata using rendering engines, text layout that positions titles and metadata within image boundaries, brand consistency that applies colors and fonts matching the site identity, and platform optimization that sizes images for display across Twitter, Facebook, and LinkedIn. The skill enables developers to generate link previews automatically.
Who Should Use This
This skill serves web developers adding social sharing previews to sites, marketing teams standardizing link preview images across content, and content platforms generating preview images dynamically for each page.
Why Use It?
Problems It Solves
Links shared without OG images show plain text previews that receive lower engagement on social media. Manually creating preview images for every page does not scale for large sites. Inconsistent OG images undermine brand recognition across social platforms. Different platforms have size requirements that single images may not satisfy.
Core Highlights
Template engine creates reusable image layouts with dynamic text and brand elements. Image generator renders preview images from page metadata automatically. Text renderer positions and wraps text within image boundaries with proper styling. Platform sizer outputs images optimized for each social media display.
How to Use It?
Basic Usage
// OG image generator
const { createCanvas } =
require('canvas');
function generateOG({
title,
description,
author
}) {
const w = 1200;
const h = 630;
const canvas =
createCanvas(w, h);
const ctx = canvas
.getContext('2d');
// Background
ctx.fillStyle =
'#1a1a2e';
ctx.fillRect(
0, 0, w, h);
// Accent bar
ctx.fillStyle =
'#e94560';
ctx.fillRect(
0, 0, w, 6);
// Title
ctx.fillStyle = '#fff';
ctx.font = 'bold 48px'
+ ' sans-serif';
wrapText(ctx, title,
80, 180, w - 160,
60);
// Author
ctx.fillStyle =
'#aaa';
ctx.font = '28px'
+ ' sans-serif';
ctx.fillText(
author, 80, 540);
return canvas
.toBuffer('image/png');
}
function wrapText(ctx,
text, x, y,
maxW, lineH) {
const words = text
.split(' ');
let line = '';
for (const word
of words) {
const test =
line + word + ' ';
if (ctx.measureText(
test).width > maxW) {
ctx.fillText(
line, x, y);
line = word + ' ';
y += lineH;
} else {
line = test;
}
}
ctx.fillText(
line, x, y);
}Real-World Examples
// Template system
class OGTemplateEngine {
constructor(config) {
this.brand =
config.brand;
this.width = 1200;
this.height = 630;
}
render(page) {
const canvas =
createCanvas(
this.width,
this.height);
const ctx = canvas
.getContext('2d');
this.drawBg(
ctx, page.theme);
this.drawTitle(
ctx, page.title);
this.drawMeta(
ctx, page);
this.drawLogo(ctx);
return canvas
.toBuffer(
'image/png');
}
drawBg(ctx, theme) {
const colors = {
dark: '#0f0f23',
light: '#fafafa',
brand:
this.brand.bg};
ctx.fillStyle =
colors[theme]
|| colors.dark;
ctx.fillRect(
0, 0,
this.width,
this.height);
}
drawTitle(ctx, text) {
ctx.fillStyle =
'#ffffff';
ctx.font =
`bold 52px `
+ this.brand.font;
wrapText(ctx, text,
80, 200,
this.width - 160,
64);
}
}Advanced Tips
Cache generated images and regenerate only when metadata changes to avoid rendering overhead during builds. Test images using social media debugger tools to verify display and cropping. Use SVG-based templates rendered to PNG for sharper text and easier modification.
When to Use It?
Use Cases
Generate branded preview images for a blog that includes article title and author on each shared link. Create template-based OG images for a documentation site with section and page titles. Build a dynamic image API that renders preview images on demand from URL query parameters.
Related Topics
Open Graph, social media sharing, image generation, link previews, meta tags, canvas rendering, and brand design.
Important Notes
Requirements
Canvas rendering library such as node-canvas or sharp for image generation. Font files for consistent text rendering across server environments. OG meta tags configured in page HTML to reference generated images.
Usage Recommendations
Do: use the standard 1200 by 630 pixel dimensions that work across major platforms. Keep title text under sixty characters to prevent truncation. Include brand elements like logos and colors for recognition in feeds.
Don't: put important information near image edges since platforms may crop or round corners differently. Use thin or light fonts that become unreadable at small preview sizes on mobile devices. Generate images at build time for pages with frequently changing metadata.
Limitations
Server-side canvas rendering requires system font and graphics dependencies that complicate deployment. Social platform caches delay OG image updates for hours after regeneration. Text wrapping calculations vary by font metrics making pixel-perfect positioning across fonts difficult.
More Skills You Might Like
Explore similar skills to enhance your workflow
Brex Automation
Automate Brex operations through Composio's Brex toolkit via Rube MCP
Interview System Designer
Interview System Designer automation and integration
Kraken Io Automation
Automate Kraken IO operations through Composio's Kraken IO toolkit via
Addresszen Automation
Automate Addresszen operations through Composio's Addresszen toolkit
Tech Stack Evaluator
Evaluate and compare tech stacks with automated analysis and integration tools
Constitutional Ai
Constitutional AI automation and integration for safe and aligned AI systems