Launch tweet
Match the Card to the Announcement
Write the headline you'll tweet, pull the same words into the card so the preview and the copy read as one thought.
Sized for how X actually renders — palette tuned against the dark chrome, headline inset so the rounded-corner mask never clips it, aspect matched to the native summary card
Just shipped the X card generator. Paste any URL → 1200 × 675, summary_large_image, dark-mode safe.

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.
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.
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.
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.

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.
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 |
Every card comes out at summary_large_image spec — 1200×628, subject inside the safe area, no cropped headlines.
Launch tweet
Write the headline you'll tweet, pull the same words into the card so the preview and the copy read as one thought.
Blog echo
Regenerate the header from any published article so the retweet preview stops falling back to the site favicon.
Thread cover
Build a single 1200×628 lead card, reuse it across the thread's outbound links to keep the visual thread coherent.
Indie posting
Solo founders drafting release threads generate the card inside the same tab where they draft the tweet.
Paste a URL. Oginify reads the page, paints a card composed for the X timeline, and hands you a 1200×675 PNG with ready-to-paste twitter:card meta tags.
Drop any live page in. We extract brand, headline, tone and palette — the same signals a good editorial designer would read before touching the canvas.
Composed against X dark chrome with a 20-pixel corner-mask inset, upper-60 percent safe zone, and headline weight tested at the real 506-pixel preview width.
Download a 1200×675 PNG and paste the pre-filled twitter:card, twitter:image, twitter:title and twitter:description tags straight into your page's head.
Twitter Card meta tags, the summary_large_image spec and how X unfurls links in 2026.
For summary_large_image (the format most link previews use), the image is 1200×628 minimum, 1200×630 recommended, 2:1 to 1.91:1 aspect ratio, PNG/JPG/WebP/GIF, and under 5MB. Oginify outputs at 1200×630 — inside every valid range and identical to the Open Graph spec.
No. X falls back to og:title, og:description and og:image when the twitter:* tags are missing. Add twitter:card="summary_large_image" and optionally twitter:site="@handle" for card analytics; skip twitter:image and twitter:title if they duplicate the og:* values.
X only renders the large card when the image is at least 300×157 AND twitter:card="summary_large_image" is declared. If either is missing, it falls back to summary (small square). Validate with X's Card Validator (cards-dev.twitter.com/validator) and check both tags are on the page.
X caches previews for up to 7 days per URL. To force a refresh after changing the image, run the URL through the Card Validator — a successful validation clears the cache immediately. Same trick works if a wrong image is showing after a redesign.
Yes — the removal of the on-image headline in October 2023 made the image itself carry the entire message. That's the exact case Oginify optimizes for: no headline overlay to compensate for a bland image, so the card has to be visually strong on its own. Cards without a strong image now click through less.
Meta Tags and OpenGraph.xyz preview cards you already have — they don't create the image. Oginify generates the actual 1200×630 PNG plus the ready-to-paste meta block, then you can verify the result in any of those previewers. Complementary tools, different jobs.
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.