Navigation
WorkAboutGet in touch

© 2026 Alfonso Barreiro

← Back to work
Concept · DesignLab · 2026

Discover new destinations.

A discovery-first travel platform with an interactive globe and a 40-destination library. Four-week DesignLab brief expanded into a working product with a documented design system.

Information ArchitectureDesign SystemMulti-step Form UXAI-Assisted Build
wayfarer.barreiro.com →
Wayfarer homepage — live at wayfarer.barreiro.com. Editorial cover with the globe explorer as the front door.

wayfarer.barreiro.com · live

“Travel content is invitation, not data. The original site treated it like data.”

Live destinations grid at wayfarer.barreiro.com — 40+ destinations across seven continents, the surface the original brief tried to make the homepage.
01

The problem.

Three problems sat inside the brief. Onboarding friction (the multi-step signup form was the most cited pain point; users dropped off mid-flow). Layout inconsistency (the existing design didn’t hold across screen sizes). And no visual storytelling (the homepage listed destinations instead of revealing them). What tied them together: travel content is invitation, not data. The original site treated it like data.

Phase 1

Heuristic evaluation + site audit

Phase 2

Card sort, IA, personas

Phase 3

The discovery pivot

Process

How I got there.

The Figma source carries the full design history. Research clusters became personas. Personas became an IA. The IA became wireframes. Wireframes became hi-fi explorations. Hi-fi became code. Three phases below. The shipped product is the last frame in the chain.

Click 01 · 02 · 03 to switch phases

Information architecture

Six routes, two flows,
one discovery loop.

Wayfarer’s IA is intentionally shallow. Every primary destination is reachable in one click from the navbar. The deeper structure is the discovery loop: Home → Discover (or Destinations) → Detail → Planner → back. Each route in the map corresponds to a file at src/app/{slug}/page.tsx. Modals and overlays are separated from the route layer because they sit above route state, not within it.

Site map

Routes.

route/Home · hero, destinations carousel, why-wayfarer, get-started
modalSign Up modal5-step Zod-validated signup
modalSign In modalSingle-step email + password
route/destinationsFilterable catalog of 87 destinations
route/destinations/[slug]Detail page · hero / about / gallery / highlights / map / sidebar
route/discover3D Mapbox globe + Hidden Gems grid
route/plannerDrag-reorder itinerary + saved-locations rail + print-to-PDF
modalPicker modalAdd a segment or save a destination
overlaySearch overlay (⌘K)Globally-available cmd-K palette

Primary user flow

Curiosity → Commitment.

STEP 1

Land

Homepage

STEP 2

Browse

Discover · /destinations

STEP 3

Decide

Detail · /destinations/[slug]

STEP 4

Save

Saved Locations rail in /planner

STEP 5

Commit

Promote saved → segment

STEP 6

Export

Print-to-PDF

Six steps. Each step maps to a route or a state. No skip from Land to Commit; saving precedes committing on purpose.

Wayfarer globe explorer with Bhutan selected — live at wayfarer.barreiro.com. The kept surface: spin, click any pin, sticky destination card reveals on the right.

Globe explorer · Bhutan selected, sticky card on the right

Cut

Transactional layer

Hotel search and booking interface
Car rental browsing and comparison
Price-based filtering and sorting
Booking confirmation flow

Kept

Discovery layer

Globe explorer as primary discovery interface
Destination detail pages (content, gallery, tips, map)
Multi-step signup with preference collection
Trip planner for itinerary building
Continent-based filtering and search
02

The bet.

Four weeks into building with AI-assisted development, I had a working booking interface. Hotels, cars, full detail pages with pricing. The tools made it trivial to go from concept to functional UI in hours. The brief said discovery, not booking. I scaled it back. Removed hotel and car booking from destination pages. Kept the globe explorer, the trip planner, and the multi-step signup as the center of gravity. AI tools expanded what was possible to build. The discipline was deciding what not to build.

Wayfarer wordmark, native black on paper.
Wayfarer wordmark, white treatment on navy.
Wayfarer brand signature — wordmark, globemark, navy + coral colorways, three application rules.
Brand identity

Editorial, not booking-engine.

Navy + coral on paper. Globe wordmark anchors the brand. Voice borrows from National Geographic and Apartamento more than from Expedia. The token names matter: every brand color in the system maps directly to a CSS variable in production. The Figma file IS the source of truth; this case study is the editorial cut.

Design system

Tokens first.
Code-cross-referenced.

Four color ramps, nine type styles, eighteen documented components. Every component in the Figma source carries a ‘MATCHES src/...’ cross-reference to the production file it ships from. Design system coherence isn’t a claim; it’s a paper trail.

Click 01 · 02 · 03 to switch panels

Receipts

One vocabulary.
Three projects.

Same token names, different values per project. Wayfarer ships navy + coral. The portfolio system (AB Core) and Men’s Sole Revival share the same primitives at different points on the ramp. The naming convention is the contract; values are the variable.

TokenWayfarerAB CoreMSR
brand-500#3E3C78#1C3F5E#1C3F5E
brand-900#2C2B5A#091016#13100C
accent-500#D27A5E#C4703A#C4703A
neutral-50#F8F9FB#F8F7F7#F8F7F7
neutral-500#6B6560#6B6560#6B6560

Token table excerpted from the AB Core Library. Same naming convention across all three projects.

03

Shipped.

wayfarer.barreiro.com is live. Homepage, globe explorer, destinations grid, destination detail templates, trip planner, 5-step signup. Six-page IA mapped to user verbs: orient, browse, explore, evaluate, plan, personalize. Eighty-seven destinations live on the globe. Full design system documented and code-cross-referenced.

Destination template · live

One template, eighty-seven destinations.

Live Kyoto destination page at wayfarer.barreiro.com — hero photo, about copy, gallery, five highlights, location map, quick-info side rail, related destinations.

Every destination ships through the same six-block template: hero, about, gallery, highlights, location, quick info. The template is the contract; content is the variable.

Trip planner · annotated

Four decisions visible on one screen.

Live trip planner at wayfarer.barreiro.com — Kyoto and Tokyo segments, 6 days total, with transit estimate between. Four numbered annotation hotspots call out the four design decisions listed alongside.
  1. 01

    Three primitives in the header.

    Segments, days, saved. Three counters surface the plan’s shape at a glance. Each one is a unit of commitment: segment is high, day is medium, saved is low.

  2. 02

    Plan without dates.

    Each segment has a duration in days and a soft ‘When’ field set to Flexible by default. Dates are optional, not required to save the plan.

  3. 03

    Transit between segments.

    Distance and travel time render between adjacent segments. The plan models the gaps, not just the stops.

  4. 04

    Saved sidebar stays separate.

    Bookmarked destinations live in a sidebar below the segment list. A ‘maybe’ doesn’t pollute the plan until promoted to a segment.

Planner journey

Two more states. From blank to a real plan.

Trip planner empty state — three primitives header (segments, days, saved) plus ‘Add your first segment’ CTA and an empty Saved sidebar.
01Empty state · one CTA
Add-segment modal — filterable list of all destinations with country labels. Pick one to populate as a segment.
02Add-segment modal · filter then pick

Multi-step signup · live UI

Five steps, then welcome.

Click a step to view it full size.

Each step independently validated. The review screen lets the user jump back into any step without losing input. Preference data drives the post-signup home feed.

Brief vs delivered · scope discipline

Two things asked for. Seven shipped.

The brief asked for a homepage and an onboarding fix. The build expanded around both without breaking either. The expansion isn’t scope creep. §02 The Bet shows what got cut to make room for it.

Brief asked forDelivered
Homepage redesignNew homepage with editorial cover, globe entry point, and feature highlights
Onboarding fix5-step signup with per-step validation, edit-back review, and welcome screen
(beyond brief)Interactive 3D globe with 87 destinations across 8 continents
(beyond brief)Six-page IA mapped to user verbs (orient, browse, explore, evaluate, plan, personalize)
(beyond brief)Destination detail templates with hero, gallery, highlights, quick-info side rail
(beyond brief)Trip planner with three primitives (segment, day, saved) and transit estimates
(beyond brief)Full design system (tokens, type, components) cross-referenced to production code

Two rows hit the brief. Five rows expanded it. The build held discipline against what was cut, not against what was added.

Accessibility

Audited, not assumed.

Dedicated A11y system audit page in the Figma source. Contrast ratios for every color pairing (the warm off-white over navy pair clears 15:1; the muted variant clears 10.5:1). Focus orders documented per page. Keyboard nav patterns for the globe (continent-grid fallback). Screen-reader labels on every icon button. The artifact is the receipt.

Wayfarer Accessibility · System Audit — contrast checks per color pair, focus order documentation, keyboard nav patterns, screen-reader labels.
Mobile

Discovery has to survive the phone. Hierarchy holds, the globe reduces to a continent grid, and the signup keeps its progress meter.

Mobile screen captures from the live site at wayfarer.barreiro.com pending. Wireframe source in the Figma file (Responsive · Mobile Breakpoints page).

Role

UX/UI Designer · End-to-end

Year

2026

Type

DesignLab · Concept

Stack

Figma · Next.js · Mapbox

Live

wayfarer.barreiro.com