Guide · Vercel

Use coolreadme cards on a Vercel-deployed profile site

If you ship a personal site on Vercel, you can embed coolreadme cards alongside (or instead of) your GitHub profile README. Same endpoint, same animation, no extra config.

Same endpoint, different surface

Every /api/* endpoint on coolreadme.xyz returns an image with `Cache-Control: public, max-age=7200, s-maxage=7200` and `Access-Control-Allow-Origin: *`. That means you can drop an `<img src="https://coolreadme.xyz/api/cinematic?user=yourname">` into any HTML page on any domain — Vercel-deployed Next.js, Astro, plain static site, doesn't matter.

Next.js Image vs plain img

If your Vercel site is Next.js, you have a choice: use `next/image` (which will revalidate and re-proxy through Vercel's image optimizer) or use a plain `<img>` tag (direct hit to coolreadme.xyz). For animated SVG cards, *use plain `<img>`* — next/image converts to AVIF/WebP, which kills the SVG animation. For static-ish PNG cards (Satori-rendered like cinematic), either works.

Edge runtime affinity

coolreadme.xyz is itself deployed on Vercel's edge runtime. When your Vercel site fetches a coolreadme card from the same region, you get minimal latency — typically sub-50ms. Combined with the 2-hour edge cache, repeat visitors load instantly.

Open Graph for your profile site

You can use a coolreadme card as your OG image. Add to your Next.js metadata: `openGraph: { images: ["https://coolreadme.xyz/api/cinematic?user=yourname&status=ACTIVE"] }`. When someone shares your profile site on X / Slack / Discord, the unfurl shows the same animated cinematic card. (Satori-rendered cards are PNG, which most unfurlers prefer over SVG.)

Build-time vs request-time

Don't try to fetch coolreadme card binaries at build time and serve them statically. They're meant to be live — the cat streak card, for example, reflects the *current* GitHub contribution graph. Embed the URL, not the data.

Step by step

  1. 01

    Deploy your site to Vercel

    Any framework. coolreadme cards work in plain HTML.

  2. 02

    Embed cards as <img>

    Use plain <img src="..."> not next/image for animated SVG cards.

  3. 03

    Wire OG images

    Use a Satori-rendered card as your Open Graph image for great social previews.

  4. 04

    Ship

    Vercel deploys in seconds. Cards are edge-cached on coolreadme.xyz for 2h.