-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
472 lines (431 loc) · 20.2 KB
/
Copy pathindex.html
File metadata and controls
472 lines (431 loc) · 20.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ReplyPilot - AI Review Replies for Google Business Profile</title>
<meta
name="description"
content="ReplyPilot helps local businesses reply to Google reviews fast, consistently, and in their brand voice-with safe guardrails. Join the waitlist for early access + founder pricing."
/>
<meta property="og:title" content="ReplyPilot - AI review replies with guardrails" />
<meta
property="og:description"
content="Auto-handle the praise. Escalate the pain. Join the waitlist for early access + founder pricing."
/>
<meta property="og:type" content="website" />
<meta name="theme-color" content="#0b1220" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="./styles.css" />
<!-- Google Analytics / GA4 - Insert Measurement ID into GA_MEASUREMENT_ID below -->
<!-- If you prefer Plausible, replace this block with the Plausible script and set data-domain accordingly. -->
<script>
(function(){
// Prefer setting GA measurement ID via window.__RP_CONFIG__ or environment during deploy.
// Also supports a <meta name="ga-measurement-id" content="G-XXXX"> override in the page head.
var meta = document.querySelector('meta[name="ga-measurement-id"]');
var GA_MEASUREMENT_ID = (window.__RP_CONFIG__ && window.__RP_CONFIG__.ga) || (meta && meta.content) || 'GA_MEASUREMENT_ID_PLACEHOLDER';
if (GA_MEASUREMENT_ID && GA_MEASUREMENT_ID.indexOf('G-')===0) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
var s1 = document.createElement('script');
s1.async = true;
s1.src = 'https://www.googletagmanager.com/gtag/js?id=' + GA_MEASUREMENT_ID;
document.head.appendChild(s1);
s1.onload = function(){
gtag('config', GA_MEASUREMENT_ID, { 'anonymize_ip': true });
};
} else {
console.warn('ReplyPilot: GA_MEASUREMENT_ID not set. Pageview tracking disabled.');
}
})();
</script>
</head>
<body>
<header class="topbar">
<div class="container topbar__inner">
<div class="brand">
<div class="brand__mark" aria-hidden="true">RP</div>
<div class="brand__text">
<div class="brand__name">ReplyPilot</div>
<div class="brand__tag">AI review replies with guardrails</div>
</div>
</div>
<nav class="topbar__nav" aria-label="Primary">
<a href="#how" class="navlink">How it works</a>
<a href="#proof" class="navlink">Proof</a>
<a href="#pricing" class="navlink">Pricing</a>
<a href="#faq" class="navlink">FAQ</a>
<a href="#waitlist" class="btn btn--primary">Join waitlist</a>
</nav>
</div>
</header>
<main>
<section class="hero">
<div class="container hero__grid">
<div class="hero__copy">
<p class="eyebrow" id="hero_eyebrow">Turn reviews into more calls (without the busywork).</p>
<h1 id="hero_h1">AI draft replies to Google reviews - in your voice, with guardrails</h1>
<ul class="bullets" id="hero_bullets">
<li id="hero_b1"><strong>Reply in 60 seconds:</strong> 4-5★ drafts (or auto-reply if you opt in)</li>
<li id="hero_b2"><strong>Handle 1-3★ safely:</strong> escalation + ready-to-send response + fix checklist</li>
<li id="hero_b3"><strong>Consistent brand voice:</strong> across staff and locations (no robotic tone)</li>
</ul>
<div class="cta-row">
<a class="btn btn--primary" id="hero_cta_primary" href="#waitlist">Get early access</a>
<a class="btn btn--ghost" id="hero_cta_secondary" href="#how">See how it works</a>
</div>
<p class="subtext">Founder-friendly early access. No spam. Unsubscribe anytime.</p>
</div>
<aside class="hero__card" aria-label="Waitlist card">
<div class="card">
<div class="card__header">
<h2 class="card__title">Join the waitlist</h2>
<p class="card__subtitle">Get early access + founder pricing for 12 months.</p>
</div>
<form id="waitlist" class="form" autocomplete="on" method="POST">
<label class="field">
<span>Name</span>
<input name="name" type="text" placeholder="Jane" />
</label>
<label class="field">
<span>Email <em>(required)</em></span>
<input name="email" type="email" required placeholder="jane@company.com" />
</label>
<label class="field">
<span>Business website</span>
<input name="website" type="url" placeholder="https://example.com" />
</label>
<div class="fieldrow">
<label class="field">
<span># locations</span>
<input name="locations" inputmode="numeric" pattern="[0-9]*" placeholder="1" />
</label>
<label class="field">
<span>Reviews / month</span>
<input name="reviews_per_month" inputmode="numeric" pattern="[0-9]*" placeholder="20" />
</label>
</div>
<label class="field">
<span>Preference</span>
<select name="mode">
<option value="draft_only">Draft-only (human approval)</option>
<option value="auto_reply_positive">Auto-reply 4-5★, escalate ≤3★</option>
<option value="unsure">Not sure yet</option>
</select>
</label>
<label class="field">
<span>Google Business Profile link(s) (optional)</span>
<textarea
name="gbp_links"
rows="3"
placeholder="Paste one or multiple links"
></textarea>
</label>
<input type="hidden" name="source" value="replypilot-waitlist" />
<input type="hidden" name="page" value="/" />
<!-- Attribution (populated by app.js from URL + localStorage) -->
<input type="hidden" name="utm_source" value="" />
<input type="hidden" name="utm_medium" value="" />
<input type="hidden" name="utm_campaign" value="" />
<input type="hidden" name="utm_content" value="" />
<input type="hidden" name="utm_term" value="" />
<input type="hidden" name="ref" value="" />
<input type="hidden" name="landing" value="" />
<input type="hidden" name="redirect_to" value="https://afunls.github.io/replypilot-waitlist/thank-you.html" />
<button class="btn btn--primary btn--full" type="submit">
Join waitlist
</button>
<p class="fineprint">
By submitting, you agree we can email you about early access. We won't sell your data.
<br />
Note: this is a no-login waitlist (for ReplyPilot). Submitting creates a private internal signup record (currently stored as a GitHub Issue).
</p>
<div class="form__status" role="status" aria-live="polite"></div>
</form>
</div>
</aside>
</div>
</section>
<section class="section" id="proof">
<div class="container">
<h2>Built for trust, not speed-to-regret</h2>
<div class="grid-2">
<div class="panel">
<h3 style="margin:0 0 10px">How we think about AI + your reputation</h3>
<ul class="bullets" style="margin-top:0">
<li><strong>Guardrails first:</strong> default is draft-only. Auto-post is opt-in and limited to safe rules (4–5★).</li>
<li><strong>Every change is measurable:</strong> we track inputs → outputs → outcomes, then iterate (no "ship and pray").</li>
<li><strong>Fast iteration loop:</strong> new messaging / rules / UX changes ship in days, not quarters.</li>
</ul>
</div>
<div class="panel panel--quote">
<p class="quote">
Your reviews are your reputation.
<strong>Safe defaults, fast workflows, and full control.</strong>
</p>
<p class="quote__sub">Join the waitlist for early access + founder pricing.</p>
<div class="cta-row">
<a class="btn btn--primary" href="#waitlist">Join the waitlist</a>
<a class="btn btn--ghost" href="#demo">See the workflow</a>
</div>
</div>
</div>
</div>
</section>
<section class="section" id="problem">
<div class="container">
<h2>The problem (what you're already feeling)</h2>
<div class="grid-2">
<div class="panel">
<ul class="bullets">
<li>Replies matter, but it's a time sink.</li>
<li>When you do reply, it's canned or inconsistent.</li>
<li>Negative reviews need a human ASAP - but you notice them late.</li>
<li>You don't want an AI to post something risky on your behalf.</li>
</ul>
</div>
<div class="panel panel--quote">
<p class="quote">
<strong>Most reviews are safe to handle automatically.</strong><br />
The risky ones must escalate.
</p>
<p class="quote__sub">ReplyPilot is built around this guardrail.</p>
</div>
</div>
</div>
</section>
<section class="section" id="how">
<div class="container">
<h2>How ReplyPilot works (v1)</h2>
<ol class="steps">
<li>
<h3>Connect your Google Business Profile</h3>
<p>Connect once. ReplyPilot watches for new reviews.</p>
</li>
<li>
<h3>Apply "Star Rules" (guardrails you can trust)</h3>
<p>
4-5★: auto-reply (or auto-draft). 3★ and below: draft-only + escalation.
</p>
</li>
<li>
<h3>Brand voice, not generic AI</h3>
<p>
Use your website + existing replies + do/don't rules (forbidden phrases, promo policy).
</p>
</li>
<li>
<h3>Crisis mode for bad reviews</h3>
<p>
Alerts + 3 suggested replies + a short internal checklist (refund? replacement? outreach?).
</p>
</li>
</ol>
</div>
</section>
<section class="section" id="for">
<div class="container">
<h2>Who it's for</h2>
<div class="grid-2">
<div class="panel">
<h3>Great fit</h3>
<ul class="bullets">
<li>Local businesses (dentists, medspas, gyms, home services, restaurants)</li>
<li>Shopify brands with a physical presence</li>
<li>Multi-location operators who want HQ voice + local execution</li>
</ul>
</div>
<div class="panel">
<h3>Not ideal</h3>
<ul class="bullets">
<li>Need an enterprise suite across 8 review sites</li>
<li>Heavy procurement/security paperwork before a trial</li>
</ul>
</div>
</div>
</div>
</section>
<section class="section" id="pricing">
<div class="container">
<h2>Pricing (founder-friendly, transparent)</h2>
<p class="section__lead">Pricing is per location (Google Business Profile is per location).</p>
<div class="pricing">
<article class="pricecard">
<div class="pricecard__top">
<h3>Starter</h3>
<p class="price">$19<span>/mo</span> <small>per location</small></p>
<p class="muted">Draft replies only (no auto-post).</p>
</div>
<ul class="checklist">
<li>Draft replies</li>
<li>1 user</li>
<li>Up to 50 generations / month</li>
<li>Basic brand voice settings</li>
</ul>
</article>
<article class="pricecard pricecard--featured" aria-label="Pro plan">
<div class="pricecard__badge">Most wanted</div>
<div class="pricecard__top">
<h3>Pro</h3>
<p class="price">$49<span>/mo</span> <small>per location</small></p>
<p class="muted">Safe automation you can trust.</p>
</div>
<ul class="checklist">
<li><strong>Auto-reply rules for 4-5★</strong></li>
<li>≤3★ escalation alerts</li>
<li>Up to 300 generations / month</li>
<li>3 users</li>
<li>Forbidden phrases + promo rules</li>
</ul>
</article>
<article class="pricecard">
<div class="pricecard__top">
<h3>Agency</h3>
<p class="price">$199<span>/mo</span> <small>up to 10 locations</small></p>
<p class="muted">For agencies managing multiple clients.</p>
</div>
<ul class="checklist">
<li>10 locations included</li>
<li>Client workspaces (separate brand voices)</li>
<li>White-label weekly report export</li>
<li>Priority onboarding</li>
</ul>
</article>
</div>
<div class="callout">
<p>
<strong>Early access deal:</strong> waitlist members get founder pricing for the first 12 months.
</p>
<div class="cta-row">
<a class="btn btn--primary" href="#waitlist">Join the waitlist</a>
<!-- Calendar link placeholder: replace with your real booking link (Cal.com/Calendly) -->
<a class="btn btn--ghost" href="https://cal.com/REPLACE_ME">Book a call</a>
</div>
<p class="fineprint" style="margin:10px 0 0">
Prefer email? Send your website + # locations to
<a href="mailto:merceraline261@gmail.com?subject=ReplyPilot%20call%20request">merceraline261@gmail.com</a>.
</p>
</div>
</div>
</section>
<section class="section" id="demo">
<div class="container">
<div class="demo">
<div class="demo__copy">
<h2>Demo (what you'll actually get)</h2>
<p class="section__lead">
ReplyPilot is built to be <strong>fast</strong> for 4-5★ and <strong>safe</strong> for ≤3★.
Here's the v1 workflow we're shipping.
</p>
<ul class="bullets demo__bullets">
<li><strong>One inbox</strong> across locations: see new reviews, status, and suggested replies</li>
<li><strong>3 reply variants</strong> in your brand voice (short / standard / formal)</li>
<li><strong>Escalation mode</strong> for bad reviews: ready-to-send draft + internal checklist</li>
</ul>
<div class="panel demo__pricing">
<p class="muted" style="margin:0">
<strong>Pricing hypothesis (may change):</strong>
<span>Pro at <strong>$49/mo per location</strong> is the default plan.</span>
<span class="muted">Starter ($19) for draft-only. Agency ($199) for up to 10 locations.</span>
</p>
</div>
<div class="cta-row">
<a class="btn btn--primary" href="#waitlist">Join the waitlist</a>
<!-- Calendar link placeholder: replace with your real booking link (Cal.com/Calendly) -->
<a class="btn btn--ghost" href="https://cal.com/REPLACE_ME">Book a call</a>
</div>
<p class="subtext" style="margin-bottom:0">
Want a live walkthrough? Email
<a href="mailto:merceraline261@gmail.com?subject=ReplyPilot%20demo%20request">merceraline261@gmail.com</a>
with your website + # locations.
</p>
</div>
<div class="demo__shots" aria-label="Product screenshots">
<figure class="shot">
<img src="./assets/screens/inbox.svg" alt="ReplyPilot review inbox mock screenshot" loading="lazy" />
<figcaption>Review inbox (multi-location)</figcaption>
</figure>
<figure class="shot">
<img src="./assets/screens/draft.svg" alt="Draft reply with variants mock screenshot" loading="lazy" />
<figcaption>Draft + variants (brand voice)</figcaption>
</figure>
<figure class="shot">
<img src="./assets/screens/escalation.svg" alt="Escalation alert mock screenshot" loading="lazy" />
<figcaption>Escalate ≤3★ (safe workflow)</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section class="section" id="faq">
<div class="container">
<h2>FAQ</h2>
<div class="faq">
<details>
<summary>Does ReplyPilot auto-post replies?</summary>
<p>
Only if you turn it on - and only for reviews that match your safe rules (typically 4-5★).
Negative reviews default to draft-only + escalation.
</p>
</details>
<details>
<summary>What if the AI writes something off-brand or risky?</summary>
<p>
You control tone, max length, forbidden phrases, and promo/discount policy. You can keep
everything in draft-only mode.
</p>
</details>
<details>
<summary>Is this for Google only?</summary>
<p>
V1 focuses on Google Business Profile because it's where most SMB review volume lives.
Other platforms may come later.
</p>
</details>
<details>
<summary>Can I use this for multiple locations?</summary>
<p>Yes. Pricing is per location and the inbox supports multi-location views.</p>
</details>
<details>
<summary>How long does setup take?</summary>
<p>Target: 10 minutes.</p>
</details>
<details>
<summary>Is there a free trial?</summary>
<p>
For early access, we'll offer a short trial (or a "first month refundable") depending on
onboarding load.
</p>
</details>
</div>
</div>
</section>
<footer class="footer">
<div class="container footer__inner">
<div>
<div class="brand brand--small">
<div class="brand__mark" aria-hidden="true">RP</div>
<div class="brand__text">
<div class="brand__name">ReplyPilot</div>
<div class="brand__tag">AI review replies with guardrails</div>
</div>
</div>
<p class="muted">© <span id="year"></span> ReplyPilot. All rights reserved.</p>
</div>
<div class="footer__links">
<a href="#waitlist">Waitlist</a>
<a href="mailto:merceraline261@gmail.com">Contact</a>
</div>
</div>
</footer>
</main>
<script src="./app.js"></script>
</body>
</html>