LM Product & UX Designer

Luis Mattioli

This portfolio is private. Enter the password to continue.

Don't have the password? Reach me at luismattioli91@gmail.com or on LinkedIn.

Product & UX Designer

Luis MattioliDesigning the space between people, products & operations.

I turn interconnected journeys, operational constraints, and product goals into digital experiences that feel clear, useful, and human.

At Carnival, I design guest-facing products and the operational tools behind them — across mobile ordering, onboard chat, ship maps, kiosks, and crew workflows.

Luis Mattioli — Product & UX Designer
How I work

Strategy to shipped system.

I move between the big picture and the interaction detail, keeping user needs, business goals, and operational reality connected.

01 / Frame

Find the right problem

Discovery, journeys, opportunity framing, and alignment around the decision that matters.

02 / Connect

Make complexity visible

Guest actions, operational workflows, cross-channel logic, rules, dependencies, and edge cases.

03 / Shape

Design for confidence

Flows, prototypes, interaction states, testing, and clear feedback at every critical moment.

04 / Scale

Build beyond one screen

Reusable patterns, design systems, collaboration, and thoughtful handoff that helps teams ship.

Selected Work

Products built for guests, crew, and operations

A few of the experiences I've helped design — from guest and crew flows through edge cases, UI, and design system patterns. Click any card to open the full case study.

About

A designer who thinks in products, not just screens

Luis Mattioli — Product & UX Designer

I'm a Product & UX Designer focused on hospitality products where digital experiences need to work with real-world operations.

I started as a visual designer and illustrator before moving into UX and product design. That background still shapes how I work: I care about clear systems, strong visual hierarchy, polished interactions, and products that feel easy to understand.

At Carnival, where I've worked since April 2022, I design guest-facing and crew-facing experiences for the HUB App and related onboard tools. My work often sits where a guest action becomes an operational task — placing an order, messaging a party member, managing fulfillment, or understanding what happens next.

I'm especially interested in:

Hospitality & entertainment technology
Customer-facing experiences
Mobile products
Operational workflows
Service design
Design systems
Cross-functional collaboration
Product discovery
Skills

What I bring to a product team

🧩Product & UX

  • User flows
  • Journey mapping
  • Information architecture
  • Wireframing
  • Prototyping
  • Usability testing
  • Accessibility
  • Service design
  • Stakeholder alignment
  • Requirements translation

Systems & Interaction

  • UI design
  • Design systems
  • Component patterns
  • Interaction states
  • Microinteractions
  • Lottie animations
  • Motion design
  • Visual design
  • Illustration

🛠️Tools & Workflow

  • Figma
  • FigJam
  • Figma Make
  • Adobe Illustrator
  • Photoshop
  • After Effects
  • HTML
  • CSS
  • Codex
  • ChatGPT
  • Claude
  • Gemini

Let's build better digital products.

I'm open to full-time UX & Product Design opportunities in Central Florida, and remote / hybrid teams focused on digital product, hospitality, travel, entertainment, or user experience.

← Back to selected work
Shipped

Mobile Order

A guest-facing ordering experience inside Carnival's HUB App, designed to support onboard food, drinks, retail, pickup, delivery, stateroom, and dine-in ordering flows.

Role
UX / Product Designer
Company
Carnival Cruise Line
Timeline
May 2022 – Present (ongoing)
Platform
Guest mobile app
Focus Areas
Mobile ordering · Guest experience · Checkout · Order tracking · Service design · Hospitality technology
Guest ordering experience — catalog and item detail in the HUB App.
Recognition: Mobile Order received recognition from Carnival senior leadership for its potential to improve onboard ordering, guest convenience, and operational visibility.

B.Context

Mobile Order is Carnival's guest-facing ordering experience inside the HUB App. It began as a more specific Drink Order concept, but the broader product goal was bigger: create a scalable onboard ordering platform that could support multiple catalogs, venues, fulfillment types, and guest needs across the ship.

The experience needed to make ordering feel simple for guests while handling the complexity behind the scenes: menus, modifiers, upsells, gratuities, beverage package rules, order status, delivery and pickup modes, and location confidence.

C.The Problem

Guests needed a convenient way to order onboard without waiting in lines or depending only on in-person service. At the same time, the product had to support many use cases beyond drinks — including food, retail, stateroom delivery, pickup, and dine-in ordering.

The challenge was to design a flexible guest-facing ordering flow that felt familiar and easy, while still accounting for ship-specific constraints, connectivity, guest location, payment rules, fulfillment status, and confidence that the order would reach the right person.

D.My Role

  • Mapping guest ordering flows across multiple fulfillment types
  • Designing catalog, item detail, cart, checkout, and order status experiences
  • Exploring location and delivery models for ship-area delivery
  • Designing flows for pickup, stateroom delivery, and dine-in ordering
  • Supporting beverage package, gratuity, modifiers, upsell, and order history scenarios
  • Creating prototypes for user testing and stakeholder review
  • Collaborating with product, engineering, operations, and design partners
  • Translating research and pilot feedback into product improvements

E.Constraints

  • Multiple fulfillment types with different rules and expectations
  • Onboard connectivity limitations
  • Location uncertainty for ship-area delivery
  • Guest confidence around whether an order would be delivered correctly
  • Beverage package and gratuity rules
  • Menus with modifiers, required selections, upsells, and item availability
  • Need for scalable patterns across different venues and catalogs
  • Dependency on ship maps and location services for some future delivery flows

F.Process

1

Understanding the ordering opportunity

The project started from the need to move beyond a narrow ordering flow and create a scalable system for onboard ordering.

2

Competitive and domain research

We reviewed ordering, delivery, grocery, and e-commerce experiences to understand common patterns for menus, carts, checkout, fulfillment, and order tracking.

3

Mapping the guest journey

We mapped how guests browse, customize items, add to cart, confirm payment, track status, reorder, and resolve uncertainty after placing an order.

4

Prototyping and testing

We explored multiple prototypes, including different approaches to location selection, quantity controls, cart behavior, and order status views.

5

Learning from sailings

Testing showed that guests were especially concerned about order confidence: whether the order would get lost, whether the right person would receive it, and how they would be identified.

6

Refining the experience

Those learnings helped shape verification and status patterns, including a low-cost “secret word” concept to help confirm delivery without adding heavy operational friction.

Exploration → Testing insight → Design response

From early explorations to a low-cost verification model

Mobile Order learnings — early explorations, testing insight, low-cost verification design response, and impact.

Early ordering explorations — back when this was still “Drink Order” — surfaced a key testing insight: guests needed confidence that an order would reach the right person, and crew needed a simple way to prevent wrong handoffs. The design response was a low-cost verification model — a secret word plus an optional selfie — that built delivery confidence without adding heavy operational friction.

G.Solution

The final direction introduced:

  • A scalable ordering framework. A flexible guest-facing flow that could support multiple catalogs, venues, and fulfillment models instead of being tied to one use case.
  • Clear catalog and item detail patterns. Guests could browse categories, understand items, customize selections, and handle required modifiers or upsells.
  • A consistent cart and checkout experience. Checkout accounted for gratuity, fees, taxes, beverage package rules, and order confirmation.
  • Order tracking and status visibility. Guests could understand what happened after placing an order, reducing uncertainty around fulfillment.
  • Verification for delivery confidence. The experience explored lightweight verification patterns, including selfie and secret word concepts, to help guests and crew confirm the right handoff.
  • Support for multiple fulfillment modes. The system expanded toward pickup, stateroom delivery, and dine-in flows, while ship-area delivery remained dependent on stronger map and location capabilities.
Strategy · Hardest fulfillment path first

We designed the most complex fulfillment path first — ship-area delivery

Ship Area Delivery — Happy Path flow: landing, categories, details, my order and confirming location, secret word and selfie verification, and order details.

We deliberately mapped the hardest fulfillment type first. Ship-area delivery's happy path runs from landing and categories, to item details, to confirming a delivery location, to secret-word and selfie verification, and finally order tracking. Because it was the most complex path, solving location, tracking, verification, and handoff here produced patterns that could then scale down to simpler flows like pickup, stateroom, and dine-in.

Fulfillment modes · One core flow

How the flows differ — one shared flow, fulfillment-specific rules

Mobile Order shared core ordering flow — browse, item detail, cart, checkout, order status — with fulfillment-specific rules for pickup, stateroom delivery, dine-in, and ship-area delivery.

H.Impact / Pilot Signals

  • Helped evolve the product from a narrow Drink Order concept into a broader Mobile Order platform
  • Created reusable patterns for catalog, cart, checkout, and order status flows
  • Improved guest confidence through clearer status and verification concepts
  • Supported expansion into additional onboard ordering use cases
  • Helped align guest-facing design with downstream fulfillment requirements

Pilot data showed encouraging early signals around speed, repeat usage, and demand concentration.

Fast completion~2.2 min

Median completion time across the analyzed pilot dataset.

Repeat usage58%+

158 of 284 distinct guests — and 132 of 219 groups — placed more than one order.

Demand concentration66%

Of observed mobile order volume came from the top revenue center.

Operational learning

Delayed orders, adjustment activity, and low refund / cancellation rates helped identify where the experience could improve.

Based on an analyzed pilot dataset · observed volume only, not a production performance guarantee.

Experience evolution

From Food Order to Mobile Order

Experience evolution — legacy Food Order flow compared side by side with the new Mobile Order experience, from homepage and landing through cart, confirming purchase, and confirmation.

We evolved a single-purpose ordering flow into a scalable platform that supports more guest needs, clearer handoffs, and operational confidence.

I.What I Learned

Mobile ordering in hospitality is not just an e-commerce problem. The moment a guest taps “place order,” the experience becomes operational. A clear guest flow only works if the fulfillment model behind it can support the promise being made on screen.

This project taught me to design for the full service loop: what the guest sees, what the system needs to know, what crew needs to do, and what happens when the ideal path breaks.

← Back to selected work
Shipped

Order HUB

A crew-facing responsive web app designed to help Carnival crew receive, manage, and fulfill guest orders across onboard service stations.

Role
UX / Product Designer
Company
Carnival Cruise Line
Timeline
2022 – Present (ongoing)
Platform
Responsive web app / PWA (Ionic)
Focus Areas
Crew tools · Fulfillment · Responsive design · Service workflows · Role-based UX
Crew order queue — new vs. in-progress orders across devices.
Counterpart to Mobile Order: Order HUB is the operational tool that makes guest-facing mobile ordering work — the same order, seen and acted on from the crew side.

B.Context

Order HUB is the crew-facing counterpart to Mobile Order. While Mobile Order lets guests place orders from their phones, Order HUB gives crew members the operational tool needed to receive, manage, prepare, and fulfill those orders onboard.

The product was deliberately separate from the native guest HUB App. It was built as a responsive web app so it could work across phones, tablets, and desktop screens depending on the fulfillment context: a waiter moving around the ship, a bartender working from a service station, or a manager supervising order volume.

C.The Problem

The crew experience could not simply mirror the guest UI. Guests need a simple ordering flow; crew need a fast, role-aware tool built around real operational behavior under pressure.

The challenge was to design a crew-facing system that helped different roles act quickly and accurately while supporting multiple fulfillment types, service stations, order states, and manager controls.

D.My Role

  • Mapping crew workflows across waiters, service stations, kitchen and station staff, and managers
  • Designing login, role selection, station selection, and online/offline states
  • Designing order queue, order detail, fulfillment, cancellation, and history flows
  • Creating responsive layouts for mobile, tablet, and desktop contexts
  • Defining status language shared between guest and crew experiences
  • Designing out-of-stock and manager/admin workflows
  • Collaborating with product, engineering, operations, and stakeholders
  • Supporting design handoff and iteration based on pilot feedback

E.Constraints

  • Crew work under time pressure and need low-error flows
  • Different roles need different levels of detail and action
  • Multiple service stations and fulfillment models need to be configurable
  • Crew may use different devices depending on context
  • Some actions should be limited by role or admin permissions
  • Order details must be visible enough to act, but not create cherry-picking or queue confusion
  • Guest-facing status and crew-facing actions must stay aligned
  • Operational exceptions like cancellations, out-of-stock items, no-shows, and guest movement need clear handling

F.Process

1

Understanding crew workflows

We looked at how crew actually receive, prioritize, prepare, and deliver orders, including concerns around guest location, drink quality, service levels, tipping, and order volume.

2

Defining role-based needs

Crew roles were separated by behavior: waiters, service station staff, and managers do not need the same interface or the same actions.

3

Designing shift setup

The experience introduced crew login, role selection, service station subscription, and online/offline availability so crew could control where they were working and what orders they received.

4

Designing the order queue

The queue became the heart of the tool, separating new orders from in-progress work and helping crew focus on the most relevant orders without overwhelming them.

5

Mapping order states

We defined states such as pending, claimed, being prepared, out for delivery, ready, completed, and canceled, keeping them aligned with the guest-facing order tracker.

6

Supporting operational exceptions

We designed flows for cancellation, out-of-stock handling, order history, guest no-shows, and manager review.

7

Scaling across form factors

The app needed to work on mobile for waiters, tablet breakpoints for pickup and station use, and desktop views for management and supervision.

Early evidence · Process

Early sketches shaped the crew-side fulfillment model

Early Order HUB sketches showing available orders, claimed work, order detail, delivery handoff, guest confirmation, and completion states.

Early sketches helped define the crew-side fulfillment model before moving into higher-fidelity UI. I used them to separate available orders, claimed work, order detail, delivery handoff, guest confirmation, and completion states — the operational building blocks that later shaped Order HUB.

Two user types · Role-based UX

Order HUB roles — Admin and Team Members

Order HUB roles — Admin and Team Members across Delivery, Dine-In, and Pickup.

Order HUB has only two user types — Admin and Team Members — with Team Members split across Delivery, Dine-In, and Pickup fulfillment contexts. This breakdown shaped the role-based views and permissions across the app.

G.Solution

The final direction introduced:

  • A responsive crew operations app. Order HUB could support different device types and fulfillment contexts without being tied to the native guest app.
  • Role-aware workflows. Waiters, station staff, and managers received different views and actions based on what they needed to do.
  • Station selection and online/offline controls. Crew could subscribe to service stations and manage availability, helping the system route work to the right people.
  • A focused order queue. New and in-progress orders were separated to reduce confusion and help crew act quickly.
  • Clear order cards and status transitions. Crew could accept, start, prepare, deliver, cancel, reprint, or complete orders depending on role and fulfillment type.
  • Verification and guest identification. The tool supported guest names, security photos, selfies, delivery verification, and related details to help crew fulfill orders correctly.
  • Out-of-stock and manager controls. Crew could mark items unavailable during cancellation flows, while managers could supervise orders, manage team members, review closed orders, and reinstate items.
Hardest flow · First mapped

Ship-Area Delivery (Waiter) across multiple service stations

Ship-Area Delivery (Waiter) happy path across multiple service stations — the most complex Order HUB flow.

The most complex fulfillment path in Order HUB — and the first flow we mapped end to end. It follows a waiter from login and service-station subscription through accepting, preparing, and delivering guest orders across multiple stations on the ship. In parallel, we designed the Manager / Admin experience — shown below.

In parallel · Manager / Admin

Order HUB admin — managing teams, stations, and orders

Order HUB admin screens — managing team members, managing service stations, sending reports, and oversight of open and closed orders.

The manager / admin side, designed in parallel with the crew flows. Admins manage team members and service stations, send reports, and oversee open and closed orders across the operation.

H.Impact / Operational Signals

  • Created the operational counterpart needed to support guest-facing mobile ordering
  • Helped connect guest actions to crew fulfillment workflows
  • Improved clarity around order status, ownership, and next action
  • Supported multiple roles, stations, fulfillment models, and device contexts
  • Helped scale the ordering system beyond a single venue or use case

Pilot data helped show how the crew-facing fulfillment layer could support visibility, speed, and operational monitoring.

Fulfillment speed~2.2 min

Median fulfillment time, with a ~11.2 min 90th-percentile completion time.

Fulfillment-path visibility

The primary fulfillment path handled most observed volume and completed faster than the secondary path.

Bottleneck detection

Surfaced the specific fulfillment paths and revenue centers where orders ran past 5–10 minutes.

Exception monitoring

Adjustment, refund-status, and cancellation data framed Order HUB as an operational monitoring tool, not just an order queue.

Based on an analyzed pilot dataset · observed volume only, not a production performance guarantee.

I.What I Learned

Crew-facing tools need a different design mindset than guest-facing products. The goal is not delight in the same way; it is speed, clarity, confidence, and operational fit.

Order HUB taught me that service design depends on both sides of the journey. A guest-facing ordering product only works when the crew-facing system makes fulfillment realistic.

← Back to selected work
Shipped

Onboard Chat

A paid messaging experience inside Carnival’s HUB App that helps guests stay connected with their travel companions at sea — including the ability for one guest to purchase Chat for an entire travel party.

Role
UX / Product Designer
Company
Carnival Cruise Line
Timeline
August 2022 – October 2024
Platform
Guest mobile app — iOS & Android
Focus Areas
Communication · Guest Experience · Party Purchase · Vendor Integration · Edge Cases · Design Systems
Sanitized chat UI — conversation list, message view, and the party-purchase flow.
The headline: the biggest product shift was letting one guest purchase Chat for their whole travel party — turning a single-person add-on into a group connection tool, and reducing friction for families and groups who wanted to start messaging together.

B.Context

On a cruise, regular cellular service is limited or unavailable, so staying in touch with your travel group becomes a real guest need — families split up, plans change, and a simple “where are you?” can quickly turn frustrating. Onboard Chat gives guests a way to message their travel companions inside the HUB App.

The challenge wasn’t just designing a chat UI — it was modernizing a paid communication product inside a cruise environment, on top of a third-party messaging SDK, while keeping the experience branded, understandable, and realistic about connectivity at sea.

C.The Problem

The existing experience had several points of friction: guests needed a clearer way to understand who they could message, how to start or manage conversations, what Chat cost, and what happened when they purchased it for themselves or others.

The redesign had to balance three things at once: the guest’s need to communicate quickly, the business need to explain a paid feature clearly, and the technical reality of messaging on a ship — where connectivity and vendor limitations shape what the product can promise.

D.My Role

  • Mapped the messaging model across conversations, contacts, friend requests, and group chats
  • Designed the party-purchase experience for buying Chat for multiple travel companions
  • Created flows for purchase states, minor-related rules, not-yet-active users, and confirmation states
  • Designed the conversation list, message thread, group creation, contact management, and message actions
  • Worked through iOS and Android interaction differences while keeping the experience consistent
  • Designed connectivity-aware states such as sending, sent, failed, empty, and not purchased
  • Collaborated with product, engineering, QA, stakeholders, and the third-party messaging vendor
  • Supported handoff, UX-QA, and reusable messaging patterns for the design system

E.Constraints

  • Shipboard connectivity can affect message delivery, syncing, and notifications
  • The chat surface depended on a third-party SDK, so design decisions had to account for what the vendor could support
  • The experience needed to feel native enough on iOS and Android without becoming two separate products
  • Guests needed to understand the paid model before committing
  • Buying Chat for others introduced extra states: already purchased, not logged in, minor-related rules, and confirmation clarity
  • Messaging states needed to set expectations without overpromising reliability
  • Components had to fit the HUB App design system rather than feel like a third-party add-on

F.Process

1

Understanding the current experience

Looked at the legacy Chat experience and identified friction around purchase, contact management, group messaging, empty states, and unclear system behavior.

2

Defining the conversation model

Centered the structure on conversations, contacts, friend requests, single chats, group chats, and group details — clarifying what guests could do and how each object behaved.

3

Designing party purchase

The core product opportunity: how one guest could buy Chat for themselves and other travel companions, including confirmation, pricing clarity, and edge cases.

4

Modernizing messaging interactions

Brought the experience closer to modern messaging expectations: reply, edit, delete, forward, read states, group management, message options, and clearer conversation states.

5

Designing for iOS and Android

Kept some patterns consistent across platforms while following native behavior elsewhere — for example, long-press and bottom-sheet actions on Android instead of iOS-style swipe patterns.

6

Designing the unhappy path

Because spotty connectivity is normal at sea, failed, pending, empty, and not-purchased states were treated as part of the core experience, not exceptions.

7

Supporting build and QA

Documented flows, states, native platform differences, and vendor constraints so the team could implement and test the experience more consistently.

G.Solution

The final experience introduced:

  • A clearer messaging structure. Guests could better understand conversations, contacts, friend requests, and group chats.
  • Party purchase. One guest could purchase Chat for multiple travel companions, reducing friction for families and groups.
  • Better purchase clarity. Pricing, confirmation, already-purchased, not-logged-in, and disabled states were clarified so guests understood what they were buying.
  • Modern chat behaviors. Reply, edit, delete, forward, read states, group details, and message options.
  • Connectivity-aware states. Sending, sent, failed, empty, and not-purchased states helped set realistic expectations in a shipboard environment.
  • Platform-aware interaction patterns. The experience stayed consistent across iOS and Android while respecting native interaction differences where needed.
  • Reusable design system patterns. Conversation rows, message bubbles, input areas, state indicators, bottom actions, and empty states contributed to a more scalable communication pattern inside the HUB App.
Chat Purchase / Party Purchase Flow

Party purchase flow

Chat party purchase flow showing adult purchase, minor attempt, checkout, and activation states.

The purchase flow allowed guests to activate Chat for themselves or for members of their travel party, while accounting for adult purchase, minors, checkout, and activation states.

Core Chat Experience

Core chat experience

Core Chat experience showing conversations, contacts, one-on-one threads, group threads, and group details.

The core Chat experience covered conversations, contacts, one-on-one threads, group threads, and group details — creating the foundation for how guests stayed connected onboard.

Platform Behavior Differences

Platform behavior differences

iOS and Android platform behavior differences for forwarding and deleting Chat messages.

iOS and Android required different native interaction patterns for actions like forwarding and deleting messages, while keeping the overall Chat experience consistent across platforms.

H.Impact

  • Helped modernize a paid onboard messaging product inside the Carnival HUB App
  • Reduced purchase friction by enabling one guest to buy Chat for an entire travel party
  • Improved clarity around who guests can message, what Chat costs, and what state a message is in
  • Created reusable messaging patterns that could support future communication features
  • Helped bridge guest experience, business rules, technical constraints, and vendor implementation realities
  • Supported a more consistent iOS and Android experience across a complex vendor-integrated feature

Chat performance data showed encouraging signals around adoption, repeatable usage, and purchase-friction control.

Adoption~28%

Average penetration across analyzed sailing-level records.

Repeatable usage36%

Of sailings reached 30%+ penetration.

Low friction~2.7%

Median refund rate across the observed dataset.

Quality trend20 / 29 ships

Improved refund rate in the second observed period.

Based on analyzed Chat performance data · no message-content data included.

I.What I Learned

Designing Chat for a cruise environment taught me that trust is the product. Guests need to know who they can reach, what they are paying for, and whether the system actually understood their action.

It also reinforced that constraints aren’t just technical details. Connectivity, platform behavior, vendor SDK limits, paid-access rules, and group dynamics all shape the experience. The design challenge was to make those constraints understandable without exposing the complexity behind them.

← Back to selected work
In progress

Ship Maps

A cartography and map UI foundation for Carnival's HUB App, designed to move onboard maps from static deck-map images toward a scalable, interactive map experience with pinch-and-zoom, POIs, search, zone-aware orientation, deck detail, and future location-aware capabilities.

Role
UX / Product Designer
Company
Carnival Cruise Line
Platform
Guest mobile app · Indoor ship maps · Mobile map UI
Timeline
June 2023 – Present
Status
In progress · Cartography foundation defined
Focus Areas
Cartography · Map UI · POI Search · Information Architecture · Mobile Readability · Design QA
Cartography and map UI direction for Carnival's HUB App ship maps (sanitized, not a shipped screen).

B.Context

Today, the HUB App map experience is based on static deck-map assets — essentially image-based maps such as PNG, JPEG, or PDF-style deck views. These maps help guests view the layout of a ship, but they are limited as an interactive product experience.

Static maps can show where venues and spaces are located, but they do not behave like a modern map. They are harder to search, harder to update, harder to scale consistently across ships, and limited when it comes to pinch-and-zoom, progressive detail, dynamic POIs, category filtering, zones, and future location-aware features.

Ship Maps was created to move Carnival toward a more robust interactive map foundation. The goal was to define a scalable cartography and map UI system that could make onboard maps easier to explore today, while opening the door for future capabilities like better navigation options, nearest-POI logic, location-aware ordering, delivery-zone validation, and ship-area delivery.

C.The Problem

Carnival ships are large, multi-deck environments with restaurants, bars, theaters, pools, shops, cabins, guest services, elevators, stairwells, and open-deck spaces spread across different layouts.

A guest may know they want to find food, a pool, a bar, a show, a shop, or guest services — but static deck maps make that discovery feel more like looking at a diagram than using a modern product.

The challenge was to turn complex ship layouts into a clearer mobile map experience. The map needed to support exploration, orientation, POIs, categories, labels, search, zones, and future location-aware use cases without overwhelming guests on a small screen.

A useful ship map is not only a visual asset. It is information architecture, visual hierarchy, cartography, data structure, and interaction design working together.

D.My Role

  • Helped define the cartography and map UI direction for the HUB App
  • Worked on representative deck studies for Deck 5, Deck 10, and Deck 12
  • Helped define three zoom levels: .5x “Ship Overview,” 1x “Deck Overview,” and 2x “Detailed”
  • Designed Map Mode and List View patterns for browsing ship locations
  • Explored search, deck selection, category browsing, and map controls inside the HUB App UI
  • Designed pinch-and-zoom interaction states, including how the UI behaves while guests are actively interacting with the map
  • Supported POI, label, category, search, and zone-aware orientation behavior
  • Reviewed map styling for mobile readability and guest comprehension
  • Helped translate complex deck-map information into a cleaner guest-facing map language
  • Helped connect the map foundation to future location-aware ordering and ship-area delivery use cases

E.Design Challenge

The biggest design challenge was deciding what the map should show at each level of guest intent.

  • At a distance, guests need orientation — the shape of the deck, major landmarks, and where they are on the ship.
  • At a closer level, guests need recognizable venues, amenities, POIs, categories, labels, and zones.
  • At the most detailed level, guests can benefit from seating, deck textures, pool areas, furniture patterns, and environmental details — but only if that detail helps instead of overwhelming the map.

The product needed a progressive reveal system: show less when guests need orientation, then reveal more as they zoom in and look for specific places.

F.Defining the Cartography System

A major part of the work was defining the visual map language across representative decks and zoom levels. Deck 5, Deck 10, and Deck 12 were used to pressure-test different ship environments and make sure the cartography system could work beyond a single idealized deck.

Representative decks

5

Deck 5

Represented dense indoor guest areas, with multiple venues, corridors, and POIs close together. This helped test label hierarchy, POI density, venue naming, and how much information could appear before the map became visually noisy.

10

Deck 10

Represented a high-traffic guest deck with pool, food, beverage, and outdoor circulation areas. This helped test landmarks, deck textures, open-air spaces, food and beverage visibility, and how guests might scan a busy area while looking for nearby options.

12

Deck 12

Represented upper-deck recreational and open-air spaces, where landmarks, pools, activity zones, textures, and environmental details help guests orient themselves through recognizable ship features, not just labels.

Three zoom levels

.5x

Ship Overview

Shows the full deck shape and major landmarks so guests can understand the deck at a glance.

1x

Deck Overview

Shows a closer deck view with major zones, key venues, and primary POIs.

2x

Detailed

Reveals finer cartographic details such as seating, deck textures, pool areas, furniture patterns, smaller POIs, and environmental details where useful.

This progressive reveal approach helped balance visual richness with mobile readability. The goal was not to expose every deck-plan detail at once, but to reveal the right amount of information for the guest's current level of intent.

G.Map UI: Map Mode, List View, and Pinch-and-Zoom States

Beyond the cartography itself, Ship Maps also needed a mobile UI layer that made the map usable inside the HUB App.

The experience included a Map Mode for visual exploration and a List View for guests who prefer to browse places by category or name. This gave guests two ways to find locations: visually through the deck map, or structurally through searchable lists of venues and amenities.

The UI also accounted for pinch-and-zoom behavior. During map interaction, the experience needed to prioritize the map canvas so guests could move, zoom, and inspect the deck without unnecessary interface clutter. Once interaction stopped, controls and context could return so guests could continue searching, changing decks, opening location details, or switching views.

This helped define Ship Maps as more than a static map replacement. It became a mobile product experience with map exploration, search, list browsing, deck navigation, and interaction states working together.

H.Zone-Aware Orientation

Some Carnival ship experiences already use zones as part of how areas are understood. Ship Maps needed to account for that existing model instead of relying only on exact locations, deck numbers, or venue names.

Zones can help support orientation and future location-aware use cases, but they also need to be handled carefully so they do not add clutter. The map system needed to support zones alongside decks, POIs, categories, labels, and search.

I.Solution

The Ship Maps direction introduced a stronger foundation for interactive onboard maps.

1

Interactive map foundation

Moves beyond static deck images toward a scalable, interactive map.

2

Representative deck studies

Decks 5, 10, and 12 pressure-tested the system across ship environments.

3

Three-level zoom model

Progressive detail across Ship Overview, Deck Overview, and Detailed.

4

Map Mode and List View

Visual and structured ways to find locations.

5

Pinch-and-zoom states

Clear behavior during and after map interaction.

6

POI and label structure

Venues, icons, labels, and search organized for discovery.

7

Zone-aware behavior

Supports existing zones without adding clutter.

8

Mobile-first readability

Reveals the right detail at the right zoom level.

9

Future location-aware support

Foundation for navigation, nearest-POI, and ship-area delivery.

Visual map language

Cartography system

Cartography system showing outdoor, indoor, and sports areas with color palette, labels, and POI icons.

A visual system for translating static deck maps into clearer onboard map experiences — using color, labels, icons, and POI hierarchy to make different ship areas easier to scan.

Progressive reveal

Zoom-level strategy

Zoom-level strategy showing Ship Overview, Deck Overview, and Detailed views across Deck 5, Deck 10, and Deck 12.

I explored how map detail could progressively adapt as guests zoomed in — from full-ship orientation, to deck-level understanding, to detailed POI discovery.

Map UI and interaction states

Ship Maps UI concepts

Ship Maps UI concepts — .5x Ship Overview for Deck 5 and Deck 10, List View, and pinch-and-zoom interaction states (interacting with map and interaction stopped).

Map Mode, List View, and pinch-and-zoom interaction states — showing how guests browse, search, and orient across decks and zoom levels.

K.What I Learned

Ship Maps taught me that maps are not just illustrations. A useful map is a product system.

The hardest decisions were about hierarchy: what guests need to see at .5x, what becomes useful at 1x, what should only appear at 2x, how Map Mode and List View support different guest behaviors, and how zones can support orientation without adding clutter.

The best map experience is not about showing everything. It is about showing the right information at the right level of detail.

← Back to selected work
Shipped

iCafe — Onboard Internet Access & Multi-Device Plans

A redesign of the onboard Wi-Fi experience guests use to get connected at sea — making it clear how to log in, purchase an internet plan, understand what they're paying for, and manage internet across multiple devices, all on top of a third-party captive-portal platform.

Role
UX / Product Designer — led the redesign, then supported handoff
Company
Carnival Cruise Line
Timeline
April 2022 – handed off ~a year ago
Platform
Guest mobile app + captive portal (web)
Focus Areas
Connectivity · Authentication · Purchase Flow · Multi-Device Management · Vendor Integration
iCafe captive-portal flow: Get Connected welcome, sign in with folio and date of birth, and purchase an internet plan.
The headline: A redesign of how guests get online at sea. I led the redesign, then handed it off to another product designer who finalized it with the PM.

B.Context

On a cruise there’s no normal cell service, so getting online means buying a Carnival internet plan through iCafe — the captive portal guests hit when they join the ship’s Wi-Fi, run on a third-party vendor platform. It’s also the free doorway into the Carnival HUB App, and since ~90% of guests already use the app, the two experiences are tightly linked.

C.The Problem

The legacy experience was off-brand and confusing: folio-only sign-in, an unclear line between free ship-network access and paid internet, too many choices at once, and no way to handle more than one device. The redesign had to help guests get connected fast, understand what they were paying for, and cover up to four devices — all inside a vendor platform, balancing revenue goals with a clean experience.

D.My Role

  • Led the redesign on top of an existing first iteration — most notably the multi-device and device-switching model.
  • Added HUB App SSO alongside the folio fallback and simplified the captive-portal → browser flow.
  • Mapped the flows and edge cases (maxed-out devices, switching, vouchers, a separate crew model) in flowcharts before UI.
  • Partnered with PM, vendor, engineering, and business stakeholders, then handed off for finalization.

E.Solution

  • A cleaner welcome screen with three clear paths: sign in, buy a plan, or use the HUB App free.
  • An obvious free-vs-paid split, so guests always know whether something costs money.
  • HUB App–first sign-in (SSO), with folio + date of birth and vouchers as fallbacks.
  • A real multi-device model — see connected devices, switch or drop one when maxed, and a clear upgrade path.
  • Pricing clarity plus a crew variant (crew ID, multiple plans, switching between them).
Captive portal and login

Log in and purchase a plan

From the captive-portal landing through sign-in and buying a single plan — with the discount surfaced at checkout.

Browser flow: captive-portal landing, sign in, purchase a single-device plan, confirm, and connected.
Plan upgrades

Upgrading a plan

How a connected guest moves up to a higher plan, with pricing and savings shown before they confirm.

Browser flow: a connected guest upgrades to a higher internet plan with discount, confirms, and is connected.
Multi-device

Max out and switch devices

When a plan hits its device limit, guests can see active devices and switch which one is online.

Browser flow: a maxed-out multi-device plan, viewing active devices, and switching which device is online.