The current card has changes that are not in your saved library. Save it before opening {{ transitionTargetLabel }}.
“{{ deleteTargetName }}” will be removed from this browser. Export it as JSON first if you may need it later.
Each card keeps one layout and separate text, direction and font settings per language.
All text in {{ activeLocale.toUpperCase() }} will be replaced with the {{ localeCopySource.toUpperCase() }} version. This can be undone immediately with Undo.
“Export all as images” uses the format/scale/languages from the Export modal.
Nothing saved yet — use “Save” or “Save as new” in the top bar.
Generates one card per row from a CSV or JSON file, using the current document as the template, then downloads each as an image (format/scale from the Export modal). A row's column matches an element by its Name (set in the Selection panel) — case-insensitive.
Nameable text elements on this card: {{ textElements.map(el => el.name || '(unnamed ' + ELEMENT_LABELS[el.type].toLowerCase() + ')').join(', ') }}
This card has no text elements yet — add one and give it a Name before bulk-generating.
{{ bulkError }}
{{ bulkRows.length }} row{{ bulkRows.length===1?'':'s' }} loaded — columns: {{ Object.keys(bulkRows[0]).join(', ') }}
A free in-browser visual editor by Alex Rel.
Build Open Graph and social cards directly on the canvas with editable text, images, logos, icons, lists, panels, shapes and buttons. Drag, resize, rotate, align and snap elements instead of rebuilding a fixed template through form fields.
Keep several language versions on one shared layout, including automatic LTR/RTL direction, language-aware fonts and one-click export for every locale. Save reusable cards in the local library or move them between browsers as JSON.
Everything runs locally in your browser — the session is autosaved, and uploaded assets are not sent to a server.
If you have questions, feedback or feature requests, write on Telegram (@releeshahn) or email [email protected].