▷ Case Study 04 / 06

Case Study 04

CloudRift Landing Rebuild

An agency-designed landing that investors read as immature, and one designer to fix it. The rebuild worked because of a system: Figma tokens, a component library, and a gated Claude loop carrying the production work.

  • UX Design
  • Service Design
  • Design Systems
Role
  • Sole UX designer
  • Design system lead
Team
  • CEO (strategy)
  • founding engineers (domain context)
  • external agency (original design handoff)
Stack
  • Next.js
  • Tailwind CSS
  • Figma
  • Figma MCP
  • Claude Code (Cursor)
Status
  • Live at cloudrift.ai
  • 40+ to 2000+ monthly organic in 4 months
Span
  • First attempt ~6 weeks (April 2025)
  • Rebuild ~2 weeks (February 2026)

01

The Trigger

Agency-designed site: polished surface, no UX, no system. Investors and enterprise buyers read it as immature. I had just joined the team, knew design but not the GPU-cloud domain.

The agency-designed cloudrift.ai homepage: the headline Run your Code in any Cloud or On-Prem next to a blue 3D server-rack illustration, with a Trusted by logo row below
The agency-designed landing as it stood in early 2025. What stakeholders saw on first impression before the rebuild.

02

Research

Two parallel streams. Domain immersion with the founding engineers, because I did not have enough domain knowledge to make assumptions. That meant asking the engineers far more questions than a domain expert would have needed; the extra time bought a page free of unexamined assumptions. User testing on the existing site to find actual friction. Three root causes emerged: missing design system, primitive sprawl (dozens of one-off colors and spacing values instead of a shared token set), no codified decisions.

two parallel streams

Domain immersion

With the founding engineers, closing the domain gap before making assumptions

User testing

Guided sessions on the existing site: users recruited on LinkedIn plus partner-team members seeing the page fresh

three root causes emerged

cause 01

Missing design system

cause 02

Primitive sprawl

cause 03

No codified decisions

Domain immersion plus user testing on the existing site. Three root causes mapped together.

03

What I Tried First

April 2025: a first redesign. Basic style guide, cleaner sections, dark dev-product aesthetic. Time-pressed and domain-thin, the surface was coherent but the system underneath was missing.

The April 2025 first-attempt landing page in Figma: Flexible GPU Rentals for Machine Learning and AI Projects over a dark world map of certified providers
The April 2025 attempt, full page. Cleaner sections, dark aesthetic, basic style guide. Polished surface, no underlying system.

04

What Broke

Still a generic GPU-cloud landing page. The deeper problem was a blurry product story: the page addressed every possible audience at once, datacenter providers on the supply side and AI teams on the demand side. Stakeholders kept asking the same questions. That diagnosis split in two. The positioning had to be articulated before any page could carry it, and the craft problems needed a system rather than another one-off design pass. My research had covered craft and friction; the positioning gap only surfaced once stakeholders reviewed a finished attempt.

The April 2025 hero: the headline Flexible GPU Rentals for Machine Learning and AI Projects over a dark world map, with a Become a GPU Provider link in the navigation and a Trusted by logo row below

stakeholder

"What does the process actually look like? The site lists features and benefits, but what does the service entail? Is it consultation? Is it a software platform?"

stakeholder

"Who are you talking to? Datacenter providers? AI startups? Small GPU owners who want to sell capacity? Are you just a GPU marketplace?"

stakeholder

"Do you actually sell your own compute, or are you a broker?"

Three questions that kept coming back on the April 2025 page. The CEO relayed some from investor conversations; others surfaced in testing sessions. The hero pitched GPU rentals to AI teams while the navigation recruited GPU providers.

05

What I Changed

February 2026: rebuild on new tooling. Leadership's sovereignty repositioning landed alongside; "The Operating System for Sovereign AI Deployments" was my translation, refined over a good handful of rounds with the CEO. This time design and implementation ran in one loop: I shipped the page myself, and the founding engineers corrected technical claims before launch.

build time per attempt

April 2025 · one-off design pass

about 6 weeks

February 2026 · tokens, components, gated Claude loop

about 2 weeks

One cell per week. The first attempt took about six weeks of hand-built design work; the rebuild shipped in about two, with the system carrying most of the production.

The setup

Claude Code runs inside Cursor with Figma's MCP server attached, so the agent reads the design file and writes frames back into it. CLAUDE.md holds the token tables and usage rules; every design prompt is checked against them before any code is written.

tokens · components · screenshots

Figma

Design file, variable collections, component library

Figma MCP server

Registered in Cursor's MCP config

Claude Code in Cursor

Writes the Next.js code

generated frames back into figma

claude.md gate

Token tables and usage rules. Every design prompt is evaluated here before any code is written.

Tokens flow Figma to MCP to code; new designs flow Claude to MCP to Figma; CLAUDE.md is the evaluator in the middle.
The Figma variables panel with collections for color, radius, spacing, typography, semantic, and sizing, showing the color primitives with hex values
The Figma variable collections are the single source of truth. Six collections cover color, radius, spacing, typography, semantic mappings, and sizing.
Token tables from the cloudrift-landing CLAUDE.md: fonts, font weights with a max-weight-500 rule, semantic colors, and letter spacing
The repo's CLAUDE.md codifies the rules every new prompt is judged against, down to a hard cap on font weight.

Component library

The Figma file carries a full component library built on a PalmUI base: navigation, heroes, cards, bento grids, buttons, badges, forms, and icons. Every homepage section is assembled from these components, and each component only uses semantic tokens.

Button matrix in Figma showing primary, secondary, and ghost variants with arrow, avatar, and shortcut states, plus link, badge, and category chips
Buttons and badges. Three emphasis levels, each with arrow, avatar, and shortcut variants.
Card components in Figma: a feature card, a GPU pricing card listing RTX 9999 specifications at an hourly rate, and a blog post card
Cards, including the GPU pricing card that carries the rental sections.
Form inputs in Figma across default, filled, focused, and disabled states, with labels and helper text
Inputs and their states, from bare fields to labeled groups.
An overview of section components in Figma: FAQ accordions, blog grids, contact blocks, team sections, and feature layouts
Section components. FAQ, blog, contact, team, and feature layouts.

Quiet design choices

  • Figma tokens propagate to CSS variables via the MCP loop, not by hand
  • PalmUI base enforces semantic-token-only usage at the component layer
  • Max font weight 500 across the entire marketing surface
  • Borders only appear when Figma shows them, never as a code-side default
  • cloudrift-landing/CLAUDE.md is the gate that judges every new design prompt

06

Result

The rebuilt cloudrift.ai hero: The Operating System for Sovereign AI Deployments over a dark lightning visual, with demo and docs buttons
The rebuilt landing above the fold. What stakeholders see now.
Lighthouse report for www.cloudrift.ai showing scores of 100 for performance, 97 for accessibility, 92 for best practices, and 100 for SEO
Lighthouse desktop run against the live homepage, July 2026. 100 performance, 97 accessibility, 92 best practices, 100 SEO.
Loading metrics panel: first contentful paint 0.3 seconds, largest contentful paint 0.6 seconds, speed index 0.7 seconds, total blocking time 0 milliseconds, cumulative layout shift 0
Loading metrics from the same run. The page paints in 0.3 seconds with zero blocking time and zero layout shift.

Final product

One Platform, Full Control section with the operator console mockup for managing GPU clusters, tenants, and workloads
The operator console section, built from the section and card components.
Ship Faster on GPU Infrastructure section with hourly pricing cards for GPU rental, monitoring, storage, and API access
Developer tooling and hourly pricing, carried by the GPU pricing card.
Inference on Your Terms section with an OpenAI-compatible code snippet and model specs panel
The inference section pairs pay-per-token positioning with a working code sample.
Your Data Never Leaves Your Infrastructure section with six sovereignty cards including SOC 2, encryption, and data residency
The sovereignty section translates the repositioning into concrete guarantees.

Defensible numbers

  • Organic search grew from a few dozen to over 2000 monthly visits in 4 months
  • The rebuild shipped in about two weeks; the first attempt took around six
  • Design tokens codified in Figma and propagated to CSS variables through a bidirectional MCP loop
  • Component library enforces semantic-token-only usage at the component layer
  • Shipped at cloudrift.ai with SOC 2 and NVIDIA Inception credibility, named partner logos, and press features
  • Adding new sections and elements is now mostly mechanical. The component library, tokenized design conventions, and a trained Claude Code agent do most of the work; cost per addition has dropped substantially since the rebuild

Qualitative

Stakeholder read shifted from "immature startup" to "credible platform." Demo-booking lift is real but inconsistent, so it stays qualitative.

What I didn't measure (and won't fake)

  • Demo-booking conversion impact, not isolated from other changes during the same period
  • Long-term brand perception shift, no clean measurement available
  • Direct attribution of the organic-search lift to the redesign alone; other content and SEO work ran in parallel

07

What I Learned

Smart use of AI tools lets a solo designer operate at team scale, but only when paired with the research discipline that compensates for missing domain assumptions. The reframes below carry that pattern forward.

Carried over to the next system

  • Domain knowledge gaps close with research discipline. Asking the engineering team and testing with real users takes longer than domain expertise would, but it avoids building on guesses, especially for a designer new to a vertical.
  • AI tools as multiplier require a gate. Without CLAUDE.md (or an equivalent), Claude Code generates whatever feels right, not what the system permits.
  • Design-system tooling pays compounding dividends. Cost shifts from per-page implementation to one-time gate setup, and every new section after that is mostly mechanical.
  • A design system is only as useful as its gate. Without the token check between prompt and code, the system erodes one pixel value at a time.
  • Tokens in Figma and tokens in code need to match by name as well as by value. Name matching is what makes the MCP loop bidirectional rather than one-way.

What I'd do differently

  • Compress the gap between first and second attempt. April 2025 taught me what I lacked (system and domain); reaching that lesson would have been faster with a tooling-first frame from the start.
  • Codify tokens before designing any page. The first page should test the system, not define it.
  • Set up the bidirectional MCP loop as the first deliverable. One-way design-to-code wastes round trips and lets Figma and code drift before either is stable.

Case Study 04 Clear

Thanks for reading. If you want to talk about this work, reach out any time.