Update

Gradienty is now GradientDeck. New home: gradientdeck.com

Open
← Back to Blog
Walkthrough2026-06-30·7 min

Building a Therapist Booking Landing Page with GradientDeck MCP

A real-world walkthrough: from a blank page to a production-ready therapist booking SaaS landing page — using only GradientDeck MCP tools. See the full process: recommend, generate, compose, audit.

This is a real-world walkthrough of building a complete landing page using only GradientDeck MCP tools. The product: a therapist booking SaaS called 'Serenity'. The goal: a calm, trustworthy, accessible landing page that doesn't look AI-generated.

Step 1: Get a design recommendation

First, ask the agent to recommend a design direction:

Ask: "Use GradientDeck to recommend a design direction for a therapist booking SaaS. Audience: people seeking therapy. Mood: calm, trustworthy, warm."

The agent calls recommend_design. It matches the brief to the 'health-wellness-app' recipe and returns:

  • Palette: teal (#14b8a6), mint (#86efac), mint-50 (#f0fdfa), dark teal (#0f766e).
  • Background: mint-50 wash with a soft teal radial.
  • Pattern: soft dots, very low contrast (0.08 opacity, 24px grid).
  • Typography: rounded, medium weight, teal-800 headings, relaxed leading.
  • Motion: slow ease-in-out (300-500ms), breathing-pace.
  • Radius: 20-28px cards, pill buttons.
  • Do: use progress rings/breathing animations, keep contrast soft but AA.
  • Don't: use red (except alerts), sharp corners, or heavy shadows.

Step 2: Generate the design system

Next, generate a full token system from the seed color:

Ask: "Use GradientDeck to generate a design system from #14b8a6 in CSS format."

The agent calls generate_design_system. You get an 11-step brand scale (50-950), semantic colors (success/warning/danger/info), neutrals, radius/typography/motion/elevation tokens, and component treatments (button, card, input, modal). The CSS output defines :root variables you can paste directly.

Step 3: Generate the assets

Now generate the individual assets the page needs:

Pattern background

Ask: "Use GradientDeck to generate a dots pattern background. Background: #f0fdfa, foreground: #14b8a6, opacity: 0.08, size: 24px, CSS format."

Returns: background-color: #f0fdfa; background-image: radial-gradient(rgba(20, 184, 166, 0.08) 1.5px, transparent 1.5px); background-size: 24px 24px;

Glassmorphism

Ask: "Use GradientDeck to generate glassmorphism. Light background, blur 10px, opacity 0.7, radius 16px, shadow md, CSS format."

Returns: background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 16px; — used for the booking card and feature cards.

Box shadow

Ask: "Use GradientDeck to generate a soft box shadow at elevation 3, CSS format."

Returns: box-shadow: 0 3px 6px -1px rgba(0,0,0,0.1); — soft, never heavy or clinical.

Step 4: Compose the full page

Now ask the agent to compose the full treatment:

Ask: "Use GradientDeck to compose a hero UI treatment. Use case: hero. Brand color: #14b8a6. Dark mode: false."

The agent calls compose_ui_treatment. The output is a production-ready React component with:

  • A <style> block with :root tokens (--gd-accent, --gd-bg, --gd-text, etc.).
  • A solid headline (no gradient text — passes gate 2).
  • A left-biased hero (min-h-[70vh], items-start — passes gate 6).
  • A glass booking card on the right with therapist profile + time slots.
  • Pill buttons with :focus-visible, :active, :disabled states (passes gate 26).
  • @media (prefers-reduced-motion: reduce) (passes gate 27).
  • overflow-x: clip (passes gate 34).
  • overflow-wrap: anywhere on headings (passes gate 51).
  • white-space: nowrap on buttons (passes gate 49).
  • No fabricated metrics — em-dash placeholders (passes gate 46).

Step 5: Build the remaining sections

The page needs more than a hero. Here's how each section was built — all anti-slop compliant:

How it works — vertical steps (not a 3-col grid)

Instead of the AI-default 3-column icon-tile grid (gate 3), the steps are a vertical numbered list. Each step has a number badge + title + body. This is categorically different from the template every LLM reaches for.

Features — asymmetric grid (not equal cards)

Instead of 4 equal-width feature cards, the features use a 1.3fr/1fr asymmetric grid that alternates. Glass cards with soft shadows. No icon-tile-above-heading pattern.

Testimonial — single quote (no fabricated metrics)

One real-sounding quote with a name. No 'trusted by 50,000+ teams' strip. No 5-star rating grid. Just a sentence that sounds like a human said it.

CTA — solid, not gradient

A solid teal pill button. No gradient CTA. No aurora-blob background. Just a clean call to action on the dots-pattern surface.

Footer — single-line (not the AI 4-column)

Instead of the AI-default 4-column link grid + social row + tiny copyright (gate 43), the footer is a single-line layout: logo + tagline + inline links + copyright.

Step 6: Audit the final page

Run the slop test on the finished code:

Ask: "Use GradientDeck to run a slop test on this code." and paste the full page.

All auto-checked gates pass. The verdict is 'clean'. The 33 manual-review gates (accent area %, hero fold fit, nav/footer fingerprints, etc.) are marked for review — they need a rendered viewport, which the MCP can't provide.

The result

The finished page is live at gradientdeck.com/mcp/example-1. It's a complete therapist booking SaaS landing page — hero with a glass booking card, vertical how-it-works steps, asymmetric feature grid, single testimonial, CTA, and a clean footer. Every section uses the health-wellness recipe's palette, pattern, glass, and shadow — all generated by GradientDeck MCP tools.

The page passes the 58-gate slop test clean. No purple gradients. No gradient text. No centred hero. No 3-col icon grid. No fabricated metrics. No transition-all. No missing states. No missing reduced-motion. This is what 'designed, not generated' looks like.


This walkthrough used 6 MCP tools (recommend_design, generate_design_system, generate_pattern_background, generate_glassmorphism, generate_box_shadow, compose_ui_treatment) and the slop_test audit. The entire page was built with AI agent assistance — and it doesn't look AI-generated. That's the point.