Linear — New: You can now trigger loops from Slack and GitHub, share them as te... (Launch Video Storyboard & Reverse-Engineering Breakdown)

About Linear & This Product Release

Linear (linear.app) — New: You can now trigger loops from Slack and GitHub, share them as templates, and customize their reasoning levels. Watch the full 30s Linear launch video with shot-by-shot breakdown and Remotion code.

Official X Account: @linear | Original X Launch Post →

Explore Linear Company Profile & Video Archive (/company/linear) | Visit Official Linear Website (linear.app) →

Editorial Structure & Storyboard Timeline (30s Total Runtime · Crisp (2.4s avg shot))

  • 01 · THE HOOK (00:00 – 00:04 · 13%): Command-K Speedrun Cold Open for Linear — Opens immediately on the high-contrast tension point before showing the brand logo, locking viewer retention in the first 4 seconds. (Camera: 1.6x macro push-in with 0ms dead air on frame 1)
  • 02 · HERO UI REVEAL (00:04 – 00:13 · 30%): Core Linear Surface & Interaction Loop — Demonstrates the primary action in a single continuous take (9s) 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:13 – 00:23 · 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:23 – 00:30 · 24%): Linear Brand Lockup & Availability CTA — Holds final URL and launch status cleanly for 7s 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 Linear (@linear) on 2026-10-22 in the productivity category (30s total runtime).

30fps Remotion React Code Specification

import { AbsoluteFill, Sequence, useCurrentFrame, useVideoConfig } from "remotion";

// Linear — Linear — New: You can now trigger loops from Slack and GitHub, share them as te... (30s @ 30fps)
export const LinearComposition = () => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();

  return (
    <AbsoluteFill style={{ backgroundColor: "#141413" }}>
      <Sequence from={0} durationInFrames={120} name="Act01_hook">
        {/* 00:00 – 00:04: Command-K Speedrun Cold Open for Linear */}
      </Sequence>
      <Sequence from={120} durationInFrames={270} name="Act02_reveal">
        {/* 00:04 – 00:13: Core Linear Surface & Interaction Loop */}
      </Sequence>
      <Sequence from={390} durationInFrames={300} name="Act03_velocity">
        {/* 00:13 – 00:23: Multi-State Feature Proof on Downbeat Cuts */}
      </Sequence>
      <Sequence from={690} durationInFrames={210} name="Act04_payoff">
        {/* 00:23 – 00:30: Linear Brand Lockup & Availability CTA */}
      </Sequence>
    </AbsoluteFill>
  );
};