PRODUCT DESIGN

FULL CASE STUDY

2025

PlanO

Designed a complete in-platform booking experience to help parents discover, book, and manage activities while enabling providers to streamline their operations.

TIMELINE

Oct-Nov 2025

TEAM

2 Developer, 1 UI/UX Designer & Founder

ROLE

UI/UX Designer

SKILLS

Figma, Client Relations

WHAT I WALKED INTO

I worked with the founder and development team to turn complex booking workflows, provider operations, and parent experiences into a simpler, scalable product.

When I joined PlanO as a UI/UX designer, booking was still happening but outside the platform through provider’s websites. My role was to design the foundation of an in-platform experience — simplifying booking for parents while creating scalable workflows for providers. My work can be broadly divided into 5 pillars.

THE CHALLENGE

Two very different users. One platform. Completely different needs.

Parents

Parents needed a simple, fast way to:

Find the right class for their child

Understand availability without confusion

Book confidently and manage everything after

Providers

Providers needed a structured way to:

Onboard their business onto PlanO

Connect existing systems and payments

Define their own policies

The challenge wasn't only designing for parents and providers separately. It was creating an experience where both sides worked together — while making decisions based on real data limitations, technical constraints, and what could realistically be built for the first launch.

HOW I APPROACHED THE DESIGN

Before opening Figma, I understood the product and user first.

Understand First

Before designing anything, I spent time understanding the business -who the providers were, how they operated, what parents were trying to accomplish, and where the current experience was creating friction. Garima walked me through competitor references, documentation, and her operational thinking. As a parent herself, her perspective helped ground many product decisions.

Design, then discuss

For most flows, I'd design based on what we'd aligned on, then bring it back for review. When something required a decision from Garima, we discussed it. When something required knowing what was technically possible, I brought in the developer.

Daily standups

Garima introduced a nightly standup — me, the frontend developer, the backend developer, and Garima. This became the place where design decisions got pressure-tested against technical reality. If I'd designed something that required restructuring how data was fetched, we'd know before it went into development, not after.

Constraint as input

Some of my original ideas — like merging the location and class discovery steps — required backend changes that would have delayed launch. Rather than pushing for the ideal solution, I documented the proposal as a future enhancement and designed a version that worked within current constraints. Knowing when not to push is part of the job.

THE WORK

My work in PlanO can be divided into 4 pillars.
01

Booking flow

Simplifying how parents discover and book classes

02

Provider Dashboard

guided setup for activity providers

03

Parent Onboarding

removing friction at sign-up

04

Parent Dashboard

managing the complete booking lifecycle

01 — Booking Flow

Simplifying how parents discover and book classes

The Problem

When a parent found a class they wanted, the booking happened outside PlanO — redirected to the provider's website. My role was to bring that experience inside PlanO.

The flow had six steps. Reducing them felt like the obvious solution, but every step existed for a reason. Instead of removing steps, I focused on making each one easier to move through

So I stopped asking "how do I reduce steps" and asked "what's making each step harder than it needs to be?

Decision 1 - Make availability obvious

The calendar had two states: disabled and booked. But there were actually three completely different situations — the class isn't offered that day, it exists but is fully booked, or there's an available slot. Treating all unavailability the same created real confusion.

The calendar redesign introduced three distinct states — grey for not offered, red for fully booked, blue for available. One change. Completely different clarity.

The booking journey starts with choosing a date. If parents can't understand availability at that moment, they're more likely to abandon the flow before they even begin. Making the three states clear reduces that early friction.

Decision 2 — Parents shouldn't have to read paragraphs to choose a class

Class information was coming directly from provider websites via API — arriving as long unstructured paragraphs. Parents had to read everything just to find the schedule, duration, and price.

I applied the same thinking across the flow:

Long paragraphs became structured information — making it easier for parents to scan, compare, and choose the right class.

Class Listing

structured cards surfacing location, class name, operating days, duration, price

Class details

key information pulled out of paragraphs into scannable sections

Instructor page

background and details structured so parents could make a confident choice, not just see a name

Left Panel

booking details shown consistently throughout with an edit option, so parents always knew what they were booking without going back

One principle stayed consistent throughout the flow: surface what parents need to decide first.

A Constraint Worth Noting

I explored merging the location step into class discovery — one less step, less friction. During standup with the dev team we realised it required restructuring how class data was fetched from the backend. Too much complexity before launch. I documented it as a future enhancement and moved on. Knowing when to ship the right-enough solution is part of the job.

02 — Provider Onboarding and Dashboard

Creating a guided setup experience for activity providers

The Problem

Before a provider could accept bookings through PlanO, they needed to complete a multi-step setup — confirming business details, connecting their systems, integrating payments, and defining their own policies.

This wasn't a simple form. It was the technical and operational foundation of how a provider would run their business inside PlanO.

The challenge was making something genuinely complex feel structured and approachable — without oversimplifying it to the point where providers didn't understand what they were doing or why.

How I approached

The founder had already mapped the business requirements with detailed documentation, competitor references, and developer input. My role was to translate that into a guided experience that felt structured rather than overwhelming.

The setup was divided into three clear phases, with a persistent sidebar showing progress so providers always knew where they were and what came next.

Step 1 : Buissness Details

Pre-filled information removed unnecessary work and let providers focus on reviewing instead of re-entering.

Information collected during signup was pre-filled, so providers only needed to review and confirm it. A simple principle: don't ask users for information they already provided.

Step 2 : System Integration

Complex integrations were broken into clear, guided actions so providers always knew what to do next.

This was the most technical part of the setup. Providers connected their booking software, API, and payment system to activate bookings through PlanO.

My focus was making each task feel guided instead of technical—using clear labels, helper text, and visible completion states so providers always knew what to do next.

A small but deliberate addition was the "Here's how to find your API Key" helper link, reducing confusion around a technical requirement.

Step 3 : Buisness Policies

Providers could define policies that matched how they already ran their business—without making the setup feel complicated.

Providers defined their own cancellation and refund policies instead of following a platform-wide rule, so each business could manage bookings the way they already operated.

The refund flow was designed to support multiple cancellation windows and refund percentages, giving providers flexibility without making the setup feel complicated.

The Key Insight across all three pages

Providers aren't developers, but setting up their business still involves technical steps. My role wasn't to remove that complexity—it was to organise it into a flow that felt clear, guided, and easy to complete.

03 — Waitlist Hub

Managing uncertainty and communication for parents

The Problem

Parents could join a waitlist when a class was full, but after that there was nowhere to manage it. They couldn't easily see which waitlists they'd joined, discover new ones, or choose how they wanted to be notified when a spot opened.

Waiting is already uncertain. The experience shouldn't make it feel even more uncertain.

What I designed

The goal was to turn the waitlist into something parents could easily understand and manage. I organized the experience into three simple sections that covered the entire journey—from joining a waitlist to receiving updates.

The Waitlist Hub brought active waitlists, new waitlist discovery, and notification preferences into one place.

MY Active Waitlists

A card-based view showing each waitlisted class, date joined, and notification method. I reused the same card pattern from the booking flow so parents didn't have to learn a new interface.

Discover More Waitlists

A simple flow for joining additional waitlists. Parents select a provider, choose a class, and add themselves—no repeating the entire search process.

Communication Preference

A dedicated place to manage how waitlist updates are received, with support for multiple email addresses and phone numbers for families who need it.

One insight that changed the design

Initially, notifications supported a single phone number. During discussion, Garima explained that families don't always rely on one device—or even one person. One parent might be checking email while the other is available by phone, and some families wanted updates sent to both parents.

That insight changed the design. Instead of supporting just one contact, I designed the section to handle multiple email addresses and phone numbers while keeping it simple to manage.

04 — Parent dashboard and booking management

Managing the complete booking lifecycle after a class is booked.

The Problem

Booking a class was only half the journey. Parents needed somewhere to manage everything that came after — upcoming classes, booking history, cancellations, modifications, payment details. Without a clear dashboard, everything was scattered.

Decision 1 — Upcoming classes first

Why upcoming classes lead

When a parent logs in, the most urgent question is "what's happening next with my child's classes?" Everything else is secondary. Most time-sensitive information goes first.

Each class row shows

Class name and provider

Date, time, location

View Details and Cancel/Modify

Decision 2 — Cancel and modify as one flow

The natural instinct is two separate buttons — Cancel and Modify. But to modify a booking, a parent first has to cancel the existing one, then select a new date. Two labels. Same starting point. I combined them into one flow.

Step 1

Cancellation confirmation

Step 2

Cancellation policy shown

Step 3

Class name and provider

Instead of returning the parent to the dashboard, I redirected them straight to the booking calendar — fewer steps, same outcome.

Decision 3 — Booking details structured for scanning

Left — class details

Name, status tag, provider, date, time, location, instructor

Center — payment

Amount paid, date, method, payment status

Right — actions

Cancel/Modify, Download Invoice, Cancellation Policy

Status tags — Upcoming, Cancelled, Completed — give instant orientation before reading any detail. Bookings ordered by importance: upcoming first, then active, then past.

Edge cases mapped

If a parent clicks Cancel without reading the policy, a confirmation popup appears with policy details before completing the cancellation — preventing accidental cancellations. Refund eligibility, error states, and empty states were all designed, not left as afterthoughts.

ALSO WORTH MENTIONING

Halfway through the project, a recurring problem surfaced.

There was no shared button system—neither in the design files nor in the developer's code. Every new button had to be recreated manually, which started creating inconsistencies as more screens were designed.

We discussed it during a standup and agreed the product needed a reusable system. I took ownership of creating one.

I designed a button system covering types, sizes, icon variations, and interaction states—default, hover, pressed, disabled, destructive, and success—giving the team a single source of truth for consistent implementation.

Types, sizes, states, and icon variations — everything the developer needed to implement buttons consistently across every flow."

The Outcome

Create a free website with Framer, the website builder loved by startups, designers and agencies.