Skip to main content

Social Share Preview

Control the image, title, and description that appear when your short links are shared on Slack, WhatsApp, X, LinkedIn, Discord, Facebook, iMessage, and Bluesky.

What a Share Card Is​

When someone posts a link, the receiving platform fetches it and builds a preview from the page's Open Graph tags. Without one, your link unfurls as a bare URL — no image, no context, nothing that says who it came from.

Worse than plain: with no image at all, the card downgrades to the small text-only format on most platforms, so the link takes up less space and carries less signal.

There are two ways to get a card. Generating one is the normal path. Uploading is for when you already have artwork.

Generating a Card​

Go to Social Preview in the dashboard sidebar, choose Design a layout on the Share card tab, pick a layout, fill in the fields, and save.

The Layouts​

LayoutWhat it isUse it when
Title cardText on a solid background, with an optional logoYou have no artwork. The only layout that needs no image at all
Hero splitCopy on the left, image on the right — brand name, badge, title, description, and a call-to-action pillYou have a product shot and something to say about it
Image coverFull-bleed image with the title overlaid on a scrimYou have a strong photograph and want it to carry the card

Every layout takes a title — that is the one required field. Everything else (description, logo, colors, imagery, eyebrow text) is optional and varies by layout; the form shows you what the one you picked accepts.

Both image-based layouts degrade rather than break. If an image is missing or fails to fetch, Hero split gives the copy the full width and Image cover falls back to a solid background, so you get a plain card rather than a broken one.

Live Preview​

The panel beside the form renders the actual card as you type, using your workspace's own domain so the preview matches what recipients will see.

Nothing is saved until you save. The preview is never cached.

Cards are rendered when you save, not when a link is shared

The image is generated once, at save time, and stored. Scrapers are served a finished image.

This matters more than it sounds: Facebook's crawler gives up after a few seconds, and Bluesky bakes whatever it receives into the post permanently. Rendering on demand would mean some posts capture a timeout forever.

Your Brand Kit​

Set your logo and colors once, on the Brand kit tab, and every layout picks them up. A card rendered from a title alone comes out on-brand, and the Launchpad page uses the same accent and background.

FieldWhere it applies
LogoThe logo slot in every layout that has one. A transparent PNG works best on colored backgrounds
AccentThe accent slot in every layout; the buttons and links on the Launchpad page
BackgroundThe background slot in layouts that have one (and the fallback background of Image cover); the Launchpad page background
TextThe text color slot in layouts that have one

The kit supplies defaults, one level above the layout's own: when you pick a layout, its fields open already filled from the kit, and anything you type on a single card wins. Leave a field empty on the kit and the layout's own default applies, exactly as before.

The preview beside the kit is a real card rendered from your workspace name and the unsaved kit — switch it between layouts to see each one.

Saved cards keep their image

A card is rendered when you save it. Changing the brand kit applies to cards you render from then on and to the Launchpad page immediately; a card you saved earlier keeps its image until you open it and save again.

Your Workspace Already Has One​

New workspaces get a share card generated automatically — a Title card built from the workspace name, on a color derived from the workspace itself so it is stable and not identical to anyone else's. A workspace with a brand kit gets its own colors and logo instead.

So the usual first job is editing the card you already have, not creating one from nothing. Open the page and you will see it.

Uploading Your Own Image​

If you have artwork already — a designed campaign asset, a brand banner — upload it instead.

  • Recommended size: 1200 × 630 pixels, the standard Open Graph ratio
  • Format: PNG or JPEG
  • Maximum: 5 MB

A smaller thumbnail is produced automatically and is what most chat platforms receive, so unfurls stay fast.

Uploaded or generated, never both

A preview has one image. Choosing a layout replaces an uploaded image, and uploading replaces a generated card. The dashboard reopens the form in whichever mode you last saved, with your previous values intact.

Who Can Change It​

ActionRequired role
View the pageAny signed-in member
Change the card, upload, or remove an imageAdmin or above

Workspace Default and Per-Template Cards​

Cards are configured at two levels:

  • Workspace default — one card, used by every link in the workspace.
  • Per template — a card for links built from one specific template, for a campaign with its own branding.

Switch between them with the scope control at the top of the Share card tab. One workspace card covers everything you do not explicitly override.

How a Card Is Resolved​

When a platform scrapes one of your short links, each field is resolved independently, first match wins:

  1. The link's own og_title / og_description / og_image_url, set through the API with ogTitle, ogDescription, and ogImageUrl on POST /api/links, PUT /api/links/:id, or POST /api/sdk/v1/links
  2. The template's card, if the link came from a template that has one
  3. The organization default card
  4. The link's title and description
  5. Shared Link as a last resort for the title
Link-level OG fields override your cards

A link with og_image_url set ignores both the template card and the org default. If a specific link is not showing the card you configured, check whether it has its own OG fields — they win. Send null for a field on PUT /api/links/:id to clear it.

Link-level fields are the right tool for user-shared content: when your backend creates a link for a specific item, pass that item's title and image so the share unfurls as the item rather than as your workspace. The dashboard does not edit these fields; they are API-only.

Because each field resolves on its own, a link can take its title from one layer and its image from another.

Removing a Card​

Remove image clears the image and keeps the title and description. To clear the preview entirely, empty the title field and save.

Checking a Card Before You Send It​

Paste the link into Slack — it unfurls inline immediately, which is the fastest check. For the others:

If you see the old card, the platform cached it. Every validator above has a re-scrape option that forces a fresh fetch.

Check any URL without signing in

The free Social Share Preview tool renders the card for any public URL, LinkForty link or not. Useful for auditing your own site's pages, or for checking a link before you own it.

How It Works​

Scraper Detection​

The redirect server identifies known crawlers by User-Agent — facebookexternalhit, Twitterbot, LinkedInBot, Slackbot, Discordbot, TelegramBot, WhatsApp, PinterestBot, SkypeUriPreview, plus iMessage, Reddit, Bluesky, and Mastodon validators — and serves them an HTML page carrying the Open Graph and Twitter Card tags.

Human visitors are unaffected. They get the normal redirect and never see that page.

Image Delivery​

Images live in S3-compatible object storage, and the OG tags point straight at the public URL. There is no round-trip through the application server on a scrape.

Caching​

The link lookup and the preview configuration are both cached in Redis for five minutes, so scraper traffic does not reach the database on every request and the redirect path stays fast.

Self-Hosting​

Share cards need S3-compatible object storage. Without it, generating a card returns a "storage is not configured" error and the dashboard says so plainly. Set:

AWS_BUCKET=your-bucket-name
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...

See the Self-Hosting Guide and Environment Variables.