Your own templates
The built-in templates cover the common cases. When you need your own layout, brand typeface or logo placement, design one in the visual editor at Dashboard → Templates: drag text, images and shapes onto a 1200×630 canvas, upload the fonts and images you want, and save. Each design gets a slug you render by name.
https://ogsmith.app/api/og?key=og_yourkey&tpl=launch-card&title=Shipping%20today&author=Ada
Text layers hold {{placeholders}} rather than fixed words, and any query parameter fills one in. You choose the names, so {{author}} or {{readingTime}} work just as well as {{title}}. A placeholder with no matching parameter renders as nothing, so optional fields leave no gap. Long values shrink to fit their box unless you turn that off.
Fonts and images
Drag a file straight onto the card to add it: an image lands where you dropped it, at its own proportions, and a font becomes available to your text layers. The image picker and the font control each upload too, and the Assets tab lists everything you have, what each file is used by, and how much of your quota is left.
Upload fonts as TTF, OTF or WOFF, and images as PNG, JPEG or GIF, up to 512KB each. WOFF2 is not supported because the renderer cannot parse it, so upload the TTF or WOFF build of the same family. SVG and WebP aren't supported either; export a PNG. Google Fonts all publish TTF files on their GitHub repositories.
Images and fonts can only come from files you have uploaded. There is deliberately no way to point a template at an arbitrary URL: the renderer runs on our servers, and fetching URLs on your behalf is a class of problem we would rather not have.
Editing a template bumps your cache version automatically, because a design change leaves every card you have already shared showing the old artwork.