USE CASE
SOCIAL

Testimonials Without Embed Scripts

Show customer quotes as social-media-styled cards on your landing page. No Twitter embed JavaScript, no layout shift, no API keys.

OUTPUT PREVIEW
SCALE 1:1
Sarah Chen
@sarahchen_dev

Just migrated our OG images to @htmlpix.

Went from a 2-server Puppeteer setup to a single API call. Renders in 200ms. Should have done this months ago.

2:47 PM · Feb 17, 2026 · 48.2K Views
1,203 Reposts8,432 Likes892 Bookmarks
Template + variables = image. That's the whole flow.RENDERED
SECTION 01

Embeds Are Heavy and Fragile

Twitter embeds load 200KB+ of JavaScript, cause layout shift, and break when the API changes. Instagram embeds need authentication. LinkedIn doesn't have embeds at all.

Manual screenshots look inconsistent: different resolutions, dark/light mode mismatch, outdated engagement numbers. And if the original post gets deleted, your screenshot shows nothing.

SECTION 02

Render Testimonials as Images

Use a tweet-style or post-style template. Set the name, handle, quote text, and engagement numbers. Mint a URL. Embed it as an <img> tag on your site.

It loads like any other image. No JavaScript, no third-party scripts, no CLS issues. The image is hosted on your terms, independent of whether the original post still exists.

SECTION 03

Example

FIG. 02
social-proof.ts
social-proof.ts
Shell
1// Generate a Twitter/X post screenshot for your landing page2const res = await fetch("https://api.htmlpix.com/v1/url", {3  method: "POST",4  headers: {5    Authorization: `Bearer ${process.env.HTMLPIX_KEY}`,6    "Content-Type": "application/json",7  },8  body: JSON.stringify({9    templateId: FAKE_TWEET_TEMPLATE_ID,10    variables: {11      displayName: "Sarah Chen",12      handle: "@sarahchen_dev",13      verified: "true",14      tweetText: "Just migrated our OG images to @htmlpix.\n\nWent from a 2-server Puppeteer setup to a single API call. Renders in 200ms. Should have done this months ago.",15      timestamp: "2:47 PM",16      date: "Feb 17, 2026",17      views: "48.2K",18      replies: "142",19      retweets: "1,203",20      likes: "8,432",21      bookmarks: "892",22    },23    width: 1200,24    height: 675,25  }),26});2728const { url } = await res.json();29// Embed as <img> on your landing page — no Twitter embed script needed
Copy, paste, run. That's it.READY TO RUN
SECTION 04

Integration Snippets

lib/socialProof.ts
TypeScript
interface Testimonial {
  name: string;
  handle: string;
  text: string;
  likes: string;
  retweets: string;
}

export async function mintTestimonialScreenshots(testimonials: Testimonial[]) {
  const res = await fetch("https://api.htmlpix.com/v1/urls", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.HTMLPIX_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      items: testimonials.map((t) => ({
        templateId: process.env.TWEET_TEMPLATE_ID,
        variables: {
          displayName: t.name,
          handle: t.handle,
          tweetText: t.text,
          verified: "true",
          likes: t.likes,
          retweets: t.retweets,
          timestamp: "2:47 PM",
          date: "Feb 17, 2026",
          views: "12.4K",
          replies: "24",
          bookmarks: "128",
        },
        width: 1200,
        height: 675,
      })),
    }),
  });

  const { urls } = await res.json();
  return urls.map((u: any) => u.url);
}
SECTION 05

Time & Cost Savings

Without HTMLPix

Embed scripts add 200KB+ JavaScript per widget. Manual screenshots look inconsistent. LinkedIn has no embed at all.

With HTMLPix

Render testimonials as static images. No JavaScript, no layout shift, no API dependency. Loads like any other image.

Estimated Savings
Better page performance
SECTION 06

Why HTMLPix

01

No Layout Shift

Images have fixed dimensions. No JavaScript loading after page render, no content jumping, no CLS penalty in Core Web Vitals.

02

You Control the Content

Set the name, quote, engagement numbers, and timestamp. Show your strongest testimonials the way you want them.

03

Multiple Platform Styles

Tweet-style, LinkedIn-style, Instagram-style. Each has a template with the right visual language for that platform.

04

No External Dependencies

No Twitter API key, no Instagram auth token, no embed script. Just an image URL. Works even if the original post is deleted.

SECTION 07

Frequently Asked Questions

Try It

500 images per month on Starter. Put testimonials on your landing page today.

Get Your API Key