Open source · MIT

Rung

A tier list maker for streamers: real FLIP animation, a reveal mode for the camera and a live link for chat.

v1.0.0 A tier list built for the stream
React 19TypeScriptViteWeb Animations APISSEnode:sqlite
Rung

The motion is the product

Tier list makers treat the ranking as a document: drag, download, forget. On a stream the process is the show, and there the usual tools fall apart: cards jump instead of moving, and the audience sees nothing until the final screenshot.

Rung is built around the two things that matter on air. The first is real FLIP: neighbours make room instead of teleporting. The second is the viewer: an open link shows them the same board at the same moment, while the streamer is still building it.

What is inside

Real FLIP

Card positions are measured before and after the change, the difference is inverted with a transform and released on the Web Animations API. Only the composited layer moves, so thirty cards reorder without dropping frames.

Drag written by hand

A hook on Pointer Events: works with a mouse and with a finger, because HTML5 drag-and-drop does not exist on touch screens. The lifted card tilts and casts a shadow: it is in your hand rather than «selected».

Reveal mode

The board goes large and cards are uncovered one at a time with the space bar, each rising out of a six-pixel blur with a stagger. That is a rhythm for the camera, not decoration.

A live link for chat

An open page with no login updates over Server-Sent Events while you drag, and works as an OBS browser source. The editor shows how many people are watching.

Undo instead of dialogs

The document lives in a reducer and past states in a stack, so Ctrl+Z covers every change. Being wrong in front of an audience should cost one keystroke.

Hand-written instead of libraries

FLIP, drag, the router and the PNG export are all written by hand: a canvas instead of html2canvas, seventy lines instead of an animation library. Runtime dependencies: React and React DOM.

Screenshots

The editor: tiers, the pool and animated dragging
The editor: tiers, the pool and animated dragging
Reveal mode: cards uncovered one at a time
Reveal mode: cards uncovered one at a time
Lists: each with its own viewer link
Lists: each with its own viewer link
A card in hand — tilt and shadow while it moves
A card in hand — tilt and shadow while it moves
The viewer page: the same board, without a single button
The viewer page: the same board, without a single button
The editor in the dark theme
The editor in the dark theme

Installation

git clone https://github.com/dripips/rung.git cd rung docker compose up -d

Have a project or idea?

Write to me and we will talk the task through.