Screenshot API for Supabase

Capturing website screenshots from Supabase usually means running and scaling a headless browser yourself. With Snapraven you skip all of that — render screenshots from a Supabase Edge Function.

What you can build with Supabase

Capture a preview when a row is inserted, generate OG images on demand, or snapshot user-submitted links — from a Supabase Edge Function, then store the result in Supabase Storage.

Example in Supabase

Deno.serve(async (req) => {
  const { target } = await req.json();
  const res = await fetch(
    `https://api.snapraven.app/v1/screenshot?url=${encodeURIComponent(target)}`,
    { headers: { 'x-api-key': Deno.env.get('SNAPRAVEN_KEY')! } }
  );
  return new Response(await res.arrayBuffer(),
    { headers: { 'Content-Type': 'image/png' } });
});

That's the entire integration. Snapraven renders the page in a real Chromium browser and returns a PNG or JPEG. Add fullPage=true for the full scrollable page, or width/height for custom viewports.

💡 Tip for Supabase

Read the key with `Deno.env.get`, upload the result to a Storage bucket, and save the public URL back on the row so the front end just reads a column.

Why developers use Snapraven with Supabase

Supabase screenshot API — FAQ

Where does it run?

In a Supabase Edge Function (Deno). You can trigger it from a database webhook or call it directly from your app.

How do I store the result?

Upload the bytes to a Supabase Storage bucket and write the resulting URL onto the related row.

Other guides

Not a developer? Capture screenshots with no code in the dashboard — paste URLs and download a ZIP.

Add screenshots to your Supabase app today

Get your free API key