Enter your title, description, image, and URL to generate Open Graph and Twitter Card meta tags, and watch the live card preview update as you type. Copy the tags straight into your head.
Approximate rendering. Facebook, X, and LinkedIn each crop and truncate slightly differently, but this is what your card will roughly look like when shared.
This is a real 1200 × 630 PNG rendered on the fly from your title, description, and site name. Download it and point og:image at your hosted copy.
<title>Publish once, ship every language</title> <meta name="description" content="Kamaan auto-translates your blog into 99+ languages with correct hreflang and delivers it over a REST API." /> <!-- Open Graph --> <meta property="og:title" content="Publish once, ship every language" /> <meta property="og:description" content="Kamaan auto-translates your blog into 99+ languages with correct hreflang and delivers it over a REST API." /> <meta property="og:url" content="https://kamaan.io/blog/publish-once" /> <meta property="og:image" content="https://kamaan.io/og/publish-once.png" /> <meta property="og:site_name" content="Kamaan" /> <meta property="og:type" content="article" /> <!-- Twitter / X Card --> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Publish once, ship every language" /> <meta name="twitter:description" content="Kamaan auto-translates your blog into 99+ languages with correct hreflang and delivers it over a REST API." /> <meta name="twitter:image" content="https://kamaan.io/og/publish-once.png" /> <meta name="twitter:site" content="@kamaan" />
Paste inside the <head>. After deploying, re-scrape with the Facebook Sharing Debugger or X Card Validator so the platforms refresh their cache.
Open Graph tags are the meta tags that decide what your link looks like the instant someone pastes it into Slack, LinkedIn, Facebook, WhatsApp, or a text message. A good card, with a sharp title, a clear description, and a crisp 1200 by 630 image, gets noticeably more clicks than a bare blue link. A missing or broken card makes even great content look like spam.
The tags themselves are simple: og:title, og:description, og:image, and og:url, plus a small set of twitter: tags for X. The trap is that they are invisible on your own page, so they silently rot: you rename a post, change its hero image, or translate it, and the shared card still shows the old, wrong thing until you remember to update the tags and force a re-scrape.
<head>, and re-scrape with the platform debuggers so they refresh.In a headless Next.js, Astro, or Nuxt blog, generating Open Graph tags once is easy, this tool proves it. The cost is keeping them correct across every post and every translation over time. Each language version needs its own localized title, description, and URL, and each needs a re-scrape when it changes. Multiply that by a content calendar and a stack of languages and it becomes a standing chore nobody wants.
Kamaan deletes that chore. Publish a post once and Kamaan ships localized Open Graph and Twitter Card meta for every language it translates into, with the correct per-language URL, automatically. The tool above shows you what a correct card looks like. Kamaan makes correct cards the default for every language of every post you publish.
Open Graph is a set of meta tags (og:title, og:description, og:image, og:url) that control how your page looks when it is shared on Facebook, LinkedIn, Slack, WhatsApp, and most other platforms. An Open Graph generator turns your title, description, image, and URL into those tags so you do not have to write them by hand. This one also adds the Twitter Card tags and shows a live preview of the card.
The safe, universal size is 1200 by 630 pixels (a 1.91:1 ratio). That renders as a large image card on Facebook, LinkedIn, and X without awkward cropping. Keep the file under about 5 MB, use PNG or JPG, and make sure the URL is an absolute https link that is publicly reachable, since the scrapers fetch it server-side.
X (Twitter) reads Twitter Card tags first and falls back to Open Graph if they are missing, so you can get away with just Open Graph. But adding the twitter:card and twitter:image tags gives you explicit control over how the card looks on X, including whether it uses the large image layout. This tool outputs both sets so you are covered everywhere.
For the shared card, keep og:title under about 60 characters so it is not truncated, and og:description under about 155 to 160 characters. The same limits work well as your SEO title tag and meta description in search results, which is why this tool shows a live character counter and flags when you go over.
Facebook, LinkedIn, and X cache the scrape of your page. After you change your Open Graph tags you have to force a re-scrape: use the Facebook Sharing Debugger, the LinkedIn Post Inspector, or the X Card Validator and click to refresh. Until you do, they keep serving the cached (old) card.
Yes. Alongside the meta tags and the live card preview, this generator renders a real, branded 1200x630 PNG on the fly from your title, description, and site name, in a light or dark theme. Hit Download OG image to save the file, host it somewhere public, then point og:image at that URL. It is a server-rendered image, so the same title always produces the same crisp card.
Yes. Each translated version of a page should have its own og:title, og:description, and og:url so it previews correctly when shared in that language. Maintaining that by hand across dozens of posts and locales is exactly the kind of repetitive work Kamaan removes: it emits localized social meta for every language automatically when you publish.