Building Hardcopy

A free, ad-free iOS app for cataloging a physical movie collection — designed, researched, and taken through App Store review from the ground up.

Challenge

For this case study, the project scope was simple:

Applications like Letterboxd and iCollect", as well as every other media tracker out there is built around "what have you watched", as opposed to "what do you own, what do you want to own, and how can we help you next?

Nobody was building for the question a physical collector actually has:

  • What do I own?

  • Where is it?

  • What am I still missing?

As someone who has begun collecting physical media, and has many friends who do so as well, this was a question that began to consume the rest of my summer.

The Research

Throughout the months that followed, I talked to people who still buy Blu-rays and DVDs, and I found out that while accessibility of media was a large concern- above all else was the concept of "ownership".

But there was no free, dedicated way to actually catalog a shelf. The only thing out there were:

  • Spreadsheets

  • Watch-tracking apps

  • Applications that cost hundreds of dollars

That gap, plus my own desire to start building a movie collection, is what started this project and the end result is by far one of my favorite projects I have ever worked on.

The Goal

  • Log what's already on the shelf fast

  • Keep what I own separate from what I want

  • Never charge people for it

For this case study, the project scope was simple:

Applications like Letterboxd and iCollect", as well as every other media tracker out there is built around "what have you watched", as opposed to "what do you own, what do you want to own, and how can we help you next?

Nobody was building for the question a physical collector actually has:

  • What do I own?

  • Where is it?

  • What am I still missing?

As someone who has begun collecting physical media, and has many friends who do so as well, this was a question that began to consume the rest of my summer.

The Research

Throughout the months that followed, I talked to people who still buy Blu-rays and DVDs, and I found out that while accessibility of media was a large concern- above all else was the concept of "ownership".

But there was no free, dedicated way to actually catalog a shelf. The only thing out there were:

  • Spreadsheets

  • Watch-tracking apps

  • Applications that cost hundreds of dollars

That gap, plus my own desire to start building a movie collection, is what started this project and the end result is by far one of my favorite projects I have ever worked on.

The Goal

  • Log what's already on the shelf fast

  • Keep what I own separate from what I want

  • Never charge people for it

Process

The project started with a straightforward question:

"Why is there no free, dedicated place to track a physical media collection, when watch-trackers like Letterboxd have owned the streaming version of this for years?"

The Core Pain Point

The pain point I heard over and over starts with the user standing in a store, looking at a movie title, and not remembering if it was already at home.

That put ownership tracking above everything else, and it led me to create something that most "watch-trackers" get wrong:

Owning something and wanting something are two different lists.

  • A wishlist - stuff to buy

  • A watchlist - stuff to watch, whether you own it or not

These aren't the same list, so in Hardcopy they're kept structurally separate. A movie can live on either one, both, or neither.

Competitive Analysis

Before drawing a single screen, I looked at what already existed:

  • Streaming trackers - which are built around watch history and discovery, usually not ownership

  • Spreadsheets - that work, but ask people to maintain their own structure from scratch

    Nothing free was built around the actual moment a collector needs help. Whether it be standing in a store, or scanning a shelf at home, trying to remember what's already theirs.

People also wanted to rate and review what they owned, but making that visible to other users pulls in a moderation and reporting obligation that both app stores require the moment there's public user-generated content. For the first version of the application I'm building and maintaining alone, keeping profiles and reviews private sidesteps that entirely.

The Interface

With the problem and the audience clear, I worked through the interface before touching visuals. Everything funnels toward one action:

Getting a disc onto the shelf as fast as possible.

  • Barcode scan - point the camera and it's logged in seconds, defaults to scanned format, easy to change if misread

  • Title search - for when you don't have the disc in hand

From there, four separate views instead of one list trying to do everything:

  • Collection - what you own

  • Wishlist - what you want to buy

  • Watchlist - what you want to watch

  • Lists - custom groupings

A few features other features I added:

  • A "weighted-equal randomizer" for when the viewer cant decide on what movie to watch.

  • A share card generated every time you add a movie, because collectors like showing off a rare find

  • A 13-step guided tour for first-time users, each step pointing at the real control it's teaching instead of a generic slideshow

Visual Identity

The earliest working version used emoticons for the entire icon system and a placeholder logo. Neither one was making it to the App Store, so I built a real visual identity:

  • Dark charcoal background (#1E1E1E) with one blue accent (#0095D5)

  • Every emoji in navigation and buttons replaced with a stroke-icon set drawn by hand, all at one consistent weight

The Bug That Took Longer Than the Rest of the App Combined

Real-device testing turned up one bug worth detailing because that fix single-handedly fixed the application.

Once wrapped for iOS and running on a physical phone through TestFlight, the bottom nav bar would visibly detach and drift upward at certain moments, most noticeably mid-scroll and during the onboarding tour.

After weeks of diagnosing, the real cause was structural: the nav bar was pinned with position: fixed on top of a scrolling page, which is exactly what iOS's WebKit engine handles badly during animated scrolls.

The actual fix was to stop the page itself from scrolling at all with one fixed-height shell with a single internal scroll region, so the nav bar became an ordinary element with nothing left to detach from.

I verified it worked with direct on-device measurement.

App Store Submission

After that came putting the application on the App Store. App Review rejected the submission three times total before finally accepting it.

Conclusion

Hardcopy is ultimately a project about a question every other movie tracker avoided. That being not what you watched, but what's already on your shelf. Most of the apps in this space are built around discovery or watch history, and treat ownership as an afterthought if they touch it at all. Hardcopy was designed around the opposite idea. That the person opening it just wants to know, fast, whether something's already theirs, and that costs them nothing to find out. The separate lists, the barcode scan, the randomizer, the account wall that only shows up when it's earned, all of it is in service of that same idea.