Generating social images at the edge with JSX.
Skip to solutionKEEP THE
hardFrontend
How do you implement dynamic Open Graph images in Next.js (ImageResponse)?
373 views
01
Understand the problem
nextjsog-imageimageresponseseo
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Nudge consolestandby
Stuck? Beam a request up — the console returns a conceptual nudge that guides your logic without spoiling the implementation.
03
Study the solution
An opengraph-image.tsx file (or the ImageResponse API from next/og) renders JSX/CSS to a PNG on demand, so you generate per-page social share images with dynamic content (title, author) without a design tool or external service.
Solution ready — 2 min read
Classified // press E to declassify
04
Read the code
Generated OG image for a post
// app/blog/[slug]/opengraph-image.tsx
import { ImageResponse } from 'next/og';
export const size = { width: 1200, height: 630 };
export const contentType = 'image/png';
export default async function OG({ params }) {
const post = await getPost((await params).slug);
return new ImageResponse(
<div style={{ display: 'flex', fontSize: 64, padding: 60 }}>{post.title}</div>,
size,
);
}05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.
Transmission complete // awaiting log
KEEP THE
STREAK ALIVE.
Dossier 87 of 95 decoded in the Next.js track. One more won't hurt.