Open sourceThe engine behind Hype Stack's Wrapped
Year in review videos, in React.
Turn a year of numbers into a short video that plays in the page. Scenes, charts and transitions on one timeline, with a player, an editor and MP4 export.
Live in the page. Not a recording.
21charts, each with its own entrance
19transitions between scenes
11ready-made scenes to fill with your numbers
10palettes, each in dark and light
How it works
A video is a list of scenes.A scene is a function.
You call each scene with what it should say. A chart is data you hand it. The library brings the stage, the motion, the transition after each scene, and the player around it all.
import { bigNumberScene, chartScene, WrappedView } from "@react-wrapped/kit";
import "@react-wrapped/kit/styles.css";
const scenes = [
bigNumberScene(
{ eyebrow: "This year you made", value: 1687, title: ["contributions."],
lede: "That's **4.6 a day**.", counter: "climb", variant: 0 },
{ key: "total", label: "Total" },
),
chartScene(
{ eyebrow: "Your year", title: ["Then came", "*launch week.*"],
lede: "The busiest stretch, lit.",
chart: { type: "spark", values: weeks, band: { from: 20, to: 27, label: "Launch week" } } },
{ key: "launch", label: "Launch week" },
),
];
<WrappedView subject={subject} seed="ada-2026" scenes={scenes}
config={config} onConfigChange={setConfig} />Charts
A chart is data.The motion comes with it.
- Funnel01
Funnel
EpicA flow narrowing, stage by stage.
- Radar02
Radar
EpicA year as one outline, against everyone else's.
- Bubbles03
Bubbles
EpicParts of a whole as discs, sized by their share.
- Spark04
Spark
EpicA line over time, one stretch lit.
- Week by hour05
Week by hour
EpicA week, hour by hour. The lit cell is the busiest slot.
- Rings06
Rings
Epic- TypeScript55%
- Go25%
- CSS13%
- Shell7%
Parts of a whole, biggest outside.
- Wheel07
Wheel
EpicA year around a ring, month by month.
- Bars08
Bars
EpicColumns sharing one light, the ones that matter lit.
Transitions
19 ways out of a scene.All on one timeline.
Layers. Three flat bands in the palette's colours rise through the frame one after another. The old scene leaves behind them and they clear upward onto the next one. Read about Layers
Bars
EpicColumns sharing one light, the ones that matter lit.
Rings
Epic- TypeScript55%
- Go25%
- CSS13%
- Shell7%
Parts of a whole, biggest outside.
Bars
EpicColumns sharing one light, the ones that matter lit.
Eight packages
Use it whole.Or take the parts.
WrappedView is the whole page in one component. Every piece of it is also a package of its own, so you can build a different page from the same parts.
- Player and editorA timeline that is also the editor: switch scenes off, reorder them, rewrite their words.
Where it happened
Your toprepositories.
01ada/orbit-cli02ada/telemetry03ada/dotfiles - Year scanA beam sweeps the year and finds the scenes hidden in it. They join the video as they turn up.
My yearon Orbit.
@ada, Oct 2025 to Oct 2026
- Graphics to keepA share card and a card per insight, drawn in the browser and saved as PNGs.AD
@ada
Orbit Wrapped, Oct 2025 to Oct 2026
Contributions2,052Longest streak48 daysBiggest day58Top languageTypeScriptThe MarathonerEpicRubber DuckLegendary
Ten palettes, dark and light. Pick one and the previews across this site follow. How theming works
@react-wrapped/coreThe stage, the motion kit, palettes, formats and transitions.@react-wrapped/chartsTwenty-one charts and their entrances.@react-wrapped/scenesEleven ready-made scenes and the pixel art set.@react-wrapped/playerThe player, the timeline, the scene editor and the settings panel.@react-wrapped/scanThe year scan that finds hidden drops.@react-wrapped/graphicsShare cards, insight cards and the gallery under the video.@react-wrapped/marksThe marks pressed into the bottom right corner of the stage.@react-wrapped/kitAll of the above in one install, plus the whole page as one component.
From Hype Stack
See it running for real.
react-wrapped is a free tool from Hype Stack, the full stack React template. Hype Stack's Wrapped plays real years with it: sign in, and yours plays in a few seconds.