Irene Cheung

Product Designer

Tanmigo interface showing a tango video paired with an annotation panel for tagging embrace, footwork, and axis

A 0-to-1 video annotation platform for dancers

Bridging the gap between video discovery and physical practice with a seamless, one-stop annotation experience, designed and built in code with an engineer.

Data AnnotationType ScriptFront-End DevelopmentLive Product

Summary

Category

Data Annotation

Org

Side Project

Product

Tanmigo.com

Role

Sole Designer, front-end developer (AI-assisted)

Core Challenge

  • 01 Underutilized backend metadata for UX
  • 02 "Blank-sheet anxiety" during user annotation
  • 03 Fragmented video retrieval and organization workflows

Impact

  • 01 Shipped production-ready code and launched the beta
  • 02 Onboarded 5+ active beta users

As a designer, builder, and tango dancer, I designed the end-to-end experience and shipped the front-end myself.

TBD

Tool

VS Code

Front-end Development

Figma

Design System, Prototyping

Gemini CLI

Code Review

GitHub

Version Control

Claude Code

Agentic Coding

Lovable

Prototyping

Core User Journey

  • Ingestion
  • Annotation
  • Curation
  • Workspace architecture
  • Visual Foundation

Background

Tango is a dance where you can practice for ten years, and still feel like a beginner.

Problem Space

Eight of the ten dancers I interviewed have playlists and curations to study tango movements outside of the dance floor.

  1. 01 Videos are scattered across YouTube, phone albums, Instagram, and Facebook; various sources leading to chaotic collections
  2. 02 One video contains nuances that make how you save and annotate it important
A tango couple mid-dance, annotated with labels pointing to axis, disassociation, weight transfer, intention, and interpretation of music

If we look at a single second of captured tango, what nuances can we see?

(yes, that's me!)

Design Strategy

Designed the data before the screens

Before sketching a single wireframe, I designed the metadata structure for annotations: what gets captured when a video comes in, and what makes a moment findable again later. That structure ended up deciding most of the UI for me.

Information Architecture

The core decision: the system captures what it can know on its own, and dancers add only what they know. That's what keeps a thousand-clip library manageable.

Flow diagram: YouTube, Google Photos, and Tango Class or Milonga footage feed into Tanmigo, which combines auto-metadata with human intent, then routes into a Personal Library, Public Search, and Collaborators

Rapid prototyping

From first concept to usability testing in 8 hours. Early on, the UX audits and rebuild ideas felt abstract when I tried to communicate them. I used Lovable as a sandbox to demonstrate multiple clickable iterations. Shortlisted ideas then moved to my local dev environment, ran through the test plan, and shipped once they passed.

2 hours

A working prototype in Lovable

Two hours in Lovable got me a working prototype, not a mockup: real clicks, real data fields. Its job was to determine which version of iteration is better, define priority, and leaves question worth real user testing.

Tanmigo prototype in Lovable showing the video library and annotation panel

6 hours

Quick sync + Information Architecture + User Testing

Ideas are grounded by interviewing in person and remote through card sorting. Insights moved quickly to a new branch, followed by a test run to make sure they were safe to merge.

Card sorting boards ranking what information dancers need first when reviewing an annotation

The risk of building high-fidelity so quickly — here is how I see things.

I see design as a tool for communication, aligning constraints with different mental models. As a solo designer working with engineers, abstract card sorting or low-fidelity prototyping often fails to resonate. They don't show how things behave in various use cases, nor do they answer the "what-if" questions that every developer cares about. Building high-fidelity prototypes is how I reach consensus and define priorities with engineering.

To me, that is the essence of design: we design for better communication.


Visual Foundations

I still have my pixel-perfect moments: gathering design feedback on how things should look, moving blocks to test out ideas, and establishing an accessible design system that agents can reference.

Tanmigo interface exploration testing layout and interaction variations

Refining user behavior through iteration.

Tanmigo design system tokens for color, type, and spacing

This design system was later imported into CSS.


The "Failed" Moment

Abandoned annotation timeline design with a sequential panel and horizontal annotation strips shown at once

There is one iteration I eventually gave up on, but it taught me a lot. While working on the annotation journey, I identified a gap in how users find specific annotations and tested a solution on Lovable. However, it ended up confusing users. Having a sequential panel and horizontal annotation strips at the same time left them unsure of where to look.

Lesson learned: Stick to one primary element; having two primary elements only confuses users. Clear intention keeps the UX grounded.


Live Product

YouTube → Tanmigo: A One-Stop Annotation Journey.

While these features are currently in active development, you can explore the functional MVP at www.tanmigo.com.

Becoming a better designer

Shipping my designs changed how I design.

Once every state I sketched was mine to build and test, my components got simpler, and edge cases got named before the build instead of during it. Nothing teaches design restraint like implementing your own work.

Building from idea to pull request, I design with more intention.

Read more