Overview
Guest brand kits serve as:- Deliverable for guests: Professional assets to promote their episode
- Value proposition: Tangible benefit of appearing on the podcast
- Brand showcase: Demonstrates YBH’s production quality
- Asset distribution: Centralized hub for all episode content
Share URL Structure
Brand kits are accessed via secure token-based URLs:- Randomly generated (32+ characters)
- Stored in Sanity with guest and episode association
- Never expires (evergreen links)
- Tracks view analytics (user agent, referrer, timestamp)
Brand Kit Contents
1. Hero Section
Cinematic header with gradient orbs and guest information:- Episode number
- Guest name (large display font)
- Position and company
- YBH branding
#0a0a0f) with animated gradient orbs in YBH brand colors (yellow #F7B500, orange #F17529, red #EF4136).
2. Career Timeline
Isometric 3D visualization of the guest’s professional journey: Data Source: LinkedIn profile scraping (see LinkedIn Integration) Visual Elements:- Horizontal timeline with stages
- Year labels and position titles
- Company names
- Isometric 3D graphic style
- 16:9 aspect ratio
- Click to view full-size
- Individual download button
- Included in full kit download
Career timelines are generated via Kie.ai’s Nano Banana Pro API using scraped LinkedIn data.
3. Video Clips
Media gallery with episode highlight clips: Clip Formats:- Square (1:1) - optimized for Instagram feed
- Vertical (9:16) - optimized for Stories, Reels, TikTok
- Video player with controls
- Thumbnail image
- Clip number badge
- Title (auto-generated or custom)
- Duration
- Format label (1:1 Square / 9:16 Vertical)
- Individual download button
4. Visual Assets
Masonry grid of generated graphics: Asset Types:- Infographics (from PRF content)
- Quote cards (from viral hooks)
- Custom graphics
- Career timeline (if generated)
- Image preview
- Title
- Type badge (infographic, quote card, etc.)
- Click to open lightbox
- Full-size image view
- Caption text (if available)
- Copy caption button
- Download button
- Close with ESC key or X button
5. PRF Section
Podcast Repurposing Framework content: Display Format:- Rich HTML rendering
- Vector bullet points (SVG icons)
- Styled headings and sections
- Responsive typography
PRF HTML is sanitized on the server to prevent XSS attacks while preserving formatting.
6. Viral Hooks
Social media hooks with oversized quote marks: Hook Card Design:- Oversized opening quote mark (decorative)
- Hook text (prominent, readable)
- Closing quote mark
- Card background with subtle gradient
- Border styling
extractViralHooks() utility.
7. Download Options
Two download buttons at the bottom:All Images
ZIP file containing all visual assets (career timeline, infographics, quote cards)
Full Kit
Complete package: all images + PRF and Viral Hooks as PDF files
- Client-side ZIP generation (JSZip library)
- Images fetched and converted to Blob
- Text content converted to styled PDF (jsPDF)
- All files added to ZIP
- Browser triggers download
Service Rail CTAs
Desktop layout includes sticky sidebar CTAs: Left Rail (top-to-bottom rotation):- Community Roundtable card
- Microsoft Licensing card
- Network SD-WAN card
- Mobile MDM card
CTA cards link to YBH service offerings with episode context for attribution tracking.
Navigation
Sticky header with:- YBH logo (links to main site)
- Scroll-triggered visibility
- Download button (triggers full kit download)
- Minimalist dark design
#timeline- Career Timeline#videos- Video Clips#visuals- Visual Assets#prf- PRF Section#hooks- Viral Hooks#downloads- Download Options
View Tracking
Every brand kit view is logged to Sanity:/api/share/{token}/view on page load.
Empty States
If no assets are ready: Display:- Centered icon (image placeholder)
- “Brand Kit In Progress” heading
- Message: “Your visual assets are being prepared. Please check back soon or contact the YBH team for updates.”
Error States
Invalid Token
Trigger: Token not found in database or expired Display:- Alert icon (red)
- “Link Not Valid” heading
- Error message
- “Contact YBH” CTA button
Load Failure
Trigger: API error fetching brand kit data Display:- Error message
- Retry button (if temporary)
- Contact information
Design System
Color Palette:- Background:
#0a0a0f(void black) - Elevated surfaces:
#12121a - Text primary:
#FFFFFF - Text secondary:
#A4BFC1(Tower Gray) - Accent gradient: Yellow → Orange → Red
- Display: Fonseca (episode numbers, headings)
- Body: Montserrat (content, descriptions)
- Mono: Font-mono (labels, metadata)
- Section padding:
py-24(96px) - Card padding:
p-5top-8 - Gap between elements:
gap-6togap-12
- Subtle:
border-white/[0.06] - Visible:
border-white/10 - Accent:
border-[#F7B500]/20
Implementation Details
Page Component:GuestBrandKitPage.tsx
API Route: GET /api/share/:token
Response Schema:
- Lazy loading with
loading="lazy" - Hover effects with scale transforms
- Optimized delivery via CDN (Sanity image URLs)
src/services/download.ts
downloadAllAssets()- Full kit or images-onlydownloadImage()- Single image downloadsanitizeFilename()- Prevent path traversal attacks
Related Features
Guest Management
Manage guest profiles and share links
LinkedIn Integration
Auto-generate career timelines from LinkedIn