Website card images for Bluesky

Generate Bluesky link preview images for every page

Use one HCTI og:image pattern across your site. Each page supplies its own metadata, and HCTI keeps the matching Bluesky image current without a separate image-generation request.

  • 1200 × 627 images for posts
  • Updates when preview inputs change
  • No extra code per page

HCTI @example.com · 2h

A small addition to your page head can keep every link card fresh.

One Open Graph image URL for every page

htmlcsstoimage.com

One Open Graph image URL for every page

HCTI reads the page’s meta tags and returns the matching cached image.

12 replies · 38 reposts · 219 likes

A card for the open web

Give every website card enough context to stand on its own

Bluesky website cards put the linked page directly beneath a short post. Use the image to establish the topic quickly without repeating the post text.

1

Independent publishing

Give essays, blogs, and newsletters a recognizable website card.

2

Project updates

Make changelogs and release posts easier to spot in a timeline.

3

Open-source links

Show the project, feature, or release instead of a generic repository image.

Metadata recipe

Set up the Bluesky image

Point og:image at the HCTI URL for the current path, then use hcti:selector on that page to choose the element HCTI captures.

<meta property="og:image" content="https://hcti.io/v1/og/{YOUR_DOMAIN_ID}/product-launch">

<meta property="hcti:selector" content="#social-card">

What if the Bluesky preview does not update?

Check the page first

  • Confirm the metadata is in the page’s <head> before a crawler loads it.
  • Open the HCTI image URL directly and make sure it returns the expected image.
  • Remember that Bluesky may keep its own cached preview after the image changes.

Allow the Bluesky crawler

If your firewall filters bots, allow requests whose user agent contains Bluesky Cardyb.

Mozilla/5.0 (compatible; Bluesky Cardyb/1.1; +mailto:support@bsky.app)
Read Bluesky’s preview documentation

Preview your page on Bluesky

See the image and text Bluesky can use when someone shares your page.

Query parameters are ignored unless you’re signed in.

Public pages only

We’ll read the page’s link-preview tags and image. Some sites may block automated checks.

How it works

The public URL stays simple while HCTI reads the page, creates the image, and reuses it until the inputs change.

  1. Add one og:image pattern

    Use your HCTI domain ID and append the current page path. No API key or per-page image URL needs to be published.

  2. HCTI reads the page head

    On refresh, HCTI fetches the requested page and reads its hcti: screenshot options or html:tv: template values.

  3. Serve the matching image

    HCTI creates the image when the resolved screenshot or template inputs change, then caches and serves it to link-preview crawlers.

Fresh when it matters

Update previews without rendering on every share

HCTI checks page metadata separately from generating the image. Unchanged screenshot or template inputs reuse the existing render; changed inputs create the next image.

Controlled refreshes

Choose how often HCTI may check each page for updated meta tags. Origin cache headers and ETags can avoid unnecessary work.

Content-based reuse

HCTI hashes the resolved screenshot or template inputs so unchanged pages return the image that already exists.

Preview-aware sizing

Use one image everywhere, fit one render into recognized preview sizes, or render with a platform-specific viewport.

Ready for better link previews?

Give every page an image worth sharing

Add one stable OG image URL pattern, keep the supported meta tags on each page, and let HCTI handle rendering and reuse.