Edge Functions

Generating OG Images


Generate Open Graph images with Deno and Supabase Edge Functions. View on GitHub.

Code#

Create a handler.tsx file to construct the OG image in React:

1
import { ImageResponse } from 'https://deno.land/x/og_edge@0.0.4/mod.ts'
2
import React from 'https://esm.sh/react@18.2.0'
3
4
export default function handler(req: Request) {
5
return new ImageResponse(
6
<div
7
style={{
8
width: '100%',
9
height: '100%',
10
display: 'flex',
11
alignItems: 'center',
12
justifyContent: 'center',
13
fontSize: 128,
14
background: 'lavender',
15
}}
16
>
17
Hello OG Image!
18
</div>
19
)
20
}

Create an index.ts file to execute the handler on incoming requests:

1
import { withSupabase } from 'npm:@supabase/server@^1'
2
3
import handler from './handler.tsx'
4
5
console.log('Hello from og-image Function!')
6
7
// Public image endpoint, so deploy with --no-verify-jwt.
8
export default { fetch: withSupabase({ auth: 'none' }, handler) }