Yarn - Speedrun verification tool
A tool that replaced up to an hour of manual moderator work with a 60-second audit. Built for the competitive speedrunning community.
-
React
-
TypeScript
-
Tailwind CSS
-
Firebase Firestore
-
YouTube iFrame API
-
Jest
-
GitHub Actions
-
CI/CD Pipeline

Try it live with Sample Data: https://kr0ss0.github.io/yarn/?run=2p8L9LzGUWWbtTA7Huba
(Press the Reset-button to clear data)
The problem
Competitive speedrunning runs on Load Removed Time. The clock pauses during loading screens so that hardware speed doesn't determine who wins. For over a decade, the verification process had an unavoidable flaw:
A runner times their own loads. A moderator then re-times the entire video from scratch to confirm the runner wasn't mistaken. For a long run this takes up to an hour of duplicated work, on every submission.
Yarn eliminates the redundancy entirely.
How it works
Yarn splits the process into two modes with a clear handoff between them.
Runner mode: The runner marks each load start and end frame-by-frame directly against their YouTube video, then exports their markers as a shareable cloud link or JSON file.
Verifier mode: The moderator opens the shared link and is dropped straight into a structured audit. Instead of scrubbing through video manually, they use automated jump-points that snap the playhead to the exact frame before, at, and after each load. Visual confirmation replaces data entry.
The result: verification time drops from up to an hour to under 60 seconds. The timing data is fully public, meaning any community member can inspect the exact frames used for a record, removing the "black box" from competitive moderation.
Validation Engine
Yarn includes a real-time validation system that monitors the marker timeline as the runner works. It automatically detects:
-
Load screens that overlap each other
-
Invalid durations where the end frame precedes the start
-
Markers placed outside the boundaries of the timed run
Every inconsistency is flagged instantly with a contextual warning. No invalid dataset can be exported.
Testing & CI/CD
The project ships with unit tests on pure utility functions and a CI/CD pipeline via GitHub Actions that runs the full test suite on every push and deploys automatically to GitHub Pages on merge to main.


