WhatsApp video maker
Scanned@danpeg
npx machina-cli add skill @danpeg/whatsapp-video-mockup --openclawWhatsApp Video Skill
Create animated WhatsApp-style chat videos using Remotion. Perfect for X, TikTok, Instagram Reels.
Features
- š± Realistic iPhone frame with Dynamic Island
- š¬ WhatsApp dark mode UI (accurate colors, bubbles, timestamps)
- š Auto-scrolling as messages extend
- š¤ Large, readable fonts (optimized for mobile viewing)
- šµ Message notification sounds
- ⨠Spring animations on message appearance
- āØļø Typing indicator ("..." bubbles)
- š Link preview cards
- ā Read receipts (blue checkmarks)
- Bold and
codeformatting support
Default Settings
- Aspect ratio: 4:5 (1080Ć1350) - optimal for X/Instagram feed
- No intro/outro - starts and ends with the chat
- 2x fonts - readable on mobile devices
- Auto-scroll - keeps all messages visible
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)
<Message
text="Your message text here"
isOutgoing={false}
time="8:40 AM"
delay={125} // Frame when message appears (30fps)
/>
// Outgoing message (from user)
<Message
text="Your outgoing message"
isOutgoing={true}
time="8:41 AM"
delay={200}
showCheck={true}
/>
// Typing indicator (shows "..." bubbles)
<TypingIndicator delay={80} duration={45} />
2. Timing Guide
- 30 fps = 30 frames per second
delay={30}= appears at 1 seconddelay={60}= appears at 2 secondsduration={45}= lasts 1.5 seconds
Typical flow:
- First message:
delay={20}(~0.7s) - Typing indicator:
delay={80},duration={45} - Response:
delay={125}(after typing ends) - Next typing:
delay={175},duration={45} - 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:
**bold text** Code: backticks around text- Line breaks:
\nin the string - Emojis: just use them directly š¬
5. Customizing the Header
In ChatHeader component, change:
- Name:
Pokey š”ā your assistant name - Status:
online - Avatar emoji
6. Update Duration
In Root.tsx, set durationInFrames to match your video length:
- Count frames until last message appears + ~100 frames buffer
- At 30fps: 450 frames = 15 seconds
7. Render
# Standard render
npx remotion render WhatsAppDemo out/video.mp4 --concurrency=4
# Higher quality
npx remotion render WhatsAppDemo out/video.mp4 --codec h264 --crf 18
# Preview 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:
<Sequence from={125}>
<Audio src={staticFile("sounds/pop.mp3")} volume={0.5} />
</Sequence>
Tips
- Preview while editing: Run
npm run devto see changes live - Frame-by-frame: Use timeline scrubber to check timing
- Keep messages concise: Long messages may need scroll adjustment
- Test on mobile: Check readability at actual size
Asking Pokey to Generate
Just describe the conversation:
- "WhatsApp video: me asking you to [X]"
- "Make a chat video showing [conversation]"
Pokey will write the messages, set timing, render, and send the MP4.
Overview
Create animated WhatsApp-style chat videos using Remotion. It delivers a realistic iPhone frame with dynamic Island, WhatsApp dark mode UI, auto-scrolling, large readable fonts, typing indicators, read receipts, and link previews, optimized for social formats like X, TikTok, and Instagram.
How This Skill Works
Build the video by composing chats in Remotion with the WhatsAppVideo.tsx component. Include incoming and outgoing messages, a typing indicator, read receipts, and optional link previews; auto-scroll keeps all messages visible as the convo grows. Prerequisites include the Remotion Best Practices skill, and you render the final video via the Remotion CLI after editing the ChatMessages and related components.
When to Use It
- Create social-media ready chat clips (X, Instagram Reels, TikTok) using the 4:5 1080x1350 format.
- Demonstrate a customer support chat flow with typing indicators and blue read receipts.
- Tease a product update or feature with link preview cards for engagement.
- Provide a quick tutorial or FAQ-like conversation in a chat format.
- Tell a short brand story or narrative through a realistic chat conversation in dark mode.
Quick Start
- Step 1: cd ~/Projects/remotion-test
- Step 2: Edit the conversation in src/WhatsAppVideo.tsx to define your messages and timing
- Step 3: Render the video with npx remotion render WhatsAppDemo out/video.mp4 --concurrency=4
Best Practices
- Use the default 4:5 aspect ratio (1080Ć1350) for optimal mobile viewing on social feeds.
- Enable auto-scroll so all messages remain visible as the conversation grows.
- Keep font size large enough for mobile readability and consider 2x fonts as suggested.
- Sync message delays and durations to maintain a natural reading cadence (typing indicator and replies appear in sequence).
- Leverage bold and code formatting support, plus link previews and read receipts to enhance clarity.
Example Use Cases
- Onboarding a feature through a WhatsApp-style chat demo for a product launch.
- Customer support chat showing instant replies, typing indicators, and blue read receipts.
- Product update teaser with a link preview to the release notes.
- Team workspace chat recap with bold emphasis and a small code snippet.
- Brand storytelling via a short chat conversation highlighting a new service.