Kinetic typography and interface handoffs

How to make a collaboration app launch video

Use typography to introduce the problem, then turn the argument into messages, summaries, and a shared call.

Complete 1:11 silent film. Free to watch. Clasp is a fictional app. Inspired by Slack’s A New Day for Work.

Clasp is a fictional collaboration app. This lesson takes its complete 71.217-second film apart into a working plan: animated type establishes a promise, a word becomes a movable object, a summary interaction provides evidence, and people move from a call into a conversation. You will edit those mechanisms and render the full 1920 × 1080 example at 60 fps.

Inspired by Slack's A New Day for Work, this adaptation keeps the reference's sequence, overlapping motion and alternation between abstract graphics and product demonstrations. Clasp has a different name, slightly shifted saturated palette, compact three-bar mark and product copy. The browser, people and messages are original vector drawings for a fictional product. There is no source video, source screenshot, recorded conversation or source audio in the composition.

The full film and the first three lesson sections are public. The complete lesson and editable source project are included in your one-time purchase of the 20cuts Creation System.

Open the source and establish a baseline

Download this lesson's source project, unzip it and open a terminal in that folder. You need Node.js with npm, an editor and space for the rendered MP4. Follow the Node version specified in the download's README. The project is standalone and does not require the private 20cuts repository.

npm install
npm run check
npm run dev

Select CommonroomLaunch. The composition has 4,273 delivery frames. Before editing, scrub to output frames 1470, 2075 and 2758. These show the lifted “noise” capsule, the summary panel and the call participants becoming conversation authors.

Render the baseline with:

npm run render

The source is in src/videos/tutorial-commonroom/. entry.tsx registers the composition. Video.tsx contains the vector primitives, scene functions, clock mapping and audit. source-times.ts is a numeric timing table. It contains no pictures or audio; it preserves the measured reference timing at a 60 fps delivery rate. Manrope is the only binary visual dependency. Its unmodified variable font, public/assets/tutorial-commonroom/manrope.ttf, and MANROPE-OFL.txt license are included. Manrope retains the rounded display character of the accepted study without redistributing its commercial font. The on-screen product is Clasp; the stable composition ID remains CommonroomLaunch.

Build a narrative that alternates promise and proof

The opening wall repeats “Good work, together,” then gives way to Clasp's mark. The film moves into a stylized conversation, widens to categories such as Knowledge and Automation, and follows one message author into a field of people. This makes the product feel connected to a group before the film asks the viewer to consider individual capabilities.

The central phrase, “Help take the noise out of work,” becomes an action. The word “noise” lifts away from the sentence and falls off screen. A crowded field of colored pieces clears. Five remaining dots gather into a wipe that reveals a summary interaction. The claim is followed by an example of what reducing noise could look like.

After a brief brand return, a call becomes a channel conversation. Ribbons introduce Clasp Projects, and a sequence of verbs—Connect, Share, Find and Organize—uses the same geometric vocabulary. The closing orbital movement gathers that vocabulary into the final promise and identity.

The film has 37 measured beats. The complete table below uses half-open source-cue ranges and presentation times, rounded to milliseconds. These cue numbers describe the measured reference pictures; they are not the studio's 60 fps output-frame numbers. The last end time includes the short final hold required to fill the delivery frame.

BeatSource cuesSecondsAction
Opening wall0–1680.000–2.803Repeating type establishes the central promise.
Identity orbit168–2752.803–4.588Colored shapes introduce the fictional mark.
Teamwork rosette275–3894.588–6.490A rosette turns the theme into a spatial object.
Conversation389–4906.490–8.175A browser and changing message bars provide product context.
Categories490–7408.175–12.346Independent capsule rows reveal Answers, Routines, AI and Docs.
Planning message740–85412.346–14.248Five message lines appear in a fictional planning channel.
Author to people854–100814.248–16.817A message author enlarges into a group of people.
A shared place1008–110016.817–18.352Moving type reveals a shared place for ideas.
A clearer way1100–118518.352–19.770The same lanes reveal “A clearer way to connect.”
Teamwork stack1185–124019.770–20.687Five bars contract and the labeled face folds away.
Perspective tunnel1240–140020.687–23.357Layered geometry accelerates through depth.
Sentence1400–145323.357–24.241The complete sentence holds before the physical edit.
Noise removal1453–149824.241–24.992The word noise lifts, pauses and falls away.
Clearing mosaic1498–171524.992–28.612Dense shapes progressively clear from the screen.
Five dots1715–183228.612–30.564Remaining dots gather into a row.
Bar wipe1832–188330.564–31.415Dots stretch into a complete background wipe.
Summary trigger1883–204031.415–34.034The cursor approaches and activates a summary control.
Summary result2040–214134.034–35.719The browser widens and summary lines fill its panel.
Speech bubble2141–218535.719–36.453A generic speech bubble frames and shrinks the result.
Radial return2185–231436.453–38.605Radial groups restore the abstract visual vocabulary.
Identity hold2314–239538.605–39.957The fictional mark briefly holds.
Bring teams2395–252039.957–42.042Large capsules reveal Bring teams.
Together2520–256042.042–42.709Together completes the phrase.
Call2560–273242.709–45.579Six people join a call and speaking rings move.
Call to channel2732–278445.579–46.446Three people move into author positions as the browser arrives.
Team conversation2784–287046.446–47.881Conversation bars write beside the retained authors.
Projects ribbons2870–312547.881–52.135A wave wipe introduces Clasp Projects.
People, plans, ideas3125–336052.135–56.056Three moving concepts bridge product and capability.
One place3360–344556.056–57.474Concentric geometry gathers the concepts into one place.
Connect3445–352857.474–58.859A connection diagram develops from shared nodes.
Share3528–358858.859–59.860A share action uses traveling geometric objects.
Find3588–369859.860–61.695The crowded field turns into a focused find action.
Organize3698–381861.695–63.697A structured arrangement illustrates organized work.
Orbital climax3818–393563.697–65.649Orbiting shapes build the final burst of motion.
Shared workspace3935–409865.649–68.368Columns frame the team’s shared workspace promise.
Dot signature4098–415468.368–69.303Four small dots reduce the visual field.
Clasp lockup4154–426869.303–71.217The three-bar mark, Clasp and the tagline hold.

Map the clock before changing a cue

The studied reference has 4,268 decoded pictures with presentation timestamps. Dividing its cue number by 60 would introduce drift. Video.tsx instead asks for the latest source timestamp at or before each delivery frame's time. This is the complete lookup:

function sourceFrame(t: number) {
  let lo = 0,
    hi = SOURCE_TIMES.length - 1;
  while (lo < hi) {
    const mid = Math.ceil((lo + hi) / 2);
    if (SOURCE_TIMES[mid] <= t) lo = mid;
    else hi = mid - 1;
  }
  return lo;
}

The composition calls it with:

const frame = useCurrentFrame();
const f = sourceFrame(frame / COMMONROOM_FPS);

Every scene receives this shared f. To find the first delivery frame that reaches source cue n, use Math.ceil(SOURCE_TIMES[n] * 60). To find its exact presentation time, read SOURCE_TIMES[n]. Do not change the timing table to slow one action; change that action's cue window in Video.tsx.

The p helper clamps a cue window to progress between 0 and 1. It accepts an easing function, so separate objects can use the same clock with different timing. The film uses Easing.bezier(0.65, 0, 0.25, 1) for its smooth moves and Easing.bezier(0.16, 1, 0.3, 1) for the faster-starting out moves.

FILM_AUDIT() checks the timing table's 4,268 entries, strictly increasing timestamps, the 4,273-frame delivery duration, every mapped frame's range and inclusion of the last source picture. Those checks preserve the established edit while you alter the drawing or copy.

Continue making Clasp

The rest of the build is inside.

Get the complete walkthrough and editable source for this film, plus all 4 launch-film tutorials in the 20cuts Creation System. Pay $29.99 once, with a 30-day money-back guarantee.

Explore the complete system ↗

What you will learn

  • Make a sentence change meaning as its words move.
  • Stage dense messages around one readable result.
  • Pass a visual element from typography into the product interface.
Moving words change the sentence before the interface arrives. Fictional example.
Moving words change the sentence before the interface arrives. Fictional example. View full size ↗
The fictional team’s messages resolve into a readable shared result. Fictional example.
The fictional team’s messages resolve into a readable shared result. Fictional example. View full size ↗

Inside the full tutorial

  1. Write the visual argument
  2. Animate semantic word removal
  3. Stage messages and summaries
  4. Hand the story into a shared call
  5. Check readable holds and render

Continue the lesson and download the editable source with your 20cuts Creation System purchase.

An independent educational study by 20cuts. The credited company did not produce or endorse this example.

How to make a collaboration app launch video | 20cuts