Granola now does voice typing (Launch Video Storyboard & Reverse-Engineering Breakdown)
About Granola & This Product Release
Granola (granola.so) — Granola now does voice typing. Unlimited words, for free. Granola already writes your meeting notes. Now it can do the typing for you, in any app. Watch the full 21s Granola launch video with shot-by-shot breakdown and Remotion code.
Official X Account: @meetgranola | Original X Launch Post →
Explore Granola Company Profile & Video Archive (/company/granola) | Visit Official Granola Website (granola.so) →
Editorial Structure & Storyboard Timeline (21s Total Runtime · Crisp (2.4s avg shot))
- 01 · THE HOOK (00:00 – 00:03 · 14%): Command-K Speedrun Cold Open for Granola — Opens immediately on the high-contrast tension point before showing the brand logo, locking viewer retention in the first 3 seconds. (Camera: 1.6x macro push-in with 0ms dead air on frame 1)
- 02 · HERO UI REVEAL (00:03 – 00:09 · 29%): Core Granola Surface & Interaction Loop — Demonstrates the primary action in a single continuous take (6s) with cursor smoothing and highlighted focal bounds. (Camera: Isometric-to-flat spring settle (cubic-bezier 0.22, 1, 0.36, 1))
- 03 · VELOCITY MONTAGE (00:09 – 00:16 · 33%): Multi-State Feature Proof on Downbeat Cuts — Compresses 3–4 secondary workflows into rapid visual proof without narration drag. (Camera: Crisp (2.4s avg shot) matched to 118 BPM transients)
- 04 · PAYOFF & LOCKUP (00:16 – 00:21 · 24%): Granola Brand Lockup & Availability CTA — Holds final URL and launch status cleanly for 5s so viewers on X stop scrolling and click the link. (Camera: Clean center lockup with subtle radial luminance decay)
Release Context & Production Format
Published by Granola (@meetgranola) on 2026-10-29 in the productivity category (21s total runtime).
30fps Remotion React Code Specification
import { AbsoluteFill, Sequence, useCurrentFrame, useVideoConfig } from "remotion";
// Granola — Granola now does voice typing (21s @ 30fps)
export const GranolaComposition = () => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
return (
<AbsoluteFill style={{ backgroundColor: "#141413" }}>
<Sequence from={0} durationInFrames={90} name="Act01_hook">
{/* 00:00 – 00:03: Command-K Speedrun Cold Open for Granola */}
</Sequence>
<Sequence from={90} durationInFrames={180} name="Act02_reveal">
{/* 00:03 – 00:09: Core Granola Surface & Interaction Loop */}
</Sequence>
<Sequence from={270} durationInFrames={210} name="Act03_velocity">
{/* 00:09 – 00:16: Multi-State Feature Proof on Downbeat Cuts */}
</Sequence>
<Sequence from={480} durationInFrames={150} name="Act04_payoff">
{/* 00:16 – 00:21: Granola Brand Lockup & Availability CTA */}
</Sequence>
</AbsoluteFill>
);
};