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
- ✓ No headless Chrome to install, run, or scale.
- ✓ A single HTTP request — works anywhere Supabase can make a fetch.
- ✓ Full-page capture, custom viewport, PNG or JPEG.
- ✓ Free tier with 100 requests per month to start.
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.