WearLog

Turning daily watch wear into a collection journal

I am designing and building WearLog, a personal iOS project that helps watch collectors log what they wear and build a history of their collection. Real-world use and an AI-assisted workflow are shaping the app as I prepare it for launch.

WearLog app screens showing sign-in, today’s wear, and the watch collection.
Role
Independent product creator and UX designer
Timeframe
May 2026 to present
Platform
iOS, pre-launch
Client / Org
Personal project with AI-assisted development

01. The idea

A watch collection, one day at a time

As a watch enthusiast and collector, I wanted a way to remember what I wore and see how my collection changed in use over time. I had seen collectors on Reddit tracking wears in spreadsheets, but I did not have a tracking habit myself.

I started WearLog in May 2026 as a personal side project: an opportunity to develop my UX design skills, explore working with AI, and take an iOS app from an idea toward my first independent App Store release. The core interaction was simple: choose the watch you are wearing today, optionally add a photo, and save the entry.

Over time, I wanted that history to help collectors notice favorites and overlooked watches. Streaks, milestones, and learning about watches could make the experience enjoyable enough to return to. Those ambitions gave me a direction, but I needed a smaller version I could actually use.

02. First version

Two watches and a trip to Japan

An upcoming trip to Japan gave the first version a concrete purpose. I manually added the two watches I would take and focused the build on logging a wear, seeing it on a basic calendar, and viewing photos associated with each watch. This version stored the entries locally. Syncing came after I returned.

I usually logged when we sat down for breakfast or reached our first destination. At Shibuya Sky, I took a photo at the top. Notes let me record places such as the Arashiyama Bamboo Forest alongside the watch I wore that day.

Tokyo photographed from Shibuya Sky, paired with a WearLog entry being created for the Tudor Black Bay Chrono Carbon 26, including a wrist photo, Shibuya location, and the note Visiting Shibuya Sky.
My photo from the top of Shibuya Sky, paired with the wear entry being created for that day: the watch I wore, a wrist photo, the location, and the note “Visiting Shibuya Sky.”

Using the app this way gave the entries a personal dimension. A wear log could become a reminder of a place and a moment, as well as a count. It also gave me a working product to test in everyday situations.

03. Interaction design

Making the history understandable

The original 13-week rotation view used a GitHub-style contribution grid, with colors showing the watch brands worn each day. I liked how much history it fit into one view and the sense of progress as the grid filled in. It was a pattern I already knew how to read.

When I showed it to my wife, who also collects watches, she had no idea what she was looking at and found it overwhelming. Her reaction made the problem clear: I had brought my own familiarity with a technical tool into an app for watch collectors. The interface depended on knowledge I could not assume other people shared.

I replaced the grid with an Active days calendar. Weekday labels and numbered dates give the activity a familiar structure, while brand colors preserve the rotation history. A split circle shows days with watches from two brands, and activity totals and streaks summarize progress below. This change came from one informal feedback session; broader collector testing is still ahead.

Before: 13-week rotation

Original 13-week rotation view with a dense grid of brand-colored cells across July, August, and September, and a watch-brand legend below.
The compact grid showed months of activity, but its contribution-graph format was unfamiliar and overwhelming to my wife.

After: Active days calendar

September 2026 Active days calendar with numbered dates, brand-colored circles, a split marker on September 18, and a summary of 17 active days, a 4-day streak, and a 9-week streak.
Numbered dates and weekday labels anchor each wear in a familiar calendar. Brand colors and split markers retain the detail, with totals and streaks below.

04. Daily logging

Keeping the entry simple and the habit intentional

Logging a wear, with a photo

From the home screen, logging opens a sheet where someone chooses a watch from their collection. They can take a photo, select one from their library, add a note, or include an optional city and country after granting location permission. Only the watch selection is required to save an entry.

This recording follows the photo path: choose a watch, take a wrist photo, confirm it, and save. The entry then appears on Today with the photo attached.

A quicker check-in skips the photo and other optional details: choose a watch and save.

WearLog supports more than one watch in a day, but I deliberately limited logging to the current day. I wanted a conscious daily check-in, with the possibility of missing a day and starting again.

A 19-second recording of logging a wear with a wrist photo. Play to follow the flow.

Balancing consistency with an imperfect record

Peloton influenced how I thought about maintaining a streak while accepting an imperfect record. Its calendar and weekly checkmarks gave me a reference for making a daily habit visible.

Peloton: the reference

Peloton Progress screen with an Active days calendar, purple activity circles, and weekly checkmarks.
Peloton’s Active days view makes consistency visible through marked dates and weekly checkmarks. Interface reference: Peloton.

WearLog: the adaptation

WearLog Progress screen with an October Active days calendar, watch-brand colors, weekly checkmarks, and active-day, daily-streak, and weekly-streak totals.
I adapted the calendar and weekly checkmarks for watch logging. Brand colors show what I wore, while active days and streak totals summarize the habit.

That choice comes with a tradeoff: someone who wore a watch but forgot to log it cannot complete their history later. Whether that constraint encourages a useful ritual or creates unnecessary frustration is something I want to learn from other collectors.

In my own use, seeing wear counts and anticipating future milestones encouraged me to rotate watches. I began wearing my Datejust more often to add to its history. That is an early personal observation; the effect on other collectors still needs testing.

05. AI collaboration

Directing the work from concept to implementation

I began by talking through the concept with Gemini, then used it to organize the ideas into epics and user stories. I brought that backlog into Claude to explore branding and initial screens, using references from Peloton and Instagram to explain the tracking and photo-journal experiences I had in mind.

I reviewed those explorations and iterated on what belonged on each screen. The resulting designs gave me a starting point for implementation with Antigravity. I owned the product direction, priorities, interface decisions, and testing, while AI helped generate designs and code.

Follow the progression from left to right. Scroll horizontally on smaller screens.

  1. Initial prototype
  2. Card direction
  3. Color and metrics
  4. Visual exploration
  5. Current implementation
Five WearLog Today screens progressing from an angular prototype to rounded cards, red insight cards and more metrics, a textured visual exploration, and the current implementation with simplified white cards and red accents.
AI-assisted explorations and the current Today screen, shaped by my design reviews. The current screen shows the state before logging a wear; earlier explorations show a selected watch. View full-size progression (opens in a new tab).

The initial prototype felt too angular. I asked for a direction built around rounded cards, using Peloton’s home screen as a reference. Later iterations introduced red insight cards to give the screen more contrast and brought more activity metrics into the layout.

Each exploration also gave me something to reject. I liked how the gradient made the collector insight stand out, but the metallic Momentum card, protruding milestone circle, and khaki tones pulled the next version away from the direction I wanted. Those reviews led to the simpler surfaces and stronger red accents in the current implementation.

I also removed active days from Momentum because the monthly recap already showed that information. Redesigning Momentum to reduce its unused space remains on my backlog.

As the app grew, I used ChatGPT to help prioritize the backlog, prepare implementation prompts, and review Antigravity's proposed and completed work. I reviewed and revised those prompts before passing them along. When a layout overlapped or an implementation stalled, sharing the Swift code and a screenshot with another model sometimes helped identify the issue.

The reviews also surfaced cases I had not initially considered, such as deleting an entry without an internet connection and later syncing. My own testing caught other problems, including a feature-image change that made previous wear photos disappear from the interface and needed to be fixed. The workflow depended on reviewing the output and using the app, then feeding those findings back into the next iteration.

06. Data and design

Letting real watch data shape the interface

After Japan, I added syncing through Supabase and expanded the collection flow so people could add watches. I worked with Claude on a research skill to assemble a catalog spanning Panerai, IWC, Rolex, Omega, and Tudor. Adding a watch draws from that stored catalog instead of fetching its details from an external watch API each time.

Preserving the detail, standardizing the categories

Manufacturer names and descriptions did not fit neatly into the categories I needed for filtering. The earlier form put terms such as “steel - Moonshine™ gold” directly into an editable material field. Choosing a standardized option such as Gold replaced that detail. Dial descriptions posed the same problem: a finish or texture could not stand in for a consistent color category.

I separated the two. A Catalog Specifications card preserves the manufacturer’s wording, while editable fields describe the collector’s watch using standardized categories. In the current Cartier example, “Anthracite gray dial with satin-finish gradation” stays visible alongside Gray, and “Yellow gold and steel” sits alongside Stainless Steel + Yellow Gold.

From the earlier form to the current solution. Swipe or scroll horizontally on smaller screens.

Before: mixed information

Earlier Omega form with steel - Moonshine trademark gold inside the editable Case Material field.
Manufacturer detail occupied the category field.

Before: detail overwritten

Earlier material menu offering standardized choices including Stainless Steel, Titanium, and Gold.
Selecting a category replaced the original description.

After: detail preserved

Current Cartier Catalog Specifications card retaining the full anthracite gray dial description, yellow gold and steel case, and original leather strap.
The catalog card keeps the original specifications visible.

After: categories editable

Current Cartier personal fields with Stainless Steel plus Yellow Gold, Gray dial color, and Leather Strap.
Collectors can correct categories and describe their own watch.

The earlier screens show an Omega watch; the current solution uses a Cartier example.

If a suggested category is wrong, collectors can correct it for their watch without overwriting the catalog specifications. They can also record a strap change, while the catalog retains what the watch originally came with.

The AI-generated reference cards had a related issue. Chips wrapped according to the length of each value, so dial and strap details shifted between rows. Comparing similar watches meant finding the same detail in a different place on each card.

Making similar references easier to compare

I replaced the wrapping chips with a consistent two-column layout: size and dial on the left, strap or bracelet and case material on the right. Each detail now has a predictable position across cards.

Before: wrapping chips

Two cropped IWC Ingenieur Automatic 40 reference cards with wrapping chips for size, case material, dial, and bracelet. The Silver plated dial chip wraps to a different row from the Black dial chips.
Longer values changed the chip arrangement. The Silver plated dial moves to the second row, while Black dial sits on the first.

After: consistent positions

The same two cropped IWC Ingenieur Automatic 40 steel reference cards with Size, Dial, Strap / bracelet, and Case in consistent positions. Black and silver dial indicators and steel case indicators accompany text values.
The same two steel references show each specification in a fixed position. Dial and case color indicators add a visual cue alongside the labels.

Without licensed product photography for the catalog, I added small color indicators beside the dial and case values to help distinguish references. Text labels keep the exact specifications visible, so color adds a cue without carrying the information on its own.

Finding a watch by its nickname

Collectors do not always search by a formal model name or reference number. In the current app, searching “Starbucks” returns matching Submariner references. That gives me one working example of finding a watch through the name a collector might actually use.

I am still expanding nickname coverage in the catalog. This result demonstrates the current Starbucks search; it does not establish that other nicknames work consistently yet.

Current WearLog search for starbucks returning a Rolex Submariner Date reference 126610LV-0002 with its specifications.
October 7, 2026. Cropped to show the query and first matching reference.

Separating catalog specifications from personal fields resolved the overwrite problem. If I started again, I would inspect representative watch data earlier. Understanding its variations would have helped me define the fields, editing behavior, and card hierarchy before building the screens.

I worked with ChatGPT to explore a web portal using WearLog’s existing design system. This starting point brings catalog records, manufacturer wording, nicknames, and classifications into one workspace. The preview uses sample records and local edits; connecting it to the Supabase catalog and developing the review workflow remain planned work.

A starting point for reviewing the catalog

WearLog Catalog Studio design preview showing Cartier sample records, missing size labels, and a Tank Must detail panel with manufacturer material and dial fields.
Design exploration with sample records and local edits. Cropped to show the catalog workspace and reference details. View the full preview (opens in a new tab).

07. Refinement

Refining the app through everyday use

Working with AI gave me an initial version I could use. Living with that version helped me decide what deserved space, where the interface felt inconsistent, and what would make logging worth returning to. Refinement became a cycle of noticing a problem, reviewing it with AI, and testing the result myself.

Letting the watch box lead

The early Collection drafts put a featured watch above the watches I owned. But Today already showed the watch I was wearing and how close it was to its next milestone. I did not need Collection to repeat that moment. I wanted to open it and see my watch box.

I removed the featured watch and shortened the cards. Labels such as “Weekend favorite” and observations such as “Usually leaves the box on Saturdays” took space without helping me browse. The current cards keep the photo, brand, model, and last-worn label, with Add Watch at the top and archived watches below the active collection.

Earlier: a longer summary

The collector’s own wrist photo of an Omega Speedmaster, used to illustrate the earlier card layout.

Omega

Speedmaster Pro

Weekend favorite

Usually leaves the box on Saturdays.

Current: a browsing cue

Current Tudor Black Bay 58 card with a watch photo, Last worn 2 days ago label, brand, and model.

The earlier V2.1 card is reconstructed with my own Speedmaster photo in place of its gradient placeholder. The current card is an app screenshot. Different watches illustrate the change in structure.

  • KeepPhoto, watch identity, and recent wear.
  • RemoveFeatured watch and extra descriptive copy.
  • PrioritizeMore of the collection in the first view.

The watch box comes first

Full current Collection screen showing Add Watch, four active watches, archived watches below, and the native bottom tab bar.
Current iOS app, October 7, 2026.
View earlier collection explorations

The first usable draft introduced the featured watch and filters. V2.1 replaced the header count with Add Watch and removed the filters, while retaining the featured watch and longer cards. These HTML drafts use gradient photo placeholders.

First usable draft

Full original Collection design draft with a featured Tudor, filters, descriptive watch cards, and an Archived and Grail section.

V2.1 refinement

Full Collection V2.1 design draft with Add Watch, a featured watch, longer collection cards, and separate Archived and Grail areas.

Using native behavior, then testing the fit

I had asked for Apple’s standard interface elements from the start. During iOS beta testing, changes in translucency and the feel of navigation made me question whether the implementation actually followed that direction. Switching tabs felt less fluid than the native interfaces I was seeing in other apps.

I gave ChatGPT Apple’s official documentation and asked it to audit the code. The review identified a custom tab bar, title treatments, and spacing in places where I expected standard components. I then used that audit to guide an implementation pass and manually tested the changes in the app.

  1. 01

    Notice inconsistencies

    Use the app and question how navigation, spacing, and translucency behave.

  2. 02

    Review against documentation

    Ask ChatGPT to compare the implementation with Apple’s official guidance.

  3. 03

    Adopt standard components

    Update the tab bar, titles, toolbar actions, and tabs within You.

  4. 04

    Test and adjust

    Check the result myself and bring back custom treatments where they improve the experience.

The pass also introduced default Apple forms into wear logging. In use, those screens felt too generic. I kept the native navigation behavior while bringing back selected custom buttons and treatments so the app still felt like WearLog. The audit gave me a starting point; using the result helped me decide where to stop.

Giving the first version a reason to return

The same process helped round out the app beyond the current day. The earlier move from a contribution grid to an active-days calendar made wear history easier to revisit. Today now provides immediate context, while You brings together a broader view of the collector’s activity.

Progress
October 2026 monthly wear breakdown: five wears, including three diver wears, one chronograph wear, and one dress watch wear.

Monthly activity, the watch types I have gravitated toward, and a geographic journal.

Notice what I reach for.
Lifetime
Lifetime summary showing 45 wears since July 2026, 45 days logged, and five watches worn.

Total wears, best day and week streaks, most-worn watch, and most-active month.

See the history build.
Achievements
Wear milestones showing 25 wears earned, progress of 45 out of 50 wears, and the locked 100-wear milestone.

Wear and streak achievements, brand milestones shared across watches, and milestones for each individual watch.

Mark the next milestone.

Details cropped from the implemented iOS app, October 7, 2026.

These additions are intended to make continued logging rewarding and give the collection a sense of history. They round out the first version; whether they encourage a lasting habit still needs feedback from more collectors.

08. Current outcome

A working app, with launch still ahead

As of October 2026, WearLog is a working, pre-launch iOS app with collection management, daily wear logging, photos and notes, calendar history, streaks, and Supabase syncing. I have used it myself and gathered informal feedback from my wife. The experience still needs visual refinement and feedback from a broader group of collectors.

Monthly progress, lifetime statistics, achievements, and a geographic journal now round out the working app. Cost per wear, richer trend analysis, and watch education remain future work, alongside a possible social experience built around shared activity and trends.

The first release will be successful if a small group of collectors uses WearLog, returns to log wears, and gives me feedback about what is useful and what gets in the way. Reaching the App Store would also complete a personal goal: carrying a product from an initial idea to an independent iOS launch.

So far, the most valuable learning has come from putting the app, its data, and its design assumptions into use. The calendar changed after feedback. The catalog exposed weaknesses in the forms. My own entries revealed both bugs and reasons to keep logging. Those observations are shaping the product I am preparing to release.

Have a product problem worth untangling?

I’m open to UX, product, product-owner, and technically complex contract or full-time opportunities.