@gemboss/website-ui 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css/tokens.css CHANGED
@@ -89,6 +89,7 @@
89
89
  --gw-muted: #686b71;
90
90
  --gw-line: #e5e7ea;
91
91
  --gw-line-strong: #d5d8dd;
92
+ --gw-line-control: #85888e;
92
93
  --gw-action: #1b1c1e;
93
94
  --gw-action-hover: #000000;
94
95
  --gw-on-action: #ffffff;
@@ -99,6 +100,10 @@
99
100
  --gw-success: #007f5f;
100
101
  --gw-success-soft: #e3f1df;
101
102
  --gw-warning: #9a6700;
103
+ --gw-warning-soft: #fbf1dc;
104
+ --gw-danger: #b42318;
105
+ --gw-danger-soft: #fff0e9;
106
+ --gw-on-danger: #ffffff;
102
107
  --gw-night: #0c0e14;
103
108
  --gw-night-2: #141722;
104
109
  --gw-on-night: #e3e4e8;
@@ -115,6 +120,7 @@
115
120
  --gw-muted: #9a9ca6;
116
121
  --gw-line: #2a2b33;
117
122
  --gw-line-strong: #383944;
123
+ --gw-line-control: #6a6d78;
118
124
  --gw-action: #f2f3f5;
119
125
  --gw-action-hover: #ffffff;
120
126
  --gw-on-action: #0d0d12;
@@ -125,6 +131,10 @@
125
131
  --gw-success: #34c38f;
126
132
  --gw-success-soft: #132a22;
127
133
  --gw-warning: #e0b341;
134
+ --gw-warning-soft: #2b2410;
135
+ --gw-danger: #ff6b5a;
136
+ --gw-danger-soft: #2e1714;
137
+ --gw-on-danger: #0d0d12;
128
138
  --gw-night: #0a0b10;
129
139
  --gw-night-2: #12141c;
130
140
  --gw-on-night: #e3e4e8;
@@ -141,6 +151,7 @@
141
151
  --gw-muted: #9a9ca6;
142
152
  --gw-line: #2a2b33;
143
153
  --gw-line-strong: #383944;
154
+ --gw-line-control: #6a6d78;
144
155
  --gw-action: #f2f3f5;
145
156
  --gw-action-hover: #ffffff;
146
157
  --gw-on-action: #0d0d12;
@@ -151,6 +162,10 @@
151
162
  --gw-success: #34c38f;
152
163
  --gw-success-soft: #132a22;
153
164
  --gw-warning: #e0b341;
165
+ --gw-warning-soft: #2b2410;
166
+ --gw-danger: #ff6b5a;
167
+ --gw-danger-soft: #2e1714;
168
+ --gw-on-danger: #0d0d12;
154
169
  --gw-night: #0a0b10;
155
170
  --gw-night-2: #12141c;
156
171
  --gw-on-night: #e3e4e8;
@@ -166,6 +181,7 @@
166
181
  --gw-muted: #686b71;
167
182
  --gw-line: #e5e7ea;
168
183
  --gw-line-strong: #d5d8dd;
184
+ --gw-line-control: #85888e;
169
185
  --gw-action: #1b1c1e;
170
186
  --gw-action-hover: #000000;
171
187
  --gw-on-action: #ffffff;
@@ -176,6 +192,10 @@
176
192
  --gw-success: #007f5f;
177
193
  --gw-success-soft: #e3f1df;
178
194
  --gw-warning: #9a6700;
195
+ --gw-warning-soft: #fbf1dc;
196
+ --gw-danger: #b42318;
197
+ --gw-danger-soft: #fff0e9;
198
+ --gw-on-danger: #ffffff;
179
199
  --gw-night: #0c0e14;
180
200
  --gw-night-2: #141722;
181
201
  --gw-on-night: #e3e4e8;
@@ -192,6 +212,7 @@
192
212
  --gw-muted: #9a9ca6;
193
213
  --gw-line: #2a2b33;
194
214
  --gw-line-strong: #383944;
215
+ --gw-line-control: #6a6d78;
195
216
  --gw-action: #f2f3f5;
196
217
  --gw-action-hover: #ffffff;
197
218
  --gw-on-action: #0d0d12;
@@ -202,6 +223,10 @@
202
223
  --gw-success: #34c38f;
203
224
  --gw-success-soft: #132a22;
204
225
  --gw-warning: #e0b341;
226
+ --gw-warning-soft: #2b2410;
227
+ --gw-danger: #ff6b5a;
228
+ --gw-danger-soft: #2e1714;
229
+ --gw-on-danger: #0d0d12;
205
230
  }
206
231
  /* action profile "accent": data-gw-action="accent" on <html>. In night bands too, where the dark palette applies. */
207
232
  :root[data-gw-action="accent"],
@@ -0,0 +1,359 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>How to plan a product page around the shopper's questions · GemBoss Blog</title>
7
+ <meta name="description" content="Plan a product page around the questions a shopper asks, in the order they ask them. The kit's article page: breadcrumbs, meta row, contents, prose, callouts and FAQ.">
8
+ <script>try{var t=localStorage.getItem('gw-theme');if(t==='light'||t==='dark')document.documentElement.setAttribute('data-theme',t)}catch(e){}</script>
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;650;700&display=swap">
12
+ <link rel="stylesheet" href="../website.css">
13
+ </head>
14
+ <body class="gw-page">
15
+ <a class="gw-skip" href="#main">Skip to content</a>
16
+
17
+ <div class="gw-announce" role="region" aria-label="Announcement">GemBoss is built by the team behind GemPages. <a href="https://feedback.gemboss.ai/changelog" rel="noopener">What's new on the changelog</a></div>
18
+ <header class="gw-header" data-gw-header>
19
+ <div class="gw-wrap gw-header__bar">
20
+ <a class="gw-brand" href="https://gemboss.ai/"><svg class="gw-brand__mark" viewBox="0 0 100 116" aria-hidden="true"><polygon points="26,14 74,14 66,50 34,50" style="fill:var(--gw-accent)"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="currentColor" stroke-width="9" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linejoin="round"/></svg><span class="gw-brand__name">GemBoss</span></a>
21
+ <nav class="gw-nav" aria-label="Main">
22
+ <ul class="gw-nav__list">
23
+ <li class="gw-nav__item">
24
+ <button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-product" data-gw-mega="gw-mega-product">Product</button>
25
+ <div class="gw-mega" id="gw-mega-product" hidden>
26
+ <div class="gw-wrap gw-mega__grid">
27
+ <div class="gw-mega__col">
28
+ <p class="gw-mega__heading">Build</p>
29
+ <a class="gw-mega__link" href="https://gemboss.ai/funnel"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h18l-7 8v6l-4 2v-8z"/></svg></span><span><b>Funnel builder</b><i>Angles, advertorials, offers</i></span></a>
30
+ <a class="gw-mega__link" href="https://gemboss.ai/ai-store-builder"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l1.5-5h15L21 9"/><path d="M4 9v11h16V9"/><path d="M9 20v-6h6v6"/></svg></span><span><b>Storefront builder</b><i>Headless, on your Shopify</i></span></a>
31
+ <a class="gw-mega__link" href="https://gemboss.ai/gempages"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 8h8M8 12h8M8 16h5"/></svg></span><span><b>Page builder</b><i>Ask, watch, publish</i></span></a>
32
+ </div>
33
+ <div class="gw-mega__col">
34
+ <p class="gw-mega__heading">Grow</p>
35
+ <a class="gw-mega__link" href="https://gemboss.ai/gemx"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4v16M20 4v16M4 9h16M4 15h16"/></svg></span><span><b>Tests &amp; personalization</b><i>You promote the winner</i></span></a>
36
+ <a class="gw-mega__link" href="https://gemboss.ai/gemoffers"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M20 12l-8 8-9-9V3h8z"/><circle cx="7.5" cy="7.5" r="1.5"/></svg></span><span><b>Offers &amp; upsells</b><i>Bundles, gifts, bumps</i></span></a>
37
+ <a class="gw-mega__link" href="https://gemboss.ai/data"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 15l4-4 3 3 5-6"/></svg></span><span><b>Analytics &amp; data</b><i>First-party, yours</i></span></a>
38
+ </div>
39
+ <div class="gw-mega__col">
40
+ <p class="gw-mega__heading">Connect</p>
41
+ <a class="gw-mega__link" href="https://gemboss.ai/integrations"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 3v6M15 3v6M6 9h12v3a6 6 0 0 1-12 0z"/><path d="M12 18v3"/></svg></span><span><b>Integrations</b><i>Klaviyo, Meta, Google</i></span></a>
42
+ <a class="gw-mega__link" href="https://gemboss.ai/mcp"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="m8 9-4 3 4 3"/><path d="m16 9 4 3-4 3"/><path d="m14 5-4 14"/></svg></span><span><b>MCP &amp; agents</b><i>Claude and Codex</i></span></a>
43
+ <a class="gw-mega__link" href="https://gemboss.ai/agent-ready"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="8" width="14" height="11" rx="3"/><path d="M12 4v4"/><circle cx="9.5" cy="13.5" r="1"/><circle cx="14.5" cy="13.5" r="1"/></svg></span><span><b>Agent-ready storefront</b><i>Ready for AI shoppers</i></span></a>
44
+ </div>
45
+ <a class="gw-mega__feature" href="https://gemboss.ai/engine"><b>How the engine works</b><i>Six stages, one loop. Nothing ships without you.</i><span class="gw-link gw-link--arrow">See the engine</span></a>
46
+ </div>
47
+ </div>
48
+ </li>
49
+ <li class="gw-nav__item">
50
+ <button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-usecases" data-gw-mega="gw-mega-usecases">Use cases</button>
51
+ <div class="gw-mega" id="gw-mega-usecases" hidden>
52
+ <div class="gw-wrap gw-mega__grid">
53
+ <div class="gw-mega__col">
54
+ <p class="gw-mega__heading">Adaptive funnels</p>
55
+ <a class="gw-mega__link" href="https://gemboss.ai/meta-ads"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 11v2a1 1 0 0 0 1 1h3l5 4V6L7 10H4a1 1 0 0 0-1 1z"/><path d="M16 9a4 4 0 0 1 0 6"/></svg></span><span><b>Meta, Google &amp; TikTok ads</b><i>A funnel for every ad angle</i></span></a>
56
+ <a class="gw-mega__link" href="https://gemboss.ai/klaviyo-personalized-landing-pages"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></svg></span><span><b>Klaviyo email <span class="gw-badge gw-badge--warning">Early access</span></b><i>A page per recipient, after the click</i></span></a>
57
+ </div>
58
+ <div class="gw-mega__col">
59
+ <p class="gw-mega__heading">Adaptive storefront</p>
60
+ <a class="gw-mega__link" href="https://gemboss.ai/ai-store-builder"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l1.5-5h15L21 9"/><path d="M4 9v11h16V9"/><path d="M9 20v-6h6v6"/></svg></span><span><b>Headless storefront</b><i>Your whole Shopify store, on GemBoss</i></span></a>
61
+ <a class="gw-mega__link" href="https://gemboss.ai/agent-ready"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="8" width="14" height="11" rx="3"/><path d="M12 4v4"/><circle cx="9.5" cy="13.5" r="1"/><circle cx="14.5" cy="13.5" r="1"/></svg></span><span><b>AI agents &amp; AI search</b><i>Readable by AI, shoppable by agents</i></span></a>
62
+ </div>
63
+ <a class="gw-mega__feature" href="https://gemboss.ai/meta-ads"><b>Every ad gets its own page</b><i>The page keeps the promise the ad made.</i><span class="gw-link gw-link--arrow">See the ad-to-page path</span></a>
64
+ </div>
65
+ </div>
66
+ </li>
67
+ <li class="gw-nav__item"><a class="gw-nav__link" href="https://gemboss.ai/pricing">Pricing</a></li>
68
+ <li class="gw-nav__item">
69
+ <button class="gw-nav__trigger" type="button" aria-expanded="false" aria-controls="gw-mega-resources" data-gw-mega="gw-mega-resources">Resources</button>
70
+ <div class="gw-mega" id="gw-mega-resources" hidden>
71
+ <div class="gw-wrap gw-mega__grid">
72
+ <div class="gw-mega__col">
73
+ <p class="gw-mega__heading">Learn</p>
74
+ <a class="gw-mega__link" href="https://gemboss.ai/blog"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h11a2 2 0 0 1 2 2v14H6a2 2 0 0 1-2-2z"/><path d="M8 8h7M8 12h7"/></svg></span><span><b>Blog</b><i>Playbooks and guides</i></span></a>
75
+ <a class="gw-mega__link" href="https://gemboss.ai/docs"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M14 3v6h6"/></svg></span><span><b>Docs</b><i>Guides and MCP tools</i></span></a>
76
+ </div>
77
+ <div class="gw-mega__col">
78
+ <p class="gw-mega__heading">Company</p>
79
+ <a class="gw-mega__link" href="https://gemboss.ai/company"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8h.01"/></svg></span><span><b>About</b><i>Why we build it</i></span></a>
80
+ <a class="gw-mega__link" href="https://gemboss.ai/contact"><span class="gw-mega__icon" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg></span><span><b>Contact</b><i>Talk to a human</i></span></a>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </li>
85
+ </ul>
86
+ </nav>
87
+ <div class="gw-header__actions">
88
+ <button class="gw-theme-toggle" type="button" data-gw-theme-toggle aria-label="Switch to dark theme"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor"/></svg></button>
89
+ <a class="gw-nav__link gw-header__signin" href="https://admin.gemboss.ai/login">Sign in</a>
90
+ <a class="gw-btn gw-btn--secondary gw-btn--sm" href="https://gemboss.ai/contact">Book a demo</a>
91
+ <a class="gw-btn gw-btn--sm" href="https://admin.gemboss.ai/signup">Start free</a>
92
+ <button class="gw-menu-toggle" type="button" aria-expanded="false" aria-controls="gw-mobile-menu" data-gw-menu-toggle aria-label="Open menu"><svg class="gw-menu-toggle__open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><path d="M4 7h16M4 12h16M4 17h16"/></svg><svg class="gw-menu-toggle__close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6 6 18"/></svg></button>
93
+ </div>
94
+ </div>
95
+ <div class="gw-mobile-menu" id="gw-mobile-menu" hidden>
96
+ <nav class="gw-wrap" aria-label="Main, mobile">
97
+ <details class="gw-mobile-menu__group">
98
+ <summary>Product</summary>
99
+ <ul class="gw-mobile-menu__list">
100
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/funnel">Funnel builder</a></li>
101
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/ai-store-builder">Storefront builder</a></li>
102
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/gemx">Tests &amp; personalization</a></li>
103
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/gemoffers">Offers &amp; upsells</a></li>
104
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/integrations">Integrations</a></li>
105
+ </ul>
106
+ </details>
107
+ <details class="gw-mobile-menu__group">
108
+ <summary>Use cases</summary>
109
+ <ul class="gw-mobile-menu__list">
110
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/meta-ads">Meta, Google &amp; TikTok ads</a></li>
111
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/ai-store-builder">Headless storefront</a></li>
112
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/agent-ready">AI agents &amp; AI search</a></li>
113
+ </ul>
114
+ </details>
115
+ <a class="gw-mobile-menu__top" href="https://gemboss.ai/pricing">Pricing</a>
116
+ <details class="gw-mobile-menu__group">
117
+ <summary>Resources</summary>
118
+ <ul class="gw-mobile-menu__list">
119
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/blog">Blog</a></li>
120
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/docs">Docs</a></li>
121
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/company">About</a></li>
122
+ <li><a class="gw-mobile-menu__link" href="https://gemboss.ai/contact">Contact</a></li>
123
+ </ul>
124
+ </details>
125
+ <div class="gw-mobile-menu__actions">
126
+ <a class="gw-btn gw-btn--block" href="https://admin.gemboss.ai/signup">Start free</a>
127
+ <a class="gw-btn gw-btn--secondary gw-btn--block" href="https://gemboss.ai/contact">Book a demo</a>
128
+ <a class="gw-mobile-menu__link" href="https://admin.gemboss.ai/login">Sign in</a>
129
+ </div>
130
+ </nav>
131
+ </div>
132
+ </header>
133
+
134
+ <main id="main">
135
+ <article class="gw-wrap gw-article">
136
+ <header class="gw-article__head">
137
+ <nav class="gw-breadcrumbs" aria-label="Breadcrumb">
138
+ <ol>
139
+ <li><a href="blog.html">Blog</a></li>
140
+ <li><a href="blog.html#guides">Guides</a></li>
141
+ <li><a href="article.html" aria-current="page">How to plan a product page around the shopper's questions</a></li>
142
+ </ol>
143
+ </nav>
144
+ <h1>How to plan a product page around the shopper's questions</h1>
145
+ <p class="gw-article-meta">
146
+ <span><img class="gw-article-meta__avatar" src="assets/avatar-gemboss.svg" alt="" width="24" height="24">GemBoss Team</span>
147
+ <span><a href="blog.html#guides">Guides</a></span>
148
+ <span>Updated <time datetime="2026-10-25">October 25, 2026</time></span>
149
+ <span>5 min read</span>
150
+ </p>
151
+ </header>
152
+ <figure class="gw-article__hero">
153
+ <img src="assets/article-hero.svg" alt="A drawn product page on a computer and on a phone: the picture, the title, the price and the button side by side" width="1200" height="675" fetchpriority="high">
154
+ </figure>
155
+ <nav class="gw-toc" aria-label="On this page" data-gw-toc>
156
+ <details>
157
+ <summary>On this page</summary>
158
+ <ol>
159
+ <li><a href="#start-from-the-questions">Start from the questions, not the template</a></li>
160
+ <li><a href="#first-screen">Answer the first question on the first screen</a>
161
+ <ol>
162
+ <li><a href="#write-the-title">Write the title for the shopper</a></li>
163
+ <li><a href="#price-and-button">Keep the price and the button together</a></li>
164
+ </ol>
165
+ </li>
166
+ <li><a href="#photos">Show the product the way it is used</a></li>
167
+ <li><a href="#shipping-and-returns">Put shipping and returns where the decision happens</a></li>
168
+ <li><a href="#reviews">Let buyers speak for the product</a></li>
169
+ <li><a href="#check-on-a-phone">Check the page on a phone</a></li>
170
+ <li><a href="#faq">Frequently asked questions</a></li>
171
+ </ol>
172
+ </details>
173
+ </nav>
174
+ <div class="gw-prose">
175
+ <p>A shopper who lands on a product page has a handful of questions, and they ask them in roughly the same order: what is it, what does it cost, will it suit me, when will it arrive, and can I send it back. A page that answers them in that order, without making anyone hunt, feels easy to buy from.</p>
176
+ <p>This guide walks through each question, where its answer belongs on the page, and how to check the result on a phone, where many shoppers see the page first.</p>
177
+
178
+ <h2 id="start-from-the-questions">Start from the questions, not the template</h2>
179
+ <p>Before you move a single section, write down the questions a first-time visitor asks about this product. Ask the people who answer your support email: they hear them every day. Then sort the list by when each question comes up, from the first glance to the moment before checkout.</p>
180
+ <ul>
181
+ <li>What is it, and what is it for?</li>
182
+ <li>What does it cost, with shipping?</li>
183
+ <li>Will it fit me, my skin, my space?</li>
184
+ <li>When will it arrive, and can I return it?</li>
185
+ <li>Do people like me use it, and are they happy with it?</li>
186
+ </ul>
187
+ <div class="gw-callout gw-callout--note" role="note">
188
+ <p class="gw-callout__label">Note</p>
189
+ <p>This guide is about the product page itself. The ad, email or search result that brings a visitor there sets what they expect, so make its promise and the page's first screen say the same thing.</p>
190
+ </div>
191
+
192
+ <h2 id="first-screen">Answer the first question on the first screen</h2>
193
+ <p>The first screen of a product page, before any scrolling, has three jobs: name the product, show it, and give the price next to the button that buys it. Everything else can wait for the scroll.</p>
194
+ <h3 id="write-the-title">Write the title for the shopper</h3>
195
+ <p>Use the words a shopper would type into a search box, not an internal code or the name of a collection. When the product comes in sizes or colours, the title names the product and the options sit under it.</p>
196
+ <h3 id="price-and-button">Keep the price and the button together</h3>
197
+ <p>A price that sits far from the button makes people scroll back up to check it. Put the price, any discount and the main action in one block, and keep one main action on the page: <a href="https://gemboss.ai/blog/how-to-choose-shopify-theme">a theme that puts them together</a> saves you from fighting it.</p>
198
+
199
+ <h2 id="photos">Show the product the way it is used</h2>
200
+ <p>Photos answer the question of fit faster than any sentence. Lead with a clear picture of the product on a plain ground, then show it in use, at its real size next to something familiar, and close up on the details people ask about: the fabric, the label, the inside of the lid.</p>
201
+ <p>Every image needs alt text that says what it shows, for people who use a screen reader and for the moments when an image does not load.</p>
202
+
203
+ <h2 id="shipping-and-returns">Put shipping and returns where the decision happens</h2>
204
+ <p>Delivery time and the return policy are part of the price. When they hide in the footer, a careful shopper leaves the page to look for them, and some do not come back. Answer each in a sentence next to the button, and link to the full policy.</p>
205
+ <table>
206
+ <caption>Where each answer goes on a product page</caption>
207
+ <thead><tr><th scope="col">The shopper asks</th><th scope="col">Answer it with</th><th scope="col">Where it goes</th></tr></thead>
208
+ <tbody>
209
+ <tr><th scope="row">What is it?</th><td>A title in the shopper's words and one line on what it does</td><td>The first screen</td></tr>
210
+ <tr><th scope="row">What does it cost?</th><td>The price, and both prices when there is a discount</td><td>Next to the main action</td></tr>
211
+ <tr><th scope="row">Will it fit me?</th><td>Sizes, dimensions and a size guide</td><td>Under the options</td></tr>
212
+ <tr><th scope="row">When will it arrive?</th><td>The delivery time to the shopper's country</td><td>Next to the main action</td></tr>
213
+ <tr><th scope="row">Can I send it back?</th><td>The return window, and who pays for the postage</td><td>Next to the main action, and in the FAQ</td></tr>
214
+ <tr><th scope="row">Is it any good?</th><td>Reviews from people who bought it</td><td>After the description</td></tr>
215
+ </tbody>
216
+ </table>
217
+
218
+ <h2 id="reviews">Let buyers speak for the product</h2>
219
+ <p>Reviews answer the last question: are people like me happy with it? Show the overall rating near the title and the reviews themselves after the description, newest first, with the critical ones left in. A page with only five-star reviews reads as edited.</p>
220
+ <div class="gw-callout gw-callout--warning" role="note">
221
+ <p class="gw-callout__label">Warning</p>
222
+ <p>Never write reviews yourself, pay for good ones or copy them from another store. Made-up reviews mislead shoppers, consumer rules in many countries forbid them, and one that is found out makes every other review on the page doubtful.</p>
223
+ </div>
224
+
225
+ <h2 id="check-on-a-phone">Check the page on a phone</h2>
226
+ <p>Open the page on your own phone, on mobile data rather than the office wifi, and buy the product as a stranger would. Note every place where you had to pinch, scroll back or wait.</p>
227
+ <ol>
228
+ <li>Is the price next to the button on the first screen?</li>
229
+ <li>Can you choose a size or a colour with your thumb, without zooming?</li>
230
+ <li>Do the photos load before you lose patience?</li>
231
+ <li>Can you find the return policy without leaving the page?</li>
232
+ </ol>
233
+ <div class="gw-callout gw-callout--tip" role="note">
234
+ <p class="gw-callout__label">Tip</p>
235
+ <p>Ask someone who has never seen the product to find the delivery time and the return window while you watch, without helping. Where they hesitate is where the page needs a clearer answer.</p>
236
+ </div>
237
+
238
+ <h2 id="faq">Frequently asked questions</h2>
239
+ <div class="gw-faq">
240
+ <details class="gw-faq__item">
241
+ <summary>How long should a product description be?</summary>
242
+ <p>Long enough to answer the questions on your list, and no longer. Lead with what the product does for the shopper, then give the details in short paragraphs or a list, so a reader can stop as soon as they have their answer.</p>
243
+ </details>
244
+ <details class="gw-faq__item">
245
+ <summary>Should every variant have its own page?</summary>
246
+ <p>Usually not. One page with the options as choices keeps the reviews and the questions in one place. A page of its own makes sense when a variant is bought for a different reason, or by a different person.</p>
247
+ </details>
248
+ <details class="gw-faq__item">
249
+ <summary>Where does the size guide go?</summary>
250
+ <p>Next to the size choice, as a link that opens the guide without leaving the page. A guide that only lives on a page of its own is one more reason to leave.</p>
251
+ </details>
252
+ </div>
253
+ </div>
254
+ </article>
255
+
256
+ <!-- more from the blog: a post list -->
257
+ <section class="gw-section gw-section--soft" aria-labelledby="more-h">
258
+ <div class="gw-wrap">
259
+ <div class="gw-section__head">
260
+ <p class="gw-label">Blog</p>
261
+ <h2 id="more-h">More from the blog</h2>
262
+ </div>
263
+ <ul class="gw-post-list" role="list">
264
+ <li>
265
+ <article class="gw-card gw-post">
266
+ <div class="gw-card__media"><img src="assets/post-theme.svg" alt="" width="640" height="360" loading="lazy"></div>
267
+ <p class="gw-label">Themes</p>
268
+ <h3 class="gw-post__title"><a href="https://gemboss.ai/blog/how-to-choose-shopify-theme">How to choose a Shopify theme that converts</a></h3>
269
+ <p>A checklist for choosing a theme: speed, mobile, features and fit, from free to premium to AI-built.</p>
270
+ <p class="gw-article-meta"><span><time datetime="2026-08-08">Aug 8, 2026</time></span><span>8 min read</span></p>
271
+ </article>
272
+ </li>
273
+ <li>
274
+ <article class="gw-card gw-post">
275
+ <div class="gw-card__media"><img src="assets/post-headless.svg" alt="" width="640" height="360" loading="lazy"></div>
276
+ <p class="gw-label">Headless</p>
277
+ <h3 class="gw-post__title"><a href="https://gemboss.ai/blog/headless-shopify-vs-liquid">Headless Shopify vs Liquid themes</a></h3>
278
+ <p>The speed, cost and control tradeoffs, and when a Liquid theme is the smarter choice.</p>
279
+ <p class="gw-article-meta"><span><time datetime="2026-08-08">Aug 8, 2026</time></span><span>10 min read</span></p>
280
+ </article>
281
+ </li>
282
+ <li>
283
+ <article class="gw-card gw-post">
284
+ <div class="gw-card__media"><img src="assets/post-voice.svg" alt="" width="640" height="360" loading="lazy"></div>
285
+ <p class="gw-label">Product</p>
286
+ <h3 class="gw-post__title"><a href="https://gemboss.ai/blog/brand-voice-copy">Copy that sounds like your brand</a></h3>
287
+ <p>How GemBoss writes section copy in your brand's captured voice, and writes each language natively instead of translating English.</p>
288
+ <p class="gw-article-meta"><span><time datetime="2026-07-21">Jul 21, 2026</time></span><span>6 min read</span></p>
289
+ </article>
290
+ </li>
291
+ </ul>
292
+ </div>
293
+ </section>
294
+ </main>
295
+
296
+ <footer class="gw-footer">
297
+ <div class="gw-wrap">
298
+ <div class="gw-footer__grid">
299
+ <div class="gw-footer__brand">
300
+ <a class="gw-brand" href="https://gemboss.ai/"><svg class="gw-brand__mark" viewBox="0 0 100 116" aria-hidden="true"><polygon points="26,14 74,14 66,50 34,50" style="fill:var(--gw-accent)"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="currentColor" stroke-width="9" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="currentColor" stroke-width="5.6" stroke-linejoin="round"/></svg><span class="gw-brand__name">GemBoss</span></a>
301
+ <p>The AI Conversion Engine for Shopify. Build a brand-true store, ship it blazing fast, and see what to change to sell more.</p>
302
+ </div>
303
+ <nav class="gw-footer__col" aria-label="Product">
304
+ <h2 class="gw-footer__heading">Product</h2>
305
+ <ul>
306
+ <li><a href="https://gemboss.ai/funnel">Funnel builder</a></li>
307
+ <li><a href="https://gemboss.ai/ai-store-builder">Storefront builder</a></li>
308
+ <li><a href="https://gemboss.ai/gemx">Tests &amp; personalization</a></li>
309
+ <li><a href="https://gemboss.ai/gemoffers">Offers &amp; upsells</a></li>
310
+ <li><a href="https://gemboss.ai/integrations">Integrations</a></li>
311
+ <li><a href="https://gemboss.ai/pricing">Pricing</a></li>
312
+ </ul>
313
+ </nav>
314
+ <nav class="gw-footer__col" aria-label="Use cases">
315
+ <h2 class="gw-footer__heading">Use cases</h2>
316
+ <ul>
317
+ <li><a href="https://gemboss.ai/meta-ads">Meta, Google &amp; TikTok ads</a></li>
318
+ <li><a href="https://gemboss.ai/klaviyo-personalized-landing-pages">Klaviyo landing pages</a></li>
319
+ <li><a href="https://gemboss.ai/affiliate-landing-pages">Affiliate pages</a></li>
320
+ <li><a href="https://gemboss.ai/agent-ready">AI agents &amp; AI search</a></li>
321
+ </ul>
322
+ </nav>
323
+ <nav class="gw-footer__col" aria-label="Resources">
324
+ <h2 class="gw-footer__heading">Resources</h2>
325
+ <ul>
326
+ <li><a href="https://gemboss.ai/audit">Free store audit</a></li>
327
+ <li><a href="https://gemboss.ai/blog">Blog</a></li>
328
+ <li><a href="https://gemboss.ai/docs">Docs</a></li>
329
+ <li><a href="https://gemboss.ai/mcp">MCP for AI agents</a></li>
330
+ <li><a href="https://feedback.gemboss.ai/changelog" rel="noopener">Changelog</a></li>
331
+ </ul>
332
+ </nav>
333
+ <nav class="gw-footer__col" aria-label="Company">
334
+ <h2 class="gw-footer__heading">Company</h2>
335
+ <ul>
336
+ <li><a href="https://gemboss.ai/company">About</a></li>
337
+ <li><a href="https://gemboss.ai/careers">Careers</a></li>
338
+ <li><a href="https://gemboss.ai/partners">Partners</a></li>
339
+ <li><a href="https://gemboss.ai/contact">Contact</a></li>
340
+ </ul>
341
+ </nav>
342
+ </div>
343
+ <div class="gw-footer__bottom">
344
+ <span>© 2026 GemBoss. All rights reserved.</span>
345
+ <ul aria-label="Legal">
346
+ <li><a href="https://gemboss.ai/privacy">Privacy</a></li>
347
+ <li><a href="https://gemboss.ai/terms">Terms</a></li>
348
+ </ul>
349
+ <ul aria-label="Social">
350
+ <li><a href="https://www.linkedin.com/company/gempages" rel="noopener">LinkedIn</a></li>
351
+ <li><a href="https://x.com/gempages" rel="noopener">X</a></li>
352
+ </ul>
353
+ </div>
354
+ </div>
355
+ </footer>
356
+
357
+ <script src="../js/website.js" defer></script>
358
+ </body>
359
+ </html>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 675" width="1200" height="675" role="img" aria-label="A product page on a computer and on a phone"><title>A product page on a computer and on a phone</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#7c8af7"/><stop offset="1" stop-color="#43b0ff"/></linearGradient></defs><rect width="1200" height="675" fill="#f2f3f5"/><rect x="120" y="96" width="760" height="480" rx="16" fill="#ffffff" stroke="#e5e7ea" stroke-width="2"/><path d="M120 152h760" stroke="#e5e7ea" stroke-width="2"/><circle cx="152" cy="124" r="7" fill="#d5d8dd"/><circle cx="176" cy="124" r="7" fill="#d5d8dd"/><circle cx="200" cy="124" r="7" fill="#d5d8dd"/><rect x="160" y="192" width="340" height="344" rx="12" fill="url(#g)"/><circle cx="330" cy="352" r="72" fill="#ffffff" opacity=".35"/><rect x="536" y="200" width="300" height="22" rx="6" fill="#1b1c1e"/><rect x="536" y="236" width="220" height="22" rx="6" fill="#1b1c1e"/><rect x="536" y="284" width="120" height="16" rx="5" fill="#d5d8dd"/><rect x="536" y="324" width="300" height="12" rx="4" fill="#e5e7ea"/><rect x="536" y="346" width="280" height="12" rx="4" fill="#e5e7ea"/><rect x="536" y="368" width="240" height="12" rx="4" fill="#e5e7ea"/><rect x="536" y="412" width="300" height="48" rx="8" fill="#1b1c1e"/><rect x="636" y="430" width="100" height="12" rx="4" fill="#ffffff"/><rect x="536" y="476" width="300" height="40" rx="8" fill="#ffffff" stroke="#d5d8dd" stroke-width="2"/><rect x="840" y="168" width="240" height="440" rx="32" fill="#1b1c1e"/><rect x="852" y="180" width="216" height="416" rx="22" fill="#ffffff"/><rect x="868" y="208" width="184" height="150" rx="10" fill="url(#g)"/><rect x="868" y="376" width="160" height="14" rx="5" fill="#1b1c1e"/><rect x="868" y="400" width="90" height="12" rx="4" fill="#d5d8dd"/><rect x="868" y="428" width="184" height="9" rx="4" fill="#e5e7ea"/><rect x="868" y="445" width="160" height="9" rx="4" fill="#e5e7ea"/><rect x="868" y="536" width="184" height="40" rx="8" fill="#1b1c1e"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48" role="img" aria-label="GemBoss"><title>GemBoss</title><rect width="48" height="48" fill="#1b1c1e"/><g transform="translate(9 7) scale(.3)"><polygon points="26,14 74,14 66,50 34,50" fill="#5661f5"/><path d="M26,14 74,14 96,50 50,110 4,50Z" fill="none" stroke="#ffffff" stroke-width="9" stroke-linejoin="round"/><path d="M4,50H96M26,14 34,50M74,14 66,50M34,50 50,110M66,50 50,110" fill="none" stroke="#ffffff" stroke-width="5.6" stroke-linejoin="round"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48"><rect width="48" height="48" fill="#e5e7ea"/><circle cx="24" cy="19" r="8" fill="#9a9ca6"/><path d="M9 44c1.6-8.4 7.8-13 15-13s13.4 4.6 15 13z" fill="#9a9ca6"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="Two storefront set-ups compared"><title>Two storefront set-ups compared</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#e3f1df"/><stop offset="1" stop-color="#e9ecff"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="72" y="72" width="236" height="216" rx="12" fill="#ffffff"/><rect x="332" y="72" width="236" height="216" rx="12" fill="#ffffff"/><rect x="96" y="100" width="140" height="14" rx="5" fill="#1b1c1e"/><rect x="356" y="100" width="140" height="14" rx="5" fill="#1b1c1e"/><rect x="96" y="136" width="180" height="10" rx="4" fill="#d5d8dd"/><rect x="96" y="162" width="156" height="10" rx="4" fill="#d5d8dd"/><rect x="96" y="188" width="132" height="10" rx="4" fill="#d5d8dd"/><rect x="96" y="214" width="108" height="10" rx="4" fill="#d5d8dd"/><rect x="96" y="240" width="84" height="10" rx="4" fill="#d5d8dd"/><rect x="356" y="136" width="180" height="10" rx="4" fill="#d5d8dd"/><rect x="356" y="162" width="156" height="10" rx="4" fill="#d5d8dd"/><rect x="356" y="188" width="132" height="10" rx="4" fill="#d5d8dd"/><rect x="356" y="214" width="108" height="10" rx="4" fill="#d5d8dd"/><rect x="356" y="240" width="84" height="10" rx="4" fill="#d5d8dd"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="Lines that ease in and out"><title>Lines that ease in and out</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#e9ecff"/><stop offset="1" stop-color="#ffe9e5"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="96" y="64" width="448" height="232" rx="12" fill="#ffffff"/><path d="M128 220c48-64 96-64 144 0s96 64 144 0 64-48 96-32" fill="none" stroke="#e9ecff" stroke-width="10" stroke-linecap="round"/><path d="M128 250c48-40 96-40 144 0s96 40 144 0" fill="none" stroke="#d5d8dd" stroke-width="6" stroke-linecap="round"/><rect x="128" y="96" width="160" height="16" rx="5" fill="#1b1c1e"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="A store page on a phone"><title>A store page on a phone</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#efe9ff"/><stop offset="1" stop-color="#e3f1df"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="232" y="36" width="176" height="300" rx="26" fill="#1b1c1e"/><rect x="242" y="46" width="156" height="280" rx="18" fill="#ffffff"/><rect x="256" y="66" width="128" height="100" rx="8" fill="#f2f3f5"/><rect x="256" y="180" width="110" height="12" rx="4" fill="#1b1c1e"/><rect x="256" y="200" width="80" height="10" rx="4" fill="#d5d8dd"/><rect x="256" y="280" width="128" height="30" rx="7" fill="#1b1c1e"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="A bar chart that rises"><title>A bar chart that rises</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#d9f0ff"/><stop offset="1" stop-color="#e3f1df"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="96" y="64" width="448" height="232" rx="12" fill="#ffffff"/><rect x="136" y="188" width="36" height="60" rx="6" fill="#d9f0ff"/><rect x="200" y="152" width="36" height="96" rx="6" fill="#d9f0ff"/><rect x="264" y="176" width="36" height="72" rx="6" fill="#d9f0ff"/><rect x="328" y="116" width="36" height="132" rx="6" fill="#d9f0ff"/><rect x="392" y="140" width="36" height="108" rx="6" fill="#d9f0ff"/><rect x="456" y="88" width="36" height="160" rx="6" fill="#d9f0ff"/><path d="M128 256h384" stroke="#d5d8dd" stroke-width="2"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="Three theme previews side by side"><title>Three theme previews side by side</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#e9ecff"/><stop offset="1" stop-color="#d9f0ff"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="96" y="64" width="448" height="232" rx="12" fill="#ffffff"/><rect x="120" y="96" width="120" height="96" rx="8" fill="#f2f3f5"/><rect x="120" y="208" width="96" height="12" rx="4" fill="#1b1c1e"/><rect x="120" y="230" width="72" height="10" rx="4" fill="#d5d8dd"/><rect x="260" y="96" width="120" height="96" rx="8" fill="#f2f3f5"/><rect x="260" y="208" width="96" height="12" rx="4" fill="#1b1c1e"/><rect x="260" y="230" width="72" height="10" rx="4" fill="#d5d8dd"/><rect x="400" y="96" width="120" height="96" rx="8" fill="#f2f3f5"/><rect x="400" y="208" width="96" height="12" rx="4" fill="#1b1c1e"/><rect x="400" y="230" width="72" height="10" rx="4" fill="#d5d8dd"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 360" width="640" height="360" role="img" aria-label="A page of written copy"><title>A page of written copy</title><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#ffe9e5"/><stop offset="1" stop-color="#efe9ff"/></linearGradient></defs><rect width="640" height="360" fill="url(#g)"/><rect x="120" y="56" width="400" height="248" rx="12" fill="#ffffff"/><rect x="152" y="92" width="220" height="18" rx="6" fill="#1b1c1e"/><rect x="152" y="132" width="336" height="10" rx="4" fill="#e5e7ea"/><rect x="152" y="158" width="288" height="10" rx="4" fill="#e5e7ea"/><rect x="152" y="184" width="240" height="10" rx="4" fill="#e5e7ea"/><rect x="152" y="210" width="336" height="10" rx="4" fill="#e5e7ea"/><rect x="152" y="236" width="288" height="10" rx="4" fill="#e5e7ea"/><rect x="152" y="262" width="240" height="10" rx="4" fill="#e5e7ea"/></svg>