ogdynamic
Free-form canvas editor

A real design surface, not a settings form.

The editor works the way layout actually works: layers, groups, and a CSS-based layout model, so anything you can design renders exactly as you designed it.

Text, image, and group layers

Every image is built from text, image, and group nodes that nest to any depth — build a card from sections, not from a fixed form.

Free-form positioning

Place layers anywhere with absolute positioning, edge anchors on any side, z-order control, and percentage sizing that adapts like CSS.

Flexbox and grid layout

Groups flow with full flexbox — direction, gap, justify, align — plus CSS grid columns when a layout needs a stricter rhythm.

Any canvas size

Start from Open Graph, X, square, story, or Pinterest presets, or set a custom size anywhere up to 10,000 pixels per side.

Editing experience

Built like the tools designers already know.

Layers panel

A recursive layer tree with drag-to-reorder, inline renaming, and per-layer duplicate and delete — dock it, collapse it, or float it anywhere.

Undo and redo

A 100-step history batches drags, resizes, and typing into single steps, so experimenting never costs you your place.

Direct manipulation

Drag layers, resize from eight handles with aspect-lock corners, and nudge with arrow keys — Shift for 10-pixel jumps.

Figma-style inputs

Commit-on-blur number fields, per-corner radius, and an add-attribute system that reveals advanced CSS controls only when you want them.

Styling

Every styling primitive a branded image needs.

66 Google Fonts

Searchable font picker with per-family weights, live loading of only the fonts your canvas uses, and full typography control down to letter-spacing and line clamps.

Fills, gradients, patterns

Solid colors, multi-stop linear and radial gradients, and grid or stripe patterns — plus per-corner radius, borders, and background sizing.

Shadows, filters, transforms

Box and text shadows with inset support, blur, contrast, and grayscale filters, rotate, scale, and skew transforms, opacity, and blend modes.

Dynamic content

The URL is the API.

Mark any text or image layer as overridable and it becomes a parameter. Compose render URLs in your HTML, your CMS, or your backend — no SDK, no client library, no render queue.

  • Query parameters override any dynamic layer — ?title=Launch+week&price=$29
  • A POST with a JSON body overrides query parameters for richer payloads
  • Deterministic renders served with long-lived immutable caching
  • Every save publishes a fresh URL — old links keep working forever

Generate with parameters

One canvas, infinite variations.

GET — query parameters

https://cdn.ogdynamic.com/canvas-id?title=Launch+week&price=%2429&author=Ada

POST — JSON body

{ "title": "Launch week", "price": "$29", "author": "Ada" }

Every dynamic layer on the canvas contributes one key. The override fields panel lists them all with their types, so your integration stays predictable.

Rendering

The preview is the render.

The editor preview runs the same Rust rendering engine as the production service, compiled to WebAssembly and drawing pixels in your browser. There is no "looks different in production" gap — what you see while designing is the exact image the URL serves.

  • Pixel-identical editor preview and server output
  • Deterministic — the same URL always renders the same image
  • Immutable, CDN-friendly caching keyed by canvas version
Templates & output

Start from 36 templates, ship in every size.

Templates span 11 categories — Open Graph, blog, product, square, Pinterest, email, and more — each one a finished layout you can keep as-is or pull apart on the canvas.

Open Graph 1200×630 X / Twitter 1200×675 Square 1080×1080 Story 1080×1920 Pinterest 1000×1500 Custom up to 10,000px
Formats:webppngjpeg
Bold Headline Open Graph template preview
Bold HeadlineOpen Graph
Testimonial Square template preview
TestimonialSquare
Listicle Pin Pinterest template preview
Listicle PinPinterest
Glass Commerce Product template preview
Glass CommerceProduct
Ivory Editorial Blog template preview
Ivory EditorialBlog
Data Insight Report template preview
Data InsightReport
Works with your stack

Plug it in where you publish.

WordPress plugin

Generate Open Graph images for your WordPress posts automatically from your content, with secure OAuth linking to your account.

About the integration

Free OG Checker

Inspect any URL's Open Graph and Twitter card tags before and after you roll out dynamic images — see the preview platforms will show.

Check a URL
FAQ

Questions about the editor and API.

Do I need to know CSS to use the canvas editor?

No. You drag, resize, and restyle layers visually. The layout model is CSS under the hood — flexbox, grid, absolute anchors — but the inspector exposes it as plain controls, and templates give you finished layouts to start from.

How does dynamic content work?

Toggle "allow override" on any text or image layer and give it a param id. The published canvas then accepts that key as a URL query parameter or in a POST JSON body, and the render substitutes it — everything else stays exactly as designed.

What do renders look like — is the preview the final image?

Yes. The in-browser preview runs the same Rust rendering engine as the server, compiled to WebAssembly, so what you see while editing is pixel-identical to what the URL serves.

Which image formats and sizes are supported?

Canvases render as webp, png, or jpeg in any size up to 10,000 pixels per side, with presets for Open Graph, X, square, story, and Pinterest. The same design can render Open Graph and Twitter card intents.