Designing for the awkward space before the tee time
Responsibilities
Secondary research, Product Strategy, UX/UI Design, Prototyping
Tools
Figma, Dovetail, Balsamiq
Timeline
14 weeks

Project overview
Getting a tee time rarely fails because of availability. It fails because of coordination.
Texts go unanswered. Group chats stall. Someone drops. Someone forgets to reply. The host ends up doing manual follow-ups—"Hey, you still in?"—while the tee time slowly falls apart.
The product challenge wasn't booking logistics. It was the socially uncomfortable space before the booking: the uncertainty, the unanswered messages, the quiet pressure of having to nag your friends. Tee Time Social was designed to remove that friction—not by asking users to manage people, but by building a lightweight system that does the uncomfortable work on their behalf, quietly, in the background.


Start with availability, not invites
Most coordination tools begin with "Who do you want to invite?" That's the wrong starting point. It forces the host to guess who's free, then wait for responses, then follow up when people don't reply. I flipped the sequence.
Users set their weekly availability first—which days work, which time windows (morning, late morning, afternoon, evening). This creates a living signal that stays current without requiring repeated check-ins.
Once availability is set, users can immediately see which friends overlap. The availability screen shows "8 friends available" in the morning slot, "2 friends available" late morning, "4 friends available" in the afternoon—with faces attached. The host isn't guessing anymore. They're selecting from people who've already indicated they're open to play.
This removes the guessing and replaces it with clarity.
Set your availability
Users choose which days and time windows work for them that week. Morning, late morning, afternoon, evening. It takes seconds and stays current without any back-and-forth. Once set, it becomes a live signal visible to their friends.
See who’s free
Instead of sending invites into the void, users see availability overlaps before reaching out. 8 friends free in the morning, 12 players available today. The guesswork is gone before the conversation even starts.
Golf groups tend to repeat. The same four guys play together most weekends. The same work friends try to get out once a month. Instead of forcing users to rebuild their invite list every time, Tee Time Social treats groups as lightweight social containers. Create a group once—"Bay Park Dads"—and reuse it. The group has its own chat, its own history of tee times, its own member list.
Members can be added or removed. Invitations remain opt-in to avoid pressure. Creating a group is intentionally fast and forgiving.
This design respects how real friendships actually work. It doesn't treat every tee time as a fresh coordination problem.



Give the host control without burden
Starting a tee time is where complexity creeps in. Different clubs, different group sizes, different player reliability. The host needs agency without it becoming another job.
The invite flow lets hosts set the logic once and step back. Choose an invite type — Roster (one-by-one until slots fill), First Come First Serve (fastest to respond wins), or Manual (hand-pick individuals). Filter by club membership. Sort by handicap, social score, or recently played. Set a response window. Drag to reorder the queue before sending.
What's normally an emotional judgment call becomes a transparent system the host controls but doesn't have to manage.




Let the systems do the follow up
This is the emotional core of the product. Once invites are sent, the system manages progression automatically—if someone declines or doesn't respond in time, the next person in the queue is invited. No nudging. No awkward texts.
The status screen is designed to reinforce this. At a glance, the host sees who's accepted, who's declined, who's queued, and how much time remains for the current invitee. The UI communicates momentum. Something is happening even if the host does nothing.
This screen turns anxiety into confidence.
Eventually, the system reaches moments where automation needs help.
If all queued players have been invited and no spot has filled, the product doesn't leave the host stranded. It prompts with a clear next step: "Invite more players." A modal appears showing available friends who weren't in the original queue. This keeps momentum intact without surprising the user or forcing them to start over.
When the queue runs dry, the system doesn't dead-end. It surfaces available friends who weren't in the original invite, lets the host select with one tap, and sends immediately. The slot gets filled without starting over or switching context.
The completion moment
Once all slots are filled, the experience intentionally compresses. Backup and declined players collapse to reduce noise. The confirmed group becomes the focus—four faces in a row, names listed, date and time and location locked in. A simple confirmation banner: "You're all set. Your group is confirmed" is seen upon next app launch.
The product ends the experience the same way it started: quietly. No celebration screen. No confetti. Just clarity. The tee time exists. Everyone knows. Done.


Brand & Marketing Site
I also designed the logo and a one-page marketing site to support early user acquisition. The goal was to communicate the core value prop—fill your tee time without the awkward coordination—quickly and clearly.


The outcome
Tee Time Social transforms a socially awkward process into a calm, guided experience.
It removes pressure from the host. It reduces friction between friends. And it increases the likelihood that tee times actually happen—because the system handles timing, order, and follow-ups on the user's behalf.
The best compliment this product could receive is simple: "It just worked."
What I Took From This
This project reinforced an important design lesson for me. Some of the hardest problems are not technical or logistical. They are emotional. Uncertainty. Hesitation. Social discomfort. The fear of being annoying. By designing for those feelings—not just the tasks—Tee Time Social turns coordination into something users barely have to think about.
That reframe changed how I approach product design. The most valuable thing a system can do is sometimes just absorbing the awkwardness so people don't have to carry it themselves.











