blog: Blog post
Category label, big title, subtitle, and an author/site footer with your logo or an emoji.
OgForge renders a 1200×630 PNG Open Graph image from query parameters: title, subtitle, label, emoji or logo, colors and one of five templates. Put the URL in your og:image tag and you're done. No sign-up, no SDK.
Works with X/Twitter, LinkedIn, Facebook, Slack, Discord, iMessage and anything else that reads Open Graph tags.
Build an image URL, then reference it from your page's head. The first request renders the PNG; repeat requests are served from cache.
<meta property="og:image" content="https://ogforge.mike-tusa.workers.dev/api/og?template=blog&title=My%20first%20post&site=example.com">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
Tip: URL-encode every value (encodeURIComponent in JavaScript, urllib.parse.quote in Python). The playground builds the URL and meta tags for you.
blog: Blog postCategory label, big title, subtitle, and an author/site footer with your logo or an emoji.
launch: Product launchCentered logo tile, a "now live" pill and a bold headline on a soft gradient.
docs: Docs / changelogMonospace breadcrumb and version pill. Made for docs pages and release notes.
minimal: MinimalA large title, a thin accent rule and a small site line. Nothing else.
gradient: GradientA vivid diagonal gradient (pick both colors) with white text on a glass card.
Each unique set of parameters is rendered once, then served from memory and Cloudflare's cache with a one-year Cache-Control and an ETag.
Custom background, text and accent colors, light or dark theme, an emoji (Twemoji) or your own PNG/JPEG/SVG logo.
Long text is trimmed with an ellipsis instead of breaking the layout. Invalid values return a clear JSON error with a code.
One GET endpoint, CORS enabled, no key needed. Bundled Inter and JetBrains Mono fonts.
Paid plans are not available yet. Nothing is for sale.
Limits are approximate and enforced per Cloudflare location. See the pricing page and limits and error codes.
OgForge is also a remote Model Context Protocol (MCP) server with one tool, create_og_image. Most MCP clients accept this config; some use a different format (for example, VS Code uses a servers key). Clients with a settings screen just need the URL https://ogforge.mike-tusa.workers.dev/mcp.
{ "mcpServers": { "ogforge": { "type": "http", "url": "https://ogforge.mike-tusa.workers.dev/mcp" } } }
Machine-readable docs: llms.txt · OpenAPI 3.1 spec
We don't keep request logs, set cookies or run analytics scripts. To count unique visitors per day, we keep a salted hash of your network (IP address grouped by /64 for IPv6) and the date, which rotates daily and is deleted after 9 days; no IP address is stored. The text you put in an image URL is stored only as part of the cached image (in server memory and Cloudflare's cache). Your IP address is used only in short-lived rate-limit counters. The site runs on Cloudflare Workers, and Cloudflare processes requests in order to serve it.
Third-party requests: if you pass a logo URL, OgForge's server fetches that image itself (server-side, from Cloudflare, not from your visitors' browsers), so the logo's host sees a request from OgForge. Emoji graphics (Twemoji) are loaded server-side from the jsDelivr CDN (cdn.jsdelivr.net) when an image contains emoji. Visitors who view a generated image only ever contact OgForge.
Acceptable use: no impersonation, phishing or illegal content. Requests that match our denylist are refused with a 403, and reported images are taken down. Report abuse to digitalpromohub.support@gmail.com.