WhatsApp video maker
by @danpeg
Create animated WhatsApp chat videos with realistic iPhone, dark mode UI, typing indicators, read receipts, and auto-scrolling for social media formats.
clawhub install whatsapp-video-mockupπ About This Skill
WhatsApp Video Skill
Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.
Features
code formatting supportDefault Settings
Prerequisites
This skill requires the Remotion Best Practices skill:
npx skills add remotion-dev/skills -a claude-code -y -g
Quick Start
cd ~/Projects/remotion-test
Edit the conversation in src/WhatsAppVideo.tsx, then render:
npx remotion render WhatsAppDemo out/my-video.mp4 --concurrency=4
How to Create a New Video
1. Define Your Messages
Edit the ChatMessages component in src/WhatsAppVideo.tsx:
// Incoming message (from assistant)
// Outgoing message (from user)
// Typing indicator (shows "..." bubbles)
2. Timing Guide
delay={30} = appears at 1 seconddelay={60} = appears at 2 secondsduration={45} = lasts 1.5 secondsTypical flow:
1. First message: delay={20} (~0.7s)
2. Typing indicator: delay={80}, duration={45}
3. Response: delay={125} (after typing ends)
4. Next typing: delay={175}, duration={45}
5. Next response: delay={220}
3. Adjust Scrolling
In ChatMessages, update the scroll interpolation based on your message count:
const scrollAmount = interpolate(
frame,
[scrollStart, scrollStart + 60, messageFrame, lastFrame],
[0, firstScroll, firstScroll, finalScroll],
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);
Increase scroll values if messages overflow.
4. Text Formatting
Messages support:
bold textCode: backticks around text\n in the string5. Customizing the Header
In ChatHeader component, change:
Pokey π‘ β your assistant nameonline6. Update Duration
In Root.tsx, set durationInFrames to match your video length:
7. Render
# Standard render
npx remotion render WhatsAppDemo out/video.mp4 --concurrency=4Higher quality
npx remotion render WhatsAppDemo out/video.mp4 --codec h264 --crf 18Preview in browser
npm run dev
Platform Dimensions
Edit Root.tsx to change dimensions:
| Platform | Dimensions | Aspect Ratio | Use Case | |----------|------------|--------------|----------| | X/Instagram feed | 1080Γ1350 | 4:5 | Default, most visible | | X/TikTok/Reels | 1080Γ1920 | 9:16 | Full vertical | | X square | 1080Γ1080 | 1:1 | Universal | | YouTube/X landscape | 1920Γ1080 | 16:9 | Horizontal |
Project Structure
~/Projects/remotion-test/
βββ src/
β βββ WhatsAppVideo.tsx # Main video component
β βββ Root.tsx # Composition config
βββ public/
β βββ sounds/
β βββ pop.mp3 # Message received
β βββ send.mp3 # Message sent
βββ out/ # Rendered videos
Sound Effects
Sounds are triggered with Sequence:
Tips
1. Preview while editing: Run npm run dev to see changes live
2. Frame-by-frame: Use timeline scrubber to check timing
3. Keep messages concise: Long messages may need scroll adjustment
4. Test on mobile: Check readability at actual size
Asking Pokey to Generate
Just describe the conversation:
Pokey will write the messages, set timing, render, and send the MP4.
π‘ Examples
cd ~/Projects/remotion-test
Edit the conversation in src/WhatsAppVideo.tsx, then render:
npx remotion render WhatsAppDemo out/my-video.mp4 --concurrency=4
βοΈ Configuration
This skill requires the Remotion Best Practices skill:
npx skills add remotion-dev/skills -a claude-code -y -g
π Tips & Best Practices
1. Preview while editing: Run npm run dev to see changes live
2. Frame-by-frame: Use timeline scrubber to check timing
3. Keep messages concise: Long messages may need scroll adjustment
4. Test on mobile: Check readability at actual size