Beautiful social cards from a URL.
Pick a template, fill the params, drop one meta tag. No design canvas. Free for any link, even commercial — Pro removes the watermark and lets you drop in your own logo.
6 templates1200×630 PNGCDN-cached
Rendering
Image URL
https://og.labs.basenull.com/api/og?template=editorial&title=How+we+shipped+a+daily-launch+SaaS+company+in+three+weeks&kicker=Build+journal+%C2%B7+2026&site=basenull.com&accent=D4763A
Drop into <head>
<meta property="og:image" content="https://og.labs.basenull.com/api/og?template=editorial&title=How+we+shipped+a+daily-launch+SaaS+company+in+three+weeks&kicker=Build+journal+%C2%B7+2026&site=basenull.com&accent=D4763A"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://og.labs.basenull.com/api/og?template=editorial&title=How+we+shipped+a+daily-launch+SaaS+company+in+three+weeks&kicker=Build+journal+%C2%B7+2026&site=basenull.com&accent=D4763A">
HTML
<meta property="og:image" content="https://og.labs.basenull.com/api/og?template=editorial&title=Hello&site=acme.com"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://og.labs.basenull.com/api/og?template=editorial&title=Hello&site=acme.com">
Next.js generateMetadata
export function generateMetadata({ params }) {
const url = `https://og.labs.basenull.com/api/og?` +
`template=editorial&title=${encodeURIComponent(params.slug)}&site=acme.com`;
return {
openGraph: { images: [url] },
twitter: { card: "summary_large_image", images: [url] },
};
}Astro / 11ty / Hugo
<!-- in your <head> layout -->
<meta property="og:image"
content="https://og.labs.basenull.com/api/og?template={{template}}&title={{title}}&site={{site}}">
<meta name="twitter:card" content="summary_large_image">Pricing
Free is fully usable. Pro is for unbranded, on-brand cards.
Free
$0
- All six templates, both themes
- Custom accent colors
- 1200×630 PNG, CDN-cached
- Small og.labs.basenull.com watermark
Recommended
Pro
$9
/ month
or $89/year — two months free
- No watermark
- Custom logo via ?logo=
- 1000 cache-miss renders/min
- Future templates auto-included