Twitter/X Card Image Generator
Paste any URL and Oginify paints a card sized for the way X actually renders it — 1200 × 675 at native 2:1, palette tested against the dark chrome, a 20 px inset so the rounded corner mask never clips your headline.
Just shipped the X card generator. Paste any URL → 1200 × 675, summary_large_image, dark-mode safe.

Built for the X timeline, not the OG fallback
Most cards on X are 1200 × 630 OG images that got letterboxed, dark-text-on-dark-bg invisible, or center-cropped through the headline. A purpose-built 1200 × 675 PNG is the cheapest fix.
Painted at native 2:1
Rendered directly at 1200 × 675 — the exact ratio X's summary_large_image renderer expects. No letterboxing, no auto-crop chopping your headline at the centerline of the timeline preview.
Tested against the dark feed
Every palette is QAed against X's dark chrome — the default mode for ~80% of the user base. No pure-black backgrounds that dissolve into the column, no thin gray text that fails WCAG AA at preview size.
Aware of the corner mask
X applies a rounded-corner mask plus a thin chrome border on every card. A 20 px inset keeps your headline, logo and key element clear of both — so nothing important sits in the pixels the timeline crops away.

For posts, replies and quote-tweets
X collapses any link without a valid summary_large_image card into a bare URL — no thumbnail, no headline, no domain badge. In a timeline scrolled with the thumb, that's the difference between a post that earns the click and one the algorithm buries. The fix is a 1200 × 675 PNG painted for the dark timeline and four meta tags wired into your head.
Use it for a launch tweet pointing at the homepage, a thread anchor linking back to a long-form article, a quote-tweet of a competitor where the card has to carry the argument, or a reply in a high-traffic thread where every pixel of preview matters. Oginify ships the PNG plus the meta tags — paste once, validates on the X Card Validator on the first try.
Oginify vs. DIY vs. other card builders.
Run it yourself with our MIT-licensed Agent Skill, let us paint the card for you, or compare against the generic builders.
| Oginify Managed SaaS | Satori / Resvg DIY Open source | Online card builders Generic tools | |
|---|---|---|---|
| Output ratio | 1200 × 675 + 1200 × 630 | Whatever you template | Often only 1200 × 630 |
| Brand match | Auto-detected from page | DIY with your tokens | Generic templates |
| Dark-mode safe | Tested on X dark | You verify it | Rarely |
| Edge-mask inset | 20px built-in | Manual | No |
| Setup | Paste a URL | npx + fonts + edge runtime | Sign up + manual editor |
| Cost | Free · $0.99 optional tip | Free · MIT licensed | Freemium or paid |
| Best for | Ship one X card right now | Agents, CI, content at scale | One-off marketing cards |
| Generate now | View on GitHub | — |
Three reads,one timeline-ready PNG.
Composed the way the X feed renders, not the way an OG validator preview suggests.
extracted.
timeline scroll.
- QAed against X dark chrome (default for most users)
- 20 px inset on every edge to clear the corner mask
- Upper-60% safe zone — survives reply quote-tweet crop
- Headline weight tested at 506-pixel preview width
meta tags.
Twitter Card FAQ
Everything about generating X (Twitter) card images with Oginify — sizes, tags, and how it differs from a regular Open Graph image.
Should I use 1200 × 675 or 1200 × 630?
Use 1200 × 675 (2:1) for X — that's the summary_large_image native ratio and avoids letterboxing on the timeline. Keep 1200 × 630 (1.91:1) as your og:image fallback for Facebook, LinkedIn, Slack, Discord, WhatsApp and iMessage. See the spec table above for the side-by-side.
Which meta tag should I set?
Set twitter:card to summary_large_image, then twitter:title, twitter:description and twitter:image pointing to the PNG Oginify gives you. If you only set og:image, X will fall back to it — but a dedicated 1200 × 675 image looks better.
Does this work for X in dark mode?
Yes. Every style is tested against X's dark-theme background. We avoid pure black backgrounds that disappear into the timeline, and we keep text contrast above WCAG AA at small previews.
Can I use the same image for OG and Twitter?
Yes — many sites do. The 1200 × 630 image will render on X (with slight letterboxing or crop). If you care about the exact framing, generate a dedicated 1200 × 675 here.
Oginify vs the open-source social-cards-skills — which do I pick?
Pick Oginify if you want to paste a URL and ship one X card right now. Pick social-cards-skills if you want to run the same engine inside Cursor, Claude Code, or your CI — at content scale. The comparison table above breaks down setup, brand match and cost for both, plus how each compares to generic online card builders.
Is the generator really free?
Yes. Same product, same engine, no account. The full Oginify pricing page explains the optional $0.99 supporter tip.
Stop letting X
auto-crop your headline.
Paste any URL. Get back a 1200 × 675 PNG plus the four meta tags to drop into your <head> — sized so the timeline preview shows your card the way you composed it.