Round 2 (this page): your top two, A full bleed and B framed, refined: two variants each, every card type and edge case, the profile from rich to brand-new, WhatsApp and Slack. Share text is yours, as fixed: “Check this out on Saga” and “Follow me on Saga”. C is dropped.
Round 1: three directions (A full bleed, B framed, C composed). Collapsed at the bottom.
What a friend sees when you share. Every iMessage bubble is drawn by Apple’s own LinkPresentation framework (LPLinkView, macOS 26) from the real 1200 × 630 image, at a 264 pt bubble. The share text arrives as its own bubble above the link. The red box marks the option I recommend in each row; the dashed lines on each image are the center 900 px that Messages keeps.
The four variants
Tags are the same for every option: og:title without “on Saga” (Apple TN3156: Messages prints the domain under it), og:site_name “Saga”, twitter:card summary_large_image, og:image at 1200 × 630 with its width, height and alt.
A1Full bleed, strip
The photo fills the card; round 1's glass strip along the foot carries the lockup and the kind.
Watch out
In Messages the strip sits right on top of Apple’s own title bar: two bars stacked. It covers the foot of every photo (84 px, 13%).
Recommended
A2Full bleed, capsule
The whole photo shows; the lockup sits in a small glass capsule at the bottom left, like the app's scroll logo.
Watch out
The capsule is smaller (about 70 pt wide in a bubble) and drops the kind label, which og:title’s year already implies.
B1Framed, poster
The poster in the question card's double rule on basalt, the name set beside it.
Watch out
The poster is about a third of the card. The name is printed twice in Messages (card and og:title), which Apple advises against; long titles clip.
B2Framed, backdrop
The backdrop in the same frame across the top, the name under it. People and titles without a backdrop fall back to B1.
Watch out
Two layouts to keep right instead of one. Backdrop cards are photo-heavy: PNG 490–830 KB, so they need JPEG like A.
Titles and people
Four columns per row: A1, A2, B1, B2. Scroll a row sideways on a phone.
Movie
Dune: Part Two. Backdrop for A and B2, poster for B1.
Share text
Check this out on Saga
og:title
Dune: Part Two (2024)
og:description
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
Timothée Chalamet. A people photo is a portrait, so A stands it in the middle over a blur of itself; B1 and B2 are the same card.
Share text
Check this out on Saga
og:title
Timothée Chalamet
og:description
Acting. Timothée Hal Chalamet (born December 27, 1995) is an American actor. He has received various accolades, including nominations for three Academy Awards…
og:site_name · twitter:card
Saga · summary_large_image
A1Full bleed, strip
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 75 KB · PNG 423 KB · PNG fits WhatsApp
RecommendedA2Full bleed, capsule
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 78 KB · PNG 458 KB · PNG fits WhatsApp
B1Framed, poster
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 79 KB · PNG 345 KB · PNG fits WhatsApp
B2Framed, backdrop
Same card as B1: there’s no backdrop to frame.
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 79 KB · PNG 345 KB · PNG fits WhatsApp
Title with no backdrop
Widow’s Bay, drawn as if TMDB had no backdrop: A uses the poster the way it uses a headshot; B2 falls back to B1.
Share text
Check this out on Saga
og:title
Widow’s Bay (2026)
og:description
The mayor of a sleepy island town tries to bring in tourists, despite locals insisting the island is cursed.
og:site_name · twitter:card
Saga · summary_large_image
A1Full bleed, strip
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 100 KB · PNG 502 KB · PNG fits WhatsApp
RecommendedA2Full bleed, capsule
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 106 KB · PNG 561 KB · PNG fits WhatsApp
B1Framed, poster
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 95 KB · PNG 397 KB · PNG fits WhatsApp
B2Framed, backdrop
Same card as B1: there’s no backdrop to frame.
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 95 KB · PNG 397 KB · PNG fits WhatsApp
Person with no photo
Jack Gordon (staging’s /person/1 has no photo; today it falls back to the site card). Their people art, from person-art.ts, takes the photo’s place.
Share text
Check this out on Saga
og:title
Jack Gordon
og:description
Acting.
og:site_name · twitter:card
Saga · summary_large_image
A1Full bleed, strip
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 40 KB · PNG 59 KB · PNG fits WhatsApp
RecommendedA2Full bleed, capsule
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 39 KB · PNG 67 KB · PNG fits WhatsApp
B1Framed, poster
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 46 KB · PNG 158 KB · PNG fits WhatsApp
B2Framed, backdrop
Same card as B1: there’s no backdrop to frame.
iMessage, as received
Light
Check this out on Saga
Dark
Check this out on Saga
og:image · 1200 × 630
JPEG 46 KB · PNG 158 KB · PNG fits WhatsApp
Very long title
Borat Subsequent Moviefilm, 118 characters. Messages wraps og:title to three lines, then clips. B sets it on the card too: three lines, then an ellipsis.
Share text
Check this out on Saga
og:title
Borat Subsequent Moviefilm: Delivery of Prodigious Bribe to American Regime for Make Benefit Once Glorious Nation of Kazakhstan (2020)
og:description
Kazakh journalist Borat Sagdiyev travels to America to make a gift of his daughter to a powerful official.
The profile card from rich to brand-new. B1 and B2 are the same for a profile, so B is one column. The wall in A uses the rule the app already has: your own posters at 8 or more (MIN_WALL_POSTERS, Welcome back), the sign-in wall of brand posters under 8, and always for a private profile.
Rich profile
The owner’s public profile: 27 titles watched, Recent favorites Silo, Pluribus and Widow’s Bay. A’s wall is his recent watched and watchlist posters (the example set here); B shows his three favorites.
Share text
Follow me on Saga
og:title
Tanner McAllister (@tmcallister92)
og:description
2 movies and 25 shows watched · I mostly watch TV.
Example: Alexandra Castellanos-Whitfield (@alexcw), no photo, two titles (Ted Lasso, Interstellar), and a long name. A shows the sign-in wall (under 8 posters, below); B shows the two she has.
Share text
Follow me on Saga
og:title
Alexandra Castellanos-Whitfield (@alexcw)
og:description
1 movie and 1 show watched
og:site_name · twitter:card
Saga · summary_large_image
A1Full bleed, strip
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 62 KB · PNG 276 KB · PNG fits WhatsApp
RecommendedA2Full bleed, capsule
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 63 KB · PNG 293 KB · PNG fits WhatsApp
BFramed
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 73 KB · PNG 277 KB · PNG fits WhatsApp
Brand-new profile
Example: Jordan Kim (@jordankim), no photo, no titles yet. Both use their people art over their theme; A on the sign-in wall, B on basalt with the faint mark.
Share text
Follow me on Saga
og:title
Jordan Kim (@jordankim)
og:description
New on Saga
og:site_name · twitter:card
Saga · summary_large_image
A1Full bleed, strip
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 64 KB · PNG 276 KB · PNG fits WhatsApp
RecommendedA2Full bleed, capsule
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 65 KB · PNG 293 KB · PNG fits WhatsApp
BFramed
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:image · 1200 × 630
JPEG 54 KB · PNG 222 KB · PNG fits WhatsApp
When there’s little or nothing
What the card shows for a sparse or brand-new profile. Three fallbacks, each in A2; B’s own version is in the rows above (it shows whatever posters they have, or none).
Sparse profile (1–3 titles)
Alexandra, two titles, no photo. Each option drawn in A2.
Dune: Part Two, each variant. WhatsApp sends the text and the link in one message, shows the image across the top when it’s wide, and then og:title, og:description and the domain. It drops images over 600 KB, so every card ships as JPEG.
A1Full bleed, strip
Dune: Part Two (2024)Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.saga.pictures
Check this out on Saga https://saga.pictures/movie/6931349:41
JPEG 141 KB, under 600 KB · PNG 726 KB (too big: WhatsApp drops the image)
RecommendedA2Full bleed, capsule
Dune: Part Two (2024)Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.saga.pictures
Check this out on Saga https://saga.pictures/movie/6931349:41
JPEG 152 KB, under 600 KB · PNG 794 KB (too big: WhatsApp drops the image)
B1Framed, poster
Dune: Part Two (2024)Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.saga.pictures
Check this out on Saga https://saga.pictures/movie/6931349:41
JPEG 66 KB, under 600 KB · PNG 276 KB
B2Framed, backdrop
Dune: Part Two (2024)Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.saga.pictures
Check this out on Saga https://saga.pictures/movie/6931349:41
JPEG 113 KB, under 600 KB · PNG 494 KB
Slack
The same link in Slack: og:site_name, og:title and og:description, then the image large (with summary_large_image), up to 360 px wide.
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
Build cost
Piece
A (A1 or A2)
B (B1, plus B2)
Tags and share text
The same for both, and the first PR: og:title without “on Saga”, og:site_name, summary_large_image, the two share strings. No image work.
Renderer
Extend profile-card.ts (resvg) to /movie/:id/card.jpg, /tv/:id/card.jpg, /person/:id/card.jpg. The drawing is one image plus the lockup’s paths: no text to lay out. resvg has no backdrop blur, so the glass is the photo again under an feGaussianBlur, clipped to the capsule (A2, small) or the strip (A1, full width). The blurred surround for people and posters is cheapest as TMDB’s w92 image scaled up.
The same renderer, plus text layout: resvg doesn’t wrap, so names need a line breaker with font metrics (today’s twoLines splits by character count) and a three-line clip. B2 is a second layout with its own fallback to B1.
Rows
One primary-key row per preview (the title or person row: backdrop_path, poster_path, profile_path).
One primary-key row, using only what’s on it: year, runtime, certification, number of seasons, birthday, place of birth, known for, and the poster’s vibrant color. Director and network would need credit and network rows, so they’re left off.
Profile
The wall needs your recent posters: recentPosters (Welcome back’s helper, visits.ts), 4 reads on the (user, type, created_at) index, then about 12 w342 poster fetches per render. Under 8, or private: the sign-in wall, which is already SVG (assets/images/brand/poster-wall/), so no rows and no fetches.
Today’s card, restyled: favoritePosters (up to 3) as now. No new reads.
JPEG
Needed: PNG is 420 KB to 1.5 MB, over WhatsApp’s 600 KB on most photo cards. resvg only writes PNG, so add a WebAssembly JPEG encoder (for example jSquash’s MozJPEG) or Cloudflare Images. JPEG at quality 80: 40–390 KB.
B1 fits as PNG (160–475 KB). B2’s backdrop cards don’t (up to 830 KB), so B2 needs JPEG too.
Cache
Edge cache a day under ?v= (a hash of what’s drawn), like the profile card today; a failure serves the site card, logged and not cached.
My recommendation
A2, full bleed with the capsule, for all four cards. In Messages it reads like Apple’s own links: the whole photo, then the title and saga.pictures in Apple’s bar. The capsule makes it Saga’s without a second bar under the photo (A1’s problem) and echoes the app’s scroll logo. It handles every edge case without text: no backdrop and no photo become the poster or people art standing in a blur, and a 118-character title only affects Apple’s own text. B is good on a profile and cheap as PNG, but its poster becomes a stamp in a 264 pt bubble and it prints the name twice.
For the profile, follow Welcome back’s rule (F3): your own wall at 8 or more recent posters, and under 8 (or private) the sign-in wall of brand posters behind your photo or people art. It never borrows taste (F2 makes Saga’s popular posters look like yours), never shows a sad “0 movies” (F1), costs no rows or fetches, and it’s the wall people already know from sign-in. The name comes from og:title, right under the picture.
First PR: the tags and the share text (no image work).
Second: the A2 renderer for titles and people, with JPEG out.
Third: the profile wall with the sign-in fallback.
What a friend sees when you share a profile, a cast member, a movie or a show: the share sheet's text, the iMessage bubble in light and dark, the tags, and the 1200 × 630 image. Three directions, each covering all four cards. Every bubble here is drawn by Apple's own LinkPresentation framework from the real image, not mocked.
Today
Real tags fetched with curl -A facebookexternalhit/1.1 from production (profile) and staging (titles and people, PR #421's branch), and the real og:images they point at.
Follow me · production /@tmcallister92. Share text “Join me on Saga: @tmcallister92”. og:title “Tanner McAllister (@tmcallister92) on Saga”. The server card (resvg), PNG 513 KB.Cast member · staging /person/5. Share text “Kate Dickie on Saga”. og:image is the TMDB photo, 421 × 632.Movie · staging /movie/1. Share text “Flying with the Crows on Saga”. og:image is the TMDB poster, 780 × 1170.No photo · staging /person/1 falls back to the site card og.png: the same picture for everyone without a photo.
Titles and people are towers. A 2:3 poster or photo becomes a 264 × 525 pt bubble, the tallest thing in the thread, and its sides are cropped (the poster above loses the F of its own title).
Too small for Apple's guideline. Posters ship at 780 px wide and photos at 421 px; Apple asks for at least 900 px.
“on Saga” is in every og:title. Apple's note says not to put the site name in og:title, because the bubble already prints the domain under it (“saga.pictures”). It also eats one of the two title lines.
The share text is only the name (“Dune: Part Two on Saga”). It arrives as its own gray bubble above the link and says nothing about why it was sent.
X and Slack get a thumbnail. Titles and people send twitter:card “summary”, so those apps draw a small square instead of a picture.
The profile card is cropped too. Messages trims about 150 px off each side of a 1200 × 630 card at bubble width, which is fine today only because the card keeps its content inside.
How previews render
Measured by rendering cards through LPLinkView (LinkPresentation, macOS 26, the framework Messages uses) at a 264 pt bubble, plus each platform's documentation. The iPhone may size the bubble a little differently; a text to yourself on the phone confirms it.
A 1200 × 630 test grid, lines every 100 px.What Messages shows: the full height, but only about x = 150 to 1050. Everything that matters sits in the center 900 px (the dashed lines on every card below).An image under 150 px wide becomes a small icon beside the title. No image: the apple-touch-icon, in the same compact bubble.
App
What it shows
Image
What it means for Saga
iMessage
og:image, og:title (wraps to 2 lines, then clips), the domain. No description. The share sheet's text is a separate bubble.
Landscape: large, full height, sides cropped to about 1.5:1. Square: large square. Portrait: a tall tower. Under 150 px: an icon. Asks for 900 px wide or more, no text in the image, no site name in og:title. 10 MB total.
1200 × 630 with the subject and brand in the center 900 px. Drop “on Saga” from og:title; put “Saga” in og:site_name.
WhatsApp
og:title, og:description, domain.
At least 300 px wide, under 600 KB, no wider than 4:1. Wide images draw across the top; small or square ones as a thumbnail.
A photo card as PNG is 420 KB to 1 MB: it needs JPEG to stay under 600 KB.
X
The image with the domain over it; title under it on some clients.
summary_large_image: 2:1, center-cropped (1200 × 630 loses 15 px top and bottom). summary: a 1:1 thumbnail.
Send summary_large_image for every card.
Slack
og:site_name, og:title, og:description.
Large under the text with summary_large_image; otherwise a thumbnail at the right.
All three are 1200 × 630, lead with the photo (backdrop for titles, headshot for people, avatar and favorites for profiles) and keep the lockup inside the safe zone. Example data; the build reads Saga's.
AFull bleed
The photo is the card. A glass strip along the foot carries the Saga lockup; no words on the picture, because Messages prints the title and domain right under it. Copy says “Check out … on Saga” and “Follow me on Saga”.
Build
Extend the profile card's renderer (profile-card.ts, resvg) to /movie/:id/card.jpg, /tv/…, /person/…. The drawing is the photo plus a strip and the lockup's paths: no text to lay out. Profiles swap today's card for the favorites wall.
Rows and cache
The same one primary-key row as today plus backdrop_path. Edge-cached a day under ?v=, like the profile card.
Watch out
Photo cards are 420 KB to 1 MB as PNG; resvg only writes PNG, so it needs JPEG out (Cloudflare Images, or a WebAssembly encoder): 75 to 243 KB here. No backdrop: the poster, blurred out to the edges like the headshot.
Drops
Any words or data on the image. WhatsApp and Slack still show the description.
BFramed
The photo in the question card's double rule on basalt, glowing in the poster's own color, with the name set in Familjen Grotesk beside it. Today's profile card, extended to everything. Copy is personal: “You should watch …”.
Build
The same renderer, the same Familjen Grotesk it already loads, the poster's vibrant color (already on the row). Long names wrap to three lines, then clip.
Rows and cache
One primary-key row. 280 to 410 KB as PNG, so resvg's PNG works as is.
Watch out
The photo is about a third of the card, and smaller still in a 264 pt bubble. Apple advises against text in the image; this one repeats og:title.
Drops
The full-bleed picture; backdrops go unused.
CComposed
The photo fades into basalt behind Saga's own data: IMDb and Veggie scores and awards for titles, Known for posters for people, counts and favorites for profiles. Copy asks for an action: “Add … to your watchlist on Saga”.
Build
The renderer plus score chips (the app's star, carrot and trophy) and poster rows.
Rows and cache
Scores are on the title row. Award wins live in title_award_stat (a row per show and category) and Known for needs credits (many rows), so both must be stored on the title or person row at sync (a migration and a sync change) to stay at one row.
Watch out
At bubble size the chips are about 6 pt: legible on X and Slack, small in Messages. Most to build and keep right.
Drops
The calm: it's the busiest card, and the photo gets a little over half of it.
Follow me
Your own profile, from the Share button on Me. The link is your invite (friends on sign-up).
AFull bleed
Share sheet text
Follow me on Saga
Someone else's profile: “Follow @tmcallister92 on Saga”
iMessage, as received
Light
Follow me on Saga
Dark
Follow me on Saga
og:title
Tanner McAllister (@tmcallister92)
og:description
2 movies and 25 shows watched · I mostly watch TV.
og:image · 1200 × 630
JPEG 180 KB · as PNG 822 KB · over WhatsApp’s 600 KB
BFramed
Share sheet text
I'm on Saga. Follow me to see what I'm watching.
Someone else's profile: “See what @tmcallister92 is watching on Saga”
iMessage, as received
Light
I'm on Saga. Follow me to see what I'm watching.
Dark
I'm on Saga. Follow me to see what I'm watching.
og:title
Tanner McAllister (@tmcallister92)
og:description
@tmcallister92 · 2 movies and 25 shows watched
og:image · 1200 × 630
JPEG 75 KB · as PNG 314 KB
CComposed
Share sheet text
Follow me on Saga to see my favorites
Someone else's profile: “Follow @tmcallister92 on Saga to see their favorites”
iMessage, as received
Light
Follow me on Saga to see my favorites
Dark
Follow me on Saga to see my favorites
og:title
Tanner McAllister (@tmcallister92)
og:description
2 movies and 25 shows watched · Recent favorites: Silo, Pluribus, Widow's Bay
og:image · 1200 × 630
JPEG 141 KB · as PNG 491 KB
Cast member
A person page's Share button (PR #421).
AFull bleed
Share sheet text
Check out Timothée Chalamet on Saga
iMessage, as received
Light
Check out Timothée Chalamet on Saga
Dark
Check out Timothée Chalamet on Saga
og:title
Timothée Chalamet
og:description
Known for Acting. Timothée Hal Chalamet (born December 27, 1995) is an American actor. He has received various accolades, including nominations for three Academy Awards…
og:image · 1200 × 630
JPEG 75 KB · as PNG 423 KB
BFramed
Share sheet text
See everything Timothée Chalamet has been in
iMessage, as received
Light
See everything Timothée Chalamet has been in
Dark
See everything Timothée Chalamet has been in
og:title
Timothée Chalamet
og:description
Acting · Born 1995 · New York City
og:image · 1200 × 630
JPEG 80 KB · as PNG 345 KB
CComposed
Share sheet text
Timothée Chalamet's movies and shows, on Saga
iMessage, as received
Light
Timothée Chalamet's movies and shows, on Saga
Dark
Timothée Chalamet's movies and shows, on Saga
og:title
Timothée Chalamet
og:description
Known for Interstellar, Dune and Call Me by Your Name
og:image · 1200 × 630
JPEG 103 KB · as PNG 430 KB
Movie
A movie page's Share button (PR #421).
AFull bleed
Share sheet text
Check out Dune: Part Two on Saga
iMessage, as received
Light
Check out Dune: Part Two on Saga
Dark
Check out Dune: Part Two on Saga
og:title
Dune: Part Two (2024)
og:description
Follow the mythic journey of Paul Atreides as he unites with Chani and the Fremen while on a path of revenge against the conspirators who destroyed his family.
og:image · 1200 × 630
JPEG 143 KB · as PNG 726 KB · over WhatsApp’s 600 KB
BFramed
Share sheet text
You should watch Dune: Part Two
iMessage, as received
Light
You should watch Dune: Part Two
Dark
You should watch Dune: Part Two
og:title
Dune: Part Two
og:description
Movie · 2024 · Denis Villeneuve · 2h 46m
og:image · 1200 × 630
JPEG 68 KB · as PNG 278 KB
CComposed
Share sheet text
Add Dune: Part Two to your watchlist on Saga
iMessage, as received
Light
Add Dune: Part Two to your watchlist on Saga
Dark
Add Dune: Part Two to your watchlist on Saga
og:title
Dune: Part Two (2024)
og:description
IMDb 8.5 · Veggie Score 92% · Won 2 Oscars
og:image · 1200 × 630
JPEG 121 KB · as PNG 554 KB
Show
A show page's Share button (PR #421).
AFull bleed
Share sheet text
Check out Breaking Bad on Saga
iMessage, as received
Light
Check out Breaking Bad on Saga
Dark
Check out Breaking Bad on Saga
og:title
Breaking Bad (2008)
og:description
Walter White, a New Mexico chemistry teacher, is diagnosed with Stage III cancer and given a prognosis of only two years left to live. He becomes filled with a sense of fearlessness and an…
og:image · 1200 × 630
JPEG 243 KB · as PNG 1052 KB · over WhatsApp’s 600 KB
BFramed
Share sheet text
You should watch Breaking Bad
iMessage, as received
Light
You should watch Breaking Bad
Dark
You should watch Breaking Bad
og:title
Breaking Bad
og:description
Series · 2008–2013 · 5 seasons · AMC
og:image · 1200 × 630
JPEG 100 KB · as PNG 407 KB
CComposed
Share sheet text
Add Breaking Bad to your watchlist on Saga
iMessage, as received
Light
Add Breaking Bad to your watchlist on Saga
Dark
Add Breaking Bad to your watchlist on Saga
og:title
Breaking Bad (2008)
og:description
IMDb 9.5 · Veggie Score 96% · Won 16 Emmys
og:image · 1200 × 630
JPEG 197 KB · as PNG 787 KB · over WhatsApp’s 600 KB
My recommendation
A, Full bleed, with its “Check out … on Saga” copy. It is the only direction that puts the photo first in every app, and in Messages it reads like Apple's own links: a big picture, then the title and saga.pictures in the bar under it. The glass strip and lockup make every card Saga's without covering the photo, and the profile's favorites wall uses the poster-wall motif people already know from sign-in. B is the cheapest but the photo shrinks to a stamp in a 264 pt bubble; C carries the most information but its scores and posters turn into small print in a Messages bubble.
Change the tags and the share text first (no image work): og:title without “on Saga”, og:site_name “Saga”, summary_large_image, and the A copy.
Then the image: the renderer for titles and people with JPEG out, then the profile wall.