Turn every user action into organic growth with shareable, metadata-powered embeds that drive engagement and discovery.
What you’ll learn
By the end of this guide, you’ll be able to:
- Understand how embeds and metadata work together to create rich social previews
- Choose between static and dynamic embeds for different use cases
- Debug and optimize embeds for maximum performance and engagement
How metadata transforms into embeds
User shares your link
Platform fetches metadata
<meta>
tags in your HTML to understand how to display your app.Metadata becomes embed
Embed appears in feed
imageUrl
→ The main visual that appears in the embedbutton.title
→ Text on the call-to-action buttonaction.name
→ App name displayed in the embedaction.url
→ Where users go when they click the embedMini App embed in social feed
/.well-known/farcaster.json
, this file contains your app’s basic information for Base App’s directory.
<head>
tags, this metadata creates the rich embeds when users share your app.
CTA for a user to share the Mini App
Share button in the Base app UI
Static embed example - every user shares the same embed
Dynamic embed example based user outcome
User initiates share
/result/user/123
).Platform requests metadata
Server processes parameters
Generate metadata
Embed renders
layout.tsx
or layout.ts
file:
generateMetadata
in individual page components:
Embed not showing or displaying incorrectly
fc:frame
meta tagsEmbeds not updating after changes
Cache-Control
headers (max-age=300 for dynamic content)Slow embed generation affecting user experience
Cache-Control
headers carefully: long enough for performance (300-600 seconds), short enough to allow metadata updates to appear quickly.Choose your embed strategy
Implement metadata generation
fc:frame
metadata to your.Add strategic share points
Test and optimize