Dynamic Open Graph image generator API using Bun

April 4, 2025

Dynamic Cover Image for Meta Tag

Why?

I have created this blog as my rough book and document my life. Inorder to make it SEO friendly, I need to add a dynamic cover image for the meta tag. Consider the image to be just have a background color, title, description and my name.

What?

How?

Prompt

I'm building a dynamic Open Graph image generator API using Bun. The API should:

1. Accept a URL parameter to fetch metadata (specifically the title and description) from the target website.
2. Allow customization of background color (HEX, RGB, or color name).
3. Support flexible title and description positioning (top, center, bottom, or specific coordinates).
4. Generate a properly sized image (1200x630px for optimal social media sharing).
5. Support different fonts and font sizes.
6. Include optional branding elements (logo, watermark).
7. Handle error cases (invalid URLs, timeouts, etc.).

Please provide a step-by-step implementation with code examples for:

1. Setting up the Bun server with appropriate routes
2. Scraping webpage metadata efficiently
3. Image composition with customizable elements
4. Best practices for performance and security

What libraries would you recommend for HTML parsing and image manipulation in Bun? Any performance considerations I should be aware of?

Response

Claude 3.7 Sonnet OpenAI GPT-o1 xAI Grok

Tasks

Packages to be used

  1. SOme
  2. things
Claude 3.7 Sonnet

This content will be hidden until the user clicks on the summary.

You can include any Markdown formatting inside:

  • Lists
  • Bold text
  • Italic text
  • Links
  • Even code blocks
OpenAI GPT-o1 Pro

This content will be hidden until the user clicks on the summary.

You can include any Markdown formatting inside:

  • Lists
  • Bold text
  • Italic text
  • Links
  • Even code blocks
xAI Grok

This content will be hidden until the user clicks on the summary.

You can include any Markdown formatting inside:

  • Lists
  • Bold text
  • Italic text
  • Links
  • Even code blocks