Sides

Script to rehearsal, faster.

Sides My Scripts library with three distinct script colors and current title fonts
Sides

Script to rehearsal, faster.

Sides My Scripts library with three distinct script colors and current title fonts
Sides

Script to rehearsal, faster.

Sides My Scripts library with three distinct script colors and current title fonts

Sides

Sides was born one fateful evening when I watched a friend struggle to rehearse her lines in another app. I thought, “I could make something better.” So I did. Sides is a rehearsal app for actors that lets them import or create scripts, then run lines against generated voices or their own recordings. Line rehearsal apps aren’t new, but existing options turn simple tasks like building a scene or recording cues into tedious, repetitive processes. I designed Sides to get as much of that setup out of the way as possible, so actors can spend less time preparing and more time rehearsing. Everything runs entirely on-device, keeping copyrighted scripts off external servers and allowing actors to rehearse anywhere, even without an internet connection.

Team

Me

Focus

Product &
Interaction design

Duration

3 Months

Year

2026

The opportunity

Every minute spent building a scene is a minute not spent rehearsing.

Before an actor can rehearse a scene, they have to prepare it. In every rehearsal app I could find, this means repeating the same sequence for every single line: add a cue, choose a speaker, record the line, save, repeat. The longer the scene, the more time spent operating the app instead of rehearsing. I wanted to see how much of that time I could eliminate.

Sides
Time to first rehearsal
Scene creation in Sides is ~120% faster.
Off Book
Sides
Time to first rehearsal
Scene creation in Sides is ~120% faster.
Off Book

Scene building

Build a scene without even looking at your phone.

Build a scene without even looking at your phone.

Alongside PDF import, Sides allows you to create a scene with your voice using one simple action: hold to record, say who’s speaking, perform the line, and release. The line is created, its speaker assigned, and its text transcribed automatically for quick editing or reading through later. You can build an entire scene while reading straight down the script, without ever losing your place.

Juliet Juliet says, Sweet, good night.RomeoIf my heart’s dear love,—Julietsays,Sweet, good night.
Hold to Record

Design exploration

How do you give a script personality without pictures?

The script library screen was the first screen I designed, and one I struggled with for a long time. I wanted script cards to have personality, but wasn’t sure how to create that without relying on imagery. Earlier explorations used fanned thumbnails of imported PDFs, but script pages rarely looked good enough to carry the design. Eventually, I realized that color and typography alone could create the visual interest and at-a-glance recognizability that I was looking for. The new cards completely changed how the app felt to me. I started genuinely looking forward to opening Sides, even while testing it, because I loved seeing the library.

Earlier exploration

Current direction

App design

Personality shouldn’t become another setup step.

New scripts automatically receive a random color and typeface, so even actors who never customize a thing still get a library that feels colorful and distinct. Customization is intentionally kept out of the script creation flow, tying back to Sides’ core promise: getting actors from setup to rehearsal as fast as possible. Actors can still customize each card if they like, but it’s never required before they start rehearsing.

Rehearsal

A rehearsal should be readable at a glance.

Your lines sit on the right, everyone else’s on the left, and each character’s accent color appears beside their name and subtly fills the background while they’re speaking. At the bottom, the cue rail gives you a quick overview of the scene. Each tick represents someone’s line, with your own cues highlighted in your accent color, making it easy to scrub through the rehearsal and find your place.

Romeo and Juliet · Act I, Scene I

Rehearsal

How do you make rehearsing alone feel like a conversation?

When you’re ready to rehearse from memory, switching to Off Book mode makes the script disappear and transforms each character’s colored dot into a little orb that acts as your scene partner. Orbs were designed with just enough personality to feel alive without becoming distracting: active speakers look toward whoever they’re speaking to, background characters exchange glances, and up to two speakers can share the foreground during back-and-forth dialogue.

Rehearsal backend

What happens when the cast outgrows the screen?

The answer to this question felt ridiculously obvious once I found it: give them a backstage. Characters who haven’t spoken recently and aren’t about to speak move backstage on a circular rail, which rotates in either direction to bring speakers onstage as others leave. This keeps entrances and exits predictable and unobtrusive, and prevents characters from jumping across the screen. Backstage, characters can move on and off the rail as needed, ensuring that anyone about to speak is already in position to move naturally from the background to the foreground rather than appearing from offscreen.

Your scene partner

Who reads the other lines?

When preparing a rehearsal, actors can use either their own recorded performances or voices generated by a small on-device text-to-speech model. The Voice Engine includes ten voices that can be assigned to individual characters. Both options live alongside character and scene selection in the rehearsal preparation screen.

Generated voices

Sometimes the built-in option isn’t the simplest.

When I first added the Voice Engine, I planned to use Apple’s built-in text-to-speech voices. But getting the best voices required actors to dig through iOS Settings and manually download them from a list of dozens, which conflicted with Sides’ goal of getting from download to rehearsal as quickly as possible. I ended up auditioning several open-source text-to-speech models before choosing Kyutai Pocket TTS for its range of voices and natural, expressive speech.

“Your coat, sir. And if I may—do try to make it home this time.”

Unlike other models, the line content influenced the tone and delivery, making performances feel noticeably more natural.

Loading

The show goes on, even while you wait.

Keeping Sides entirely on-device means actors sometimes have to wait while the app does heavier work, like voice generation or rehearsal analysis. But loading screens don’t have to be boring. I wanted each one to show what the app is working on, while also giving actors something fun to do. During voice generation, the character orbs hold a “Sound Check,” stepping forward to practice their lines. After a rehearsal, the waveform from rehearsal transforms into an orb of sound that joins others being inspected by the familiar spotlight. Every loading screen is also fully interactive. Actors can tap the orbs during sound checks, make a mess of paper stacks during PDF import, and discover all kinds of little Easter eggs while the app works.

Reflection

Building an app is hard.

I already knew this to some degree, but when I first started building the app, I thought I’d be able to get the whole thing done in a couple weeks. After all, it only took me a couple hours to get a functional—albeit fugly and janky—vibe coded prototype. How wrong I was. I never realized how many things that seem like default iOS behavior are actually the result of careful attention to detail from developers who sweat the little things.

I like to think I’ve learned to sweat those same little details, and I hope that comes through when people use Sides. I am quite proud to say that the app accomplishes what I set out to do: meaningfully shortening the time from download to rehearsal. I’m especially happy with the Build a Script with Voice flow which is unlike anything offered by other apps in the space. During user testing, actor friends told me that building scenes in Sides was faster and easier than any app they’d used before. Of course, there’s still plenty I’d like to improve.

Some of the most difficult parts of the app were things that I didn’t even think about before I started building it. The worst offender is the PDF importer. “PDF parsing is a solved problem,” you might be thinking. “Just OCR the page and attach lines to their speakers, right?” Wrong. So wrong. I was somewhat relieved to find that many competing apps in the space also struggle with parsing script PDFs, but the PDF importer is absolutely still the weakest part of the app, and improving it further is beyond my expertise as a designer (Reach out if you can help?). I’d also like to revisit the post-rehearsal analysis that tells actors how well they did. The screen serves its purpose, but lacks the same pizzazz and personality that the rest of the app has.

Now that you’ve made it all the way down here, I’ll admit it: Sides was 100% built with AI. I may not know how to code, but I do know how to design and I can absolutely get down with some Apple Developer documentation in the right state of mind. But contrary to what people say about vibe coded software, Sides is not slop; it was built over the course of many months, full of tireless nights spent making sure every single screen and interaction felt perfect. Because I made Sides for my friends. It’s a labor of love.

There is something quite addictive about watching something you’re working on inch closer and closer to perfection. That’s not to say that Sides is anywhere near perfect, but it’s a hell of a lot closer than it was back in August. At the time of writing, I’m preparing to launch Sides on the App Store, and I already have a growing list of things I want to improve. I started building Sides because I looked at another rehearsal app and thought, “I could make something better.” Now I look at my own app and think the exact same thing. And somehow, I’m still convinced I can get through that list in a couple of weeks. Clearly, I’ve learned nothing.

I already knew this to some degree, but when I first started building the app, I thought I’d be able to get the whole thing done in a couple weeks. After all, it only took me a couple hours to get a functional—albeit fugly and janky—vibe coded prototype. How wrong I was. I never realized how many things that seem like default iOS behavior are actually the result of careful attention to detail from developers who sweat the little things.

I like to think I’ve learned to sweat those same little details, and I hope that comes through when people use Sides. I am quite proud to say that the app accomplishes what I set out to do: meaningfully shortening the time from download to rehearsal. I’m especially happy with the Build a Script with Voice flow which is unlike anything offered by other apps in the space. During user testing, actor friends told me that building scenes in Sides was faster and easier than any app they’d used before. Of course, there’s still plenty I’d like to improve.

Some of the most difficult parts of the app were things that I didn’t even think about before I started building it. The worst offender is the PDF importer. “PDF parsing is a solved problem,” you might be thinking. “Just OCR the page and attach lines to their speakers, right?” Wrong. So wrong. I was somewhat relieved to find that many competing apps in the space also struggle with parsing script PDFs, but the PDF importer is absolutely still the weakest part of the app, and improving it further is beyond my expertise as a designer (Reach out if you can help?). I’d also like to revisit the post-rehearsal analysis that tells actors how well they did. The screen serves its purpose, but lacks the same pizzazz and personality that the rest of the app has.

Now that you’ve made it all the way down here, I’ll admit it: Sides was 100% built with AI. I may not know how to code, but I do know how to design and I can absolutely get down with some Apple Developer documentation in the right state of mind. But contrary to what people say about vibe coded software, Sides is not slop; it was built over the course of many months, full of tireless nights spent making sure every single screen and interaction felt perfect. Because I made Sides for my friends. It’s a labor of love.

There is something quite addictive about watching something you’re working on inch closer and closer to perfection. That’s not to say that Sides is anywhere near perfect, but it’s a hell of a lot closer than it was back in August. At the time of writing, I’m preparing to launch Sides on the App Store, and I already have a growing list of things I want to improve. I started building Sides because I looked at another rehearsal app and thought, “I could make something better.” Now I look at my own app and think the exact same thing. And somehow, I’m still convinced I can get through that list in a couple of weeks. Clearly, I’ve learned nothing.

© 2026 – Ethan Blatt

© 2026 – Ethan Blatt

© 2026 – Ethan Blatt