Stardust · Figma plugin
Exporting 4K video loops from inside a Figma plugin
Overview
A Figma plugin that builds galaxies from real particles and exports them as images, GIFs and seamless loops.
Made for hero sections, landing pages and slides. I designed, branded and built it alone; it launched on Figma Community with a paid tier and has been free since 1.5.0.
Steering a galaxy
Start from a preset, then steer it with a dial.
A preset sets every value, and every value stays live. Spin turns each star by its distance from the core: at 0, Ice Crystal’s arms are straight spokes; at 2.6, a tight spiral.
Export
Real files, rendered frame by frame inside the plugin
PNG, GIF, WebM or MP4, at four ratios from 720p to 4K or a custom size; GIF stops at 1080p to keep files small. Every frame is drawn again at the size picked, and each video format has a fallback, since Figma’s plugin frame may not offer the browser’s encoder.
Seamless loop
A loop you can’t find the end of.
With Loop Animation on, every moving layer makes one full turn in the clip’s length: the camera first, on 29 December, the nebula and distant galaxy the same night. The last frame steps to the first like any other.
The paywall
I built a paywall around the export, then took it out.
Licensing was in the first commit. Two of the first three public versions, both on 3 January, were about the licence check.
01 · What it locked
PNG at 720p was free. The rest was Pro.
In 1.1.0 a free user could pick any format, but anything past a 720p PNG turned both buttons into Upgrade.
02 · How it grew
Two plans and a licence key, checked on a server
In two weeks payments moved from LemonSqueezy to Gumroad, Pro became a key checked on a server, and even the window’s maximum size became a Pro limit. By 4 January, licensing was 17.6% of the code.
03 · Taking it out
Free, with a way back
Version 6, on 17 March: “Stardust is now completely free for everyone!” Two commits deleted 4,952 lines; a guide stayed in the repository for putting the paywall back.
Brand
One amber A, from the wordmark to the listing
I named it and drew the wordmark: spaced capitals with one amber A on the plugin’s near-black. The amber runs through the icon, the loading bar and the Figma Community listing.
Built alone
Twelve days from first commit to Figma Community.
102 commits, all mine, from React and three.js for the scene to an MP4 container written in code. The first build put everything in one panel; within a week the presets, the controls and the mark had their final shape.
Outcome
951 people have used it on Figma Community.
Twenty of its galaxies also went out as a free Figma file, counted on its own.
Reflection
What I’d take to the next product
- 01
Gate last
Licensing shipped in commit one, before the export it guarded was done.
- 02
Make big calls undoable
The paywall left in two commits, with a guide for putting it back.
- 03
Ship small, then iterate
First public version 12 days in; five updates, the last one free.
- 04
Design to the sandbox
Every video format has a fallback: Figma may not offer the encoder.
- 05
Loop by construction
Each layer's speed comes from the clip length, so a loop always closes.
- 06
A counter isn't usage
951 people found it on Figma; only its events can show who returns.