Complete metadata setup for OPNODE live streaming platform including favicons, Open Graph tags, Twitter cards, and dynamic stream metadata for social sharing.
- ✅ Added comprehensive site-wide metadata
- ✅ Configured favicon using
/images/Logo.svgand/images/Logo.png - ✅ Added Open Graph tags for social sharing
- ✅ Added Twitter Card metadata
- ✅ Set up proper SEO robots configuration
- ✅ Added site description and keywords
Favicon Sources:
- Icon:
/images/Logo.svg(SVG format - scalable) - Apple Touch Icon:
/images/Logo.png - Shortcut icon:
/images/Logo.png
- ✅ Created dynamic metadata generator for individual streams
- ✅ Fetches stream data from Convex database
- ✅ Shows stream title, description, and thumbnail in social shares
- ✅ Includes host username in metadata
- ✅ Adds video-specific Open Graph tags
- ✅ Shows live status and viewer count
- ✅ Uses stream thumbnail or defaults to
/images/500l.png
Social Share Preview: When someone shares a stream link, it will show:
- Stream title
- Stream description or "Watch [host] live on OPNODE"
- Stream thumbnail image
- Host username
- Live status indicator
- Video metadata (resolution, type)
- ✅ Added page-specific metadata
- ✅ SEO-optimized title and description
- ✅ Social sharing preview image
- ✅ Metadata for "Go Live" page
- ✅ Describes streaming functionality
Sitemap (/app/sitemap.ts):
- ✅ Dynamic sitemap generation
- ✅ Includes main pages with priorities
- ✅ Update frequencies set for search engines
- ✅ Accessible at
/sitemap.xml
Robots.txt (/public/robots.txt):
- ✅ Allows all search engines
- ✅ Blocks API routes from indexing
- ✅ Points to sitemap location
- ✅ Added
getStorageUrlquery for fetching file URLs - ✅ Enables thumbnail retrieval for metadata
- User shares a stream URL (e.g.,
/stream/abc123) - Next.js
generateMetadatafunction runs server-side - Function fetches stream data from Convex
- Generates dynamic Open Graph and Twitter Card tags
- Social platforms (Twitter, Facebook, Discord, etc.) show rich preview
- All pages follow this pattern:
"[Page Title] | OPNODE" - Ensures brand consistency across all pages
- Uses default metadata from root layout if page-specific not found
To test how your streams will appear when shared:
- Facebook Debugger: https://developers.facebook.com/tools/debug/
- Twitter Card Validator: https://cards-dev.twitter.com/validator
- LinkedIn Post Inspector: https://www.linkedin.com/post-inspector/
Add to .env.local:
NEXT_PUBLIC_APP_URL=https://your-domain.com
This is used for:
- Canonical URLs
- Open Graph URLs
- Sitemap generation
- Absolute image URLs in metadata
🎥 Amazing Gaming Stream
Watch eldevode live on OPNODE
👥 287 viewers | ⚡ Earn sats while watching
[Large preview image]
OPNODE - Live Stream
[Preview image]
Amazing Gaming Stream
Stream live, earn sats. Watch eldevode live on OPNODE.
The app serves favicons in multiple formats for maximum compatibility:
- SVG - Modern browsers, scales perfectly
- PNG - Legacy browsers and bookmark icons
- Apple Touch Icon - iOS home screen shortcuts
- Metadata generation is server-side only (no client bundle impact)
- Images are served from
/publicdirectory - Convex queries are optimized for metadata fetching
- Fallback to default images if stream thumbnail unavailable
Consider adding:
- Custom OG image generator (dynamic images with stream info)
- Structured data (JSON-LD) for rich search results
- AMP versions of stream pages
- PWA manifest with custom icons
- Multi-language meta tags
- Verification meta tags (Google, Bing, etc.)