Nikita Miezhenski · Writing

Sequence: a Figma plugin that animated a frame into an MP4, and why I closed it

Most of the work was reading the designer’s file correctly. The renderer was the smaller part

· 3 min read · Nikita Miezhenski

Sequence takes a static frame in Figma and turns it into a short MP4 in which the interface assembles itself piece by piece. I made it alone in June 2026: I designed the plugin and wrote it and its render server with AI coding tools. It worked end to end on my machine. It was never released, and I closed it when Figma shipped Motion.

Who it was for

I made Sequence for designers who, like me, were tired of animating simple screens by hand for Dribbble and portfolio shots. Three screens in a 320×620 window: pick a frame, tune the animation while it plays, then export an MP4 in 720p, 1080p or 4K. Version 1.0 had one preset, Cascade.

The cascade render of a sample dashboard frame
Cascade on a sample dashboard frame.

The hard part was the file

A Figma layer tree does not map to an animation. Real files have wrapper frames that paint nothing, and cards whose background belongs to the container while the text sits in child layers. Animate each layer on its own and a card’s text flies in while its background stays behind. Most of the work was choosing the right level of the tree to animate.

The analysis walks the layer tree and decides for every node whether it animates, and at which level. A layer covering most of the frame is background and stays still. A large container is opened and its children are analysed one by one, and anything smaller moves as one piece. If an opened container paints something itself, like a card’s fill, that paint becomes a plate and enters together with its content. Groups enter top to bottom, then left to right.

What the analysis found in a sample frame: groups in the order they enter, and plates that move with their content
What the analysis found in a sample frame: groups in the order they enter, and plates that move with their content.

One spec for the preview and the video

The preview and the video read one animation spec: a 16 px rise over 0.4 s per group, 0.16 s between groups and a 0.6 s hold at 30 fps. The plugin plays it with Framer Motion, and the server draws each frame on a canvas and pipes it into ffmpeg, so the MP4 matches the preview. React, TypeScript and Framer Motion in the plugin; Node.js, Fastify, canvas and ffmpeg on the server.

Most of the work in a tool like this is reading the designer’s file correctly.

Why I closed it, and what I think now

When Figma shipped Motion, I read it as the platform doing the same job natively, and I stopped. The render server only ran on my machine, so nobody else ever used it. Looking back, I don’t think Figma Motion would have killed Sequence. I gave up on it. That is the honest post-mortem: the product worked, the file-reading problem was solved, and the decision to stop was mine, made on a headline instead of on users.