Internal Tool

Toronto Yuwol: The Tools Behind a Ten-Month Musical

Internal tooling for a bilingual musical company of about forty: scheduling and attendance, a Korean-English script reader used daily, and a ticketing platform that sold real seats for the production's run.

Visit the live app (opens in new tab)
Role
Designer & developer
Timeline
2025 to present
Team
Solo, with Claude Code
Tools
Next.js, React, TypeScript, Postgres
Toronto Yuwol: The Tools Behind a Ten-Month Musical

Why it exists

In 2025 I joined an amateur musical company, well outside my comfort zone, and found the operational chaos every volunteer group knows: months of rehearsals, about forty people across cast, production, and promotion teams, two languages, and everything coordinated through group chat. The people were committed. The tools were a spreadsheet nobody opened and a chat nobody could search.

So I started building, one annoyance at a time.

One tool became a suite

Scheduling and attendance. A shared calendar of practices and performances, with attendance tracked per date, so who's in the room is a glance instead of a thread. People pick their team and their language; the whole thing runs in Korean and English because the company does.

A bilingual script reader. Rehearsing a translated show means half the room works from Korean and half from English. The reader keeps both scripts in one place, used daily through the run, which quietly made it the most-loved thing I built for them.

Ticketing, with real money. When the production needed to sell seats, I built that too: performance browsing, seat selection, payment, and confirmation, shipped and used to sell tickets for the ten-month run. Designing a payment flow for your own community, where every buyer might sit next to you at rehearsal, is a very effective accountability structure.

Designing for people who see you every week

This is internal tooling in its purest form: a non-technical user base of real people I couldn't avoid, using the tools daily, telling me directly what was broken. I iterated weekly on that feedback. No analytics dashboard substitutes for the stage manager walking over to say the attendance view confused her.

Adoption was never mandated. It happened because each tool removed a specific, named annoyance, and because the people it served watched it get better every week. That's the whole playbook for internal tools, at any scale: earn the workflow, don't decree it.