Launching a tracking app of our own.


THE CHALLENGE
Design a best in class tracking app that two engineers can build quickly and inexpensively.
Context
Route’s mobile team was laid off at the beginning of 2025. Finding it difficult to say goodbye to our dream of creating the best tracking app, we decided to team up to launch an app of our own.
Strategy
Most tracking apps fail at their basic mission: making it easy to organize upcoming and recently delivered orders. We would position Zephyr as a simpler, more pared down tracker.
My role
Research
Strategy
Brand identity
Design system
UI/UX/Motion
Design
Prototyping
Design
Powerful tracking that organizes and anticipates.
Delightfully automatic.
Zephyr creates a real time delivery list automatically, showing delivery dates and order contents without extra clutter.

Simple and convenient.
Zephyr shows a comprehensive tracking history and order contents, with floating buttons to jump back and forth to your list.

BRANDING
Zephyr is a divine wind that brings good fortune (and fast deliveries).

Zephyr’s logomark is a coiling spiral, evoking the swirling motif associated with the mythical Zephyr.
The spiral is created by overlapping concentric circles multiplied by the golden ratio, tiled along a 23.5 degree axis, mirroring the Earth’s alignment.

The full logo replaces the “e” of the wordmark with the zephyr logomark, suggesting a casual but transformative experience.
THE DETAILS
Creating the simplest tracker in the game.

What’s in an order, anyway?
After much research and prototyping, we aggressively pared down the contents of an order in the list view. Controversially, we removed brand, logo, status, and progress bar - leaving only an ETA and all item contents, in a swipable carousel.
No other tracking apps show you all the items in your order on your tracking list. Instead, they indicate the order by showing one item image or a mosaic of tiny images. This is pretty frustrating, since users rarely remember the full contents of an order. And it’s a missed opportunity, since we all get enormous delight out of seeing pictures of everything arriving soon.
Cleaning up messy tracking
We avoid clogged tracking lists with a fluid evolution for problematic orders, which are archived automatically when inactive for extended periods of time, and then shuffled right back into the tracker when they update again.

Fluid statuses
Zephyr accommodates the messy complexity of deliveries - especially deliveries with multiple shipments.

Complex statuses
We built a status system that would accommodate plenty of complexity without feeling complicated. On the left are statuses as seen on the tracking list, compressed to fit item images; on the right is the same status on the order summary page.

Past order ecosystem
We wanted to assign past orders a single status that users could scan to inform actions, like looking to see if an order was successfully returned, or if a backordered item that the user chose to archive ever finally arrived.

REVISITING OLD CHALLENGES
Two problems plagued us at Route. We finally knew how to solve them.
Fixing an onboarding problem
A user is required to connect an email to begin using the app, which cues up an aha moment when orders automatically import. Most apps are afraid to make parsing a requirement, which leads users to skipping it and then getting confused why the app isn’t detecting their packages.

Fixing multi-shipment orders
Orders with more than 1 shipment make up 10-15% of a user’s orders, but it’s surprisingly challenging to cohesively group this information. After much exploration I found a satisfying paradigm in a secondary carousel summarizing each of the numbered shipments.

Partially delivered orders
It was important to us to make delivered orders really stand out, so we could properly celebrate each “delivery day”. That created a challenge to build a mini-ecosystem of these multi-shipment orders across stages of completeness.
an order arrives (“partial delivery”)
the status “here - 12:10p” shows the timing of the most recent delivery.

shipments are in transit and none have arrived.
the status e.g. “out for delivery” corresponds to the shipment arriving first (shipment #1)
the bottom thumbnails are sorted left to right by arrival. the assigned numbers (shipment #1, e.g.) can change constantly

24h later the order is archived to past orders, showing the date the first shipment arrived.

if there are no new updates for 7d, the order is archived to past orders as a delivered order (date = 1st arrival)

all orders arrive (“complete delivery”)

FACILITATING INTERACTIVITY
A great utility is pleasing to touch. Interactivity was an opportunity.
Modals & menus
Modals and menus are the heart of interactivity, but they can often feel like an imposition on the user. Zephyr uses huge type and sharp, funky lines to encourage touch and playfulness.

Archiving & erasing
I wanted swipe actions to be fluid and bold, borderline aggressive. Archiving allows users to hide unimportant or backordered orders in past orders, while erasing orders eliminates them.

IDENTITY & DESIGN SYSTEM
An edgy, silly identity for an utilitarian app.
grease
#242922
haze
#C5C6C5
chalk
#F1F1F1
lime
#A3DA49
seaweed
#378113

Hazy grays, crazy greens.
I was inspired by Dieter Rams, whose iconic objects paired aggressive accents with dull, to create a primarily low-contrast palette of creamy grays and beiges that evokes the feeling of old analog interfaces. Green is the color of delivered statuses and had practical benefits; an electric green felt appropriate but also surprising on the muted, brutalist vibe I was going for.
Brutalism, or something like it.
After a few years as a designer, I tend to like designs that showcase the qualities of the digital medium rather than hide behind skeumorphic disguises. If our goal is to foster tangible interactivity, I have a feeling that our users yearn for a return away from luxury toward the brutal and original digital existence found in classic type and hard lines.


Cafelat robot
$385.00

Birth of the cool sweater
$125.00
light
tertiary
#F1F1F1, 33%
button
#F1F1F1, 15%
secondary
#F1F1F1, 56%
primary
#F1F1F1
dark
secondary
#242922, 56%
tertiary
#242922, 30%
button
#242922, 10%
primary
#242922
card
#294716, 4%
accents
lime
#A3DA49
seaweed
#378113
blue
#1E93FF
light gray
#E9EAE8
red
#D61A00
medium gray
#C5C6C5
Retro icons
Zephyr’s icon design system is inspired by old telephone buttons, which added a tactile, chunky brutalism to the interface.
action
undo
connecting...
undo
action
we messed up.
try again
Toasts
I wanted Zephyr’s molecules to feel loud and clean. My design mentors would cover their eyes if they saw this sacriligeous use of oversized type and egregiously chunky icons, a theme I adopted across the design system.
T1
semibold, 34pt, -5%, auto ln height
T3
semibold, 22pt, -5%, auto ln height
T2
semibold, 28pt, -5%, auto ln height
L1
semibold, 17pt, -5%, 100% ln height
B1
regular, 17pt, -5%, auto ln height
B2
regular, 14pt, -5%, auto ln height
B3
medium, 12pt, -5%, auto ln height
L2
semibold, 14pt, -5%, 100% ln height
M1
M2
SF Mono semibold, 18pt, -7% leading, auto ln height
SF Mono medium, 14pt, -7% leading, auto ln height
L3
semibold, 12pt, -2%, auto height
Sans + mono
To complete the vision of a brutalist utility I just had to run with a great sans serif type like Work Sans, tracked in until almost bleeding together. I sprinkled in touches of a mono type for accents to give a rough, stylized vibe.

Bold and efficient voice
Zephyr speaks how I thinks apps ought to speak - with crazy efficiency and a healthy sprinkling of bits. If there was an opportunity for a little moment of joy within the tracking journey, I couldn’t help but indulge.