Mobile app Open Graph Image Template
A mobile app card with a drawn phone, app name, tagline, and store chips.
A mobile app card with a drawn phone, app name, tagline, and store chips.
Every Open Graph image template is included with Basic and Pro. Pick a plan to copy the code, install with the CLI, and download the raw SVG.
Already purchased? Log in
Use the Mobile app template for an app landing page or store announcement. The left half carries the brand row, the pitch, and store availability chips; the right half is a drawn phone with skeleton content that runs off the bottom edge, so the card signals "this is an app" at a glance without shipping a real screenshot.
This template is a metadata image route for the Next.js App Router. The file exports size, contentType, and alt values plus a default async function that returns an ImageResponse. When a page in the segment is shared, satori converts the JSX into an SVG document, the runtime rasterizes that SVG into a 1200 by 630 PNG, and Next.js serves the result and wires the og:image and twitter:image tags into the page head automatically. The phone is plain divs with a notch and skeleton cards, cropped by the card edge, so there is no screenshot to keep up to date.
Install with the shadcn CLI using your Shadcn UI Blocks API key:
npx shadcn@latest add @shadcn-ui-blocks/og-image-mobile-app
The file lands at app/opengraph-image.tsx, which makes it the site wide share card. To scope it to the app page, move it into that route segment, for example app/mobile/opengraph-image.tsx. You can also copy the code from this page straight into your project.
The card renders text with Inter, read from assets/fonts at your project root with node:fs so the font files never ship to the browser. Download the latin woff files for weights 400, 500, 600, and 700 from Fontsource and save them as assets/fonts/inter-latin-400-normal.woff and so on.
The content object holds the brand, the title, the description, and the url. The chips array drives the store pills, App Store and Google Play by default; drop one for a single store. To show a real screen, replace the skeleton block inside the phone with an img element pointing at an absolute URL, and satori fetches it at render time. Keep the title to about two lines so it clears the chips beside the phone.
satori supports a focused subset of CSS: flexbox layout only, flat colors, and an explicit display: flex on any element with multiple children. Keep those rules in mind if you rework the layout.