When you’re watching a film or TV show and want to know if the actress in the lead role was also in that other thing you saw, where do you go? The obvious answer is probably IMDb, but as Casey Liss notes, “it has gotten more frustrating to use”. So, he set about building a better alternative.
With design help from Ben McCarthy, Casey built Callsheet — an IMDb alternative for iPhone, iPad and Vision Pro. Calling it an IMDb alternative is almost a disservice, though, because the experience is worlds apart. With Callsheet, finding what you need is fast, navigating through lots of information is easy, and there are plenty of thoughtful touches along the way.
We caught up with Casey and Ben to discuss how the app came to be, the challenges of bringing it to visionOS, and how Sketch helped along the way.
Let’s start with the obvious — can you tell us a little about Callsheet?
Casey: Honestly, Callsheet wouldn’t exist if it weren’t for the relentless enshittification of IMDb. I’d been a loyal IMDb user for years, but it has consistently gotten more frustrating to use. I got tired of the constant “Hey you should log in!” or “Hey did you see this trailer?” or “Hey you can buy this on Amazon!”. Just, yuck.
I was familiar with The Movie Database as a user-contributed equivalent to IMDb, and started exploring what their API looked like in January 2023. After a couple weeks, it became clear that I could work with their API easily. After that, I was off to the races.
How does Callsheet’s design play into the goal of helping people get the information they need fast?
Casey: Everything about Callsheet is designed around speed. However, my ‘North Star’ is to respect users — first and foremost, users’ time. Much to Ben’s dismay, I’ve eschewed some far prettier designs in favor of information density. As with all things, this is a balancing act that perhaps we didn’t get 100% right. But I like to think it’s pretty great right now.
My ‘North Star’ is to respect users’ time.
When you’re dealing with movies, TV shows, casts and crew, there’s a potential for all that information to feel overwhelming. How did you approach this issue with Callsheet?
Casey: Information architecture is a challenge in terms of prioritizing what information to show (or highlight) and what information to bury. It’s a challenge in terms of finding the balance between what very different users would prefer to see.
At the end of the day, I’m Callsheet’s biggest fan, and the app is designed for me. The things I care most about get pushed to the top, in both a literal sense, as well as a figurative one.
Callsheet is, in my mind, iPhone-first, so that severely limits my options in terms of layout — there are just not that many pixels available! That’s how we arrived to the ‘right rail’ of quick-hit information that I consider to be ‘above the fold’ and next to the image for that person/media.
![An image showing a screenshot from the Callsheet app, focusing in on a specific film, and cropped to show how the app’s design handles information density](https://sketch-cdn.imgix.net/assets/blog/2024-06/callsheet-side-rail%402x.png?ixlib=rb-4.1.0&fit=max&w=1920&q=95&auto=format&fm=png&s=1e639c01522d4e2bf72397592956ae46)
Design choices like Callsheet’s “right rail” help to convey a lot of information in a small space.
Can you talk a little about how the design of Callsheet changed throughout its development? Were there any pivotal moments or decisions you made which moved the needle?
Ben: Perhaps my greatest contribution to Callsheet was insisting that the search field was at the bottom of the screen. I’m a big proponent of the idea that the most important controls of an app should be the easiest to reach, and search is integral to the Callsheet experience.
The most important controls of an app should be the easiest to reach, and search is integral to the Callsheet experience.
Being easy to reach also means a control is faster and more reliable to use. And with an app like Callsheet, it’s important that users can find what they’re looking for with as little fuss as possible so they can get back to what they’re watching. I understand this was a huge pain in the ass for Casey to implement, but I think it was the right call, and we both heard from quite a few users and beta testers who really loved this change.
![An image showing two screenshot from the Callsheet app, the left shows an early development view, and the right shows the app today.](https://sketch-cdn.imgix.net/assets/blog/2024-06/callsheet-search-comparison-2%402x.png?ixlib=rb-4.1.0&fit=max&w=1920&q=95&auto=format&fm=png&s=8329286a9fda045857b5fe43c8821b5c)
Left: An early development screenshot of Callsheet’s search view. Right: Callsheet’s search view today.
Casey: This was a pain and I resisted it like a child resisting bedtime. However, Ben was (as usual) completely right. I had a fair number of beta testers for Callsheet, and the #1 complaint I got was how difficult it was to hit the search box up at the top of the screen. However, the app is 100% SwiftUI, and that’s where SwiftUI puts the search box.
I spent a couple of days working on moving the search box, including some help from my friend Gui Rambo on some of the squishier technical bits. Once I saw it down there, I knew Ben was right. Now that Ben has their own search-based app out, I think I may need to crib some of their ideas and see what’s easily usable in Callsheet 😏.
There are a bunch of neat details in Callsheet, like tapping a film’s runtime to see what time it would finish if you watched it right now. Can you share any others you’re fond of?
Ben: My favorite little touch is showing an actor’s age at the time each film or show was released. I regularly found myself doing the math of subtracting the years since a film’s release from the actor’s current age and Casey has forever saved me from that hassle.
Casey: The thing I’m most proud of is the spoiler avoidance tools for TV shows. A eureka moment was remembering I had the secret identity of one of the characters in the Watchmen miniseries spoiled by IMDb back in 2019. I’m still grumpy about it 😆. So, in Callsheet, you can opt to have several things redacted, such as character names, how many episodes of a show they’ve been in, episode titles, episode thumbnails, etc.
![An image showing screenshots from the Callsheet app for its spoiler controls, and a detail view with obfuscated spoilers.](https://sketch-cdn.imgix.net/assets/blog/2024-06/callsheet-spoiler-controls%402x.png?ixlib=rb-4.1.0&fit=max&w=1920&q=95&auto=format&fm=png&s=877f5dbbd80f7dfda106c2866fbc9c18)
Callsheet’s options to hide spoilers make it easier to learn about a film or show without ruining the plot.
It’s a little rickety for reasons beyond my control, but I also love the integration with Plex and Channels. If you’re playing something in one of those apps on a nearby Apple TV, whatever you’re watching will be at the top of the main Callsheet screen, ready for you to drill into.
I still giggle a bit whenever I see an actor’s height. Not all of them have that information available, but I think it’s funny — and useful! A friend of mine has a bit of a preoccupation with this, and I thought, “I wonder if I could add this to Callsheet”. Turns out it wasn’t too hard.
It’s stuff like this that I think makes all indie software so fun — I doubt you’ll see an actor’s height front-and-center on IMDb, but I can make the choice to do it in Callsheet, and have nobody to stop me.
Stuff like this makes indie software so fun — I doubt you’ll see an actor’s height front-and-center on IMDb, but I can do it in Callsheet and have nobody to stop me.
It’s clear Callsheet aims to be a good citizen of its platforms. Did that hold you back at all or present any problems? Or did it make things easier for you during its development?
Casey: Yes (to all of the above)! I’m not great at doing anything UI-related. That’s why Ben’s help has been so immensely valuable to me — they’re exceedingly good at it. That said, my approach to Callsheet is native ✨ with flair ✨. This is pretty easy to achieve using SwiftUI, but quite a bit harder using UIKit (which dates back to iPhoneOS 2.0).
The thing with SwiftUI is that it makes a lot of things that were once somewhat difficult or non-intuitive quite a bit easier. The thing with SwiftUI is also that some things you’d never expect to be challenging are all-but-impossible. The bottom-mounted search bar is one of these things. It’s not the native component, which bums me out, but I’m happy with where it ended up. Hopefully, with time, we’ll get some new APIs from Apple that make what I want to do possible.
Were there any parts of the UI that you had to iterate a lot on to get right?
Casey: The first thing that jumps to mind is the visionOS version of Callsheet. In November of 2023, I went to a lab that Apple held in New York so I could try the app on real hardware. It quickly became obvious that I had a lot of work to do. I noodled on it off-and-on between then and when my own Vision Pro arrived in February. I then spent quite a long time going back and forth between different designs for Callsheet on visionOS, trying to get it to feel appropriate and native.
Callsheet’s visionOS app in use on the Apple Vision Pro
It was very much one of those times where you just had to keep throwing spaghetti at the wall to see what stuck. Luckily, I didn’t need to do massive changes — for the most part — but it took me quite a bit longer than I would have liked to get the slightly refined design language just right.
Callsheet’s app icon has some fun easter eggs in it, what’s the story behind those?
Casey: The original icon was made by my buddy Jelly. I had mocked up something truly, utterly terrible. The idea was a magnifying glass in front of a clapperboard. Jelly took my piss-poor lowercase-s sketch of it, and made it pretty.
The text originally showed the title of The Hunt for Red October, which is one of my all-time favorite movies. The date was the release date, though Jelly is Australian, so I believe it was the Australian release date.
![An image showing a Sketch window with the Callsheet icon document open.](https://sketch-cdn.imgix.net/assets/blog/2024-06/callsheet-icons%402x.png?ixlib=rb-4.1.0&fit=max&w=1920&q=95&auto=format&fm=png&s=54742a8666594c501abc6a8c0a361a0e)
Callsheet’s default and alternative icons were all designed in Sketch.
Since that time we’ve changed it to the more-generic “The Search for Blue December”, which was my suggestion, and it should be obvious where it came from. However, “Kay Celis” was 100% Jelly, and I still laugh every time I see it (say it out loud and you’ll hopefully get the joke).
The alternatives were done by another friend of mine, Ste. Those were all him, and I had virtually no input in them. But I love all of them!
How did Sketch play a role in the design of Callsheet? Are there any particular features or workflows you found useful?
Ben: Most of the design work I’ve done for Casey has been more notes and suggestions than a strict design for him to follow, and Sketch makes it incredibly easy to get those ideas across. One of my favorite features is Apple’s own UI Libraries. They really help with both getting ideas out quickly, but also save you having to double check the exact shade of gray, or the corner radius of a segmented control.
Are there any other notable projects you’ve made with Sketch you can tell us about?
Ben: I’ve used Sketch for years, I think since it launched. It really fits with the way I think. I studied graphic design in college and the importance of experimentation and iteration was really drilled into us. Sketch lets me rapidly copy or option-drag to duplicate artboards and try out variations on a design.
I’ve used Sketch for pretty much every digital design project since it arrived. From my own apps Obscura and Ketchup, to work for clients, web design, or even just to quickly mockup something to share online.
Callsheet is available for iPhone, iPad and Vision Pro from the App Store, where you’ll also find Ben’s apps — Obscura and Ketchup.
Have you created something awesome in Sketch? We’d love to hear about it! Tell us about it in our community forum.