Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
803 lines (773 loc) · 71.3 KB
/
Copy pathindex.html
File metadata and controls
803 lines (773 loc) · 71.3 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
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SupportGenius · Support that answers, and routes what it can't</title>
<meta name="description" content="SupportGenius is a planned AI support agent. It would answer from your docs, tickets and files, by text or voice, and turn what it cannot answer into a ticket for support, a lead for sales, or a GitHub issue with reproduction steps for engineering. In design; nothing is built yet.">
<link rel="canonical" href="https://supportgeni.us/">
<meta name="theme-color" content="#0a0c10">
<meta name="color-scheme" content="dark">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta property="og:type" content="website">
<meta property="og:site_name" content="SupportGenius">
<meta property="og:url" content="https://supportgeni.us/">
<meta property="og:title" content="SupportGenius · Support that answers, and routes what it can't">
<meta property="og:description" content="A planned AI support agent: answers from your docs, and files what it can't answer where your team already works. In design.">
<meta property="og:image" content="https://supportgeni.us/assets/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:type" content="image/png">
<meta property="og:image:alt" content="SupportGenius, in design and not built yet: Support that answers. When it can't, it routes the issue to the right people.">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://supportgeni.us/assets/og.png">
<meta name="twitter:image:alt" content="SupportGenius, in design and not built yet: Support that answers. When it can't, it routes the issue to the right people.">
<meta name="twitter:title" content="SupportGenius · Support that answers, and routes what it can't">
<meta name="twitter:description" content="A planned AI support agent: answers from your docs, and files what it can't answer where your team already works. In design.">
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/assets/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="preload" href="/assets/fonts/geist-v1.8.1-latin.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/supportgenius.css">
<script src="/assets/supportgenius.js" defer></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://supportgeni.us/#organization",
"name": "SupportGenius",
"url": "https://supportgeni.us/",
"email": "hello@supportgeni.us",
"sameAs": ["https://github.com/SupportGenius"],
"parentOrganization": { "@type": "Organization", "name": "Factory Zero", "url": "https://factory0.ventures" }
},
{
"@type": "WebSite",
"@id": "https://supportgeni.us/#website",
"url": "https://supportgeni.us/",
"name": "SupportGenius",
"description": "A planned AI support agent that answers from your docs and routes what it cannot answer.",
"inLanguage": "en",
"publisher": { "@id": "https://supportgeni.us/#organization" }
},
{
"@type": "SoftwareApplication",
"@id": "https://supportgeni.us/#app",
"name": "SupportGenius",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web, iOS, Android",
"url": "https://supportgeni.us/",
"publisher": { "@id": "https://supportgeni.us/#organization" },
"releaseNotes": "In design. Not released; no part of this product is available to use yet, and no price is set."
},
{
"@type": "WebPage",
"@id": "https://supportgeni.us/#webpage",
"url": "https://supportgeni.us/",
"name": "SupportGenius · Support that answers, and routes what it can't",
"isPartOf": { "@id": "https://supportgeni.us/#website" },
"about": { "@id": "https://supportgeni.us/#app" }
}
]
}
</script>
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<!-- icon sprite: feature icons, drawn at 24×24 with a 1.75 stroke -->
<svg width="0" height="0" style="position:absolute" aria-hidden="true" focusable="false">
<symbol id="i-cite" viewBox="0 0 24 24"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></symbol>
<symbol id="i-voice" viewBox="0 0 24 24"><path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="22"/></symbol>
<symbol id="i-phone" viewBox="0 0 24 24"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></symbol>
<symbol id="i-issue" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="1.5"/></symbol>
<symbol id="i-dupe" viewBox="0 0 24 24"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M6 21V9a9 9 0 0 0 9 9"/></symbol>
<symbol id="i-gauge" viewBox="0 0 24 24"><path d="m12 14 4-4"/><path d="M3.34 19a10 10 0 1 1 17.32 0"/></symbol>
<symbol id="i-person" viewBox="0 0 24 24"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></symbol>
<symbol id="i-lang" viewBox="0 0 24 24"><path d="m5 8 6 6"/><path d="m4 14 6-6 2-3"/><path d="M2 5h12"/><path d="M7 2h1"/><path d="m22 22-5-10-5 10"/><path d="M14 18h6"/></symbol>
<symbol id="i-chart" viewBox="0 0 24 24"><path d="M3 3v18h18"/><path d="M18 17V9"/><path d="M13 17V5"/><path d="M8 17v-3"/></symbol>
<symbol id="i-device" viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2"/><circle cx="12" cy="12" r="3"/><path d="M12 18h.01"/></symbol>
<symbol id="i-timer" viewBox="0 0 24 24"><line x1="10" y1="2" x2="14" y2="2"/><line x1="12" y1="14" x2="15" y2="11"/><circle cx="12" cy="14" r="8"/></symbol>
<symbol id="i-bell" viewBox="0 0 24 24"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></symbol>
<symbol id="i-bolt" viewBox="0 0 24 24"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/></symbol>
<symbol id="i-agent" viewBox="0 0 24 24"><path d="M12 8V4H8"/><rect x="4" y="8" width="16" height="12" rx="2"/><path d="M2 14h2"/><path d="M20 14h2"/><path d="M15 13v2"/><path d="M9 13v2"/></symbol>
<!-- brand marks: Simple Icons 16.31.0 (CC0-1.0), drawn in one colour. Trademarks of their owners; see COPY.md -->
<symbol id="b-github" viewBox="0 0 24 24"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></symbol>
<symbol id="b-jira" viewBox="0 0 24 24"><path d="M11.571 11.513H0a5.218 5.218 0 0 0 5.232 5.215h2.13v2.057A5.215 5.215 0 0 0 12.575 24V12.518a1.005 1.005 0 0 0-1.005-1.005zm5.723-5.756H5.736a5.215 5.215 0 0 0 5.215 5.214h2.129v2.058a5.218 5.218 0 0 0 5.215 5.214V6.758a1.001 1.001 0 0 0-1.001-1.001zM23.013 0H11.455a5.215 5.215 0 0 0 5.215 5.215h2.129v2.057A5.215 5.215 0 0 0 24 12.483V1.005A1.001 1.001 0 0 0 23.013 0Z"/></symbol>
<symbol id="b-linear" viewBox="0 0 24 24"><path d="M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"/></symbol>
<symbol id="b-zendesk" viewBox="0 0 24 24"><path d="M12.914 2.904V16.29L24 2.905H12.914zM0 2.906C0 5.966 2.483 8.45 5.543 8.45s5.542-2.484 5.543-5.544H0zm11.086 4.807L0 21.096h11.086V7.713zm7.37 7.84c-3.063 0-5.542 2.48-5.542 5.543H24c0-3.06-2.48-5.543-5.543-5.543z"/></symbol>
<!-- more brand marks for the integrations grid: Simple Icons 16.31.0 (CC0-1.0). Android robot: CC BY 3.0, Google (credited in the footer) -->
<symbol id="b-intercom" viewBox="0 0 24 24"><path d="M21 0H3C1.343 0 0 1.343 0 3v18c0 1.658 1.343 3 3 3h18c1.658 0 3-1.342 3-3V3c0-1.657-1.342-3-3-3zm-5.801 4.399c0-.44.36-.8.802-.8.44 0 .8.36.8.8v10.688c0 .442-.36.801-.8.801-.443 0-.802-.359-.802-.801V4.399zM11.2 3.994c0-.44.357-.799.8-.799s.8.359.8.799v11.602c0 .44-.357.8-.8.8s-.8-.36-.8-.8V3.994zm-4 .405c0-.44.359-.8.799-.8.443 0 .802.36.802.8v10.688c0 .442-.36.801-.802.801-.44 0-.799-.359-.799-.801V4.399zM3.199 6c0-.442.36-.8.802-.8.44 0 .799.358.799.8v7.195c0 .441-.359.8-.799.8-.443 0-.802-.36-.802-.8V6zM20.52 18.202c-.123.105-3.086 2.593-8.52 2.593-5.433 0-8.397-2.486-8.521-2.593-.335-.288-.375-.792-.086-1.128.285-.334.79-.375 1.125-.09.047.041 2.693 2.211 7.481 2.211 4.848 0 7.456-2.186 7.479-2.207.334-.289.839-.25 1.128.086.289.336.25.84-.086 1.128zm.281-5.007c0 .441-.36.8-.801.8-.441 0-.801-.36-.801-.8V6c0-.442.361-.8.801-.8.441 0 .801.357.801.8v7.195z"/></symbol>
<symbol id="b-hubspot" viewBox="0 0 24 24"><path d="M18.164 7.93V5.084a2.198 2.198 0 001.267-1.978v-.067A2.2 2.2 0 0017.238.845h-.067a2.2 2.2 0 00-2.193 2.193v.067a2.196 2.196 0 001.252 1.973l.013.006v2.852a6.22 6.22 0 00-2.969 1.31l.012-.01-7.828-6.095A2.497 2.497 0 104.3 4.656l-.012.006 7.697 5.991a6.176 6.176 0 00-1.038 3.446c0 1.343.425 2.588 1.147 3.607l-.013-.02-2.342 2.343a1.968 1.968 0 00-.58-.095h-.002a2.033 2.033 0 102.033 2.033 1.978 1.978 0 00-.1-.595l.005.014 2.317-2.317a6.247 6.247 0 104.782-11.134l-.036-.005zm-.964 9.378a3.206 3.206 0 113.215-3.207v.002a3.206 3.206 0 01-3.207 3.207z"/></symbol>
<symbol id="b-modelcontextprotocol" viewBox="0 0 24 24"><path d="M13.85 0a4.16 4.16 0 0 0-2.95 1.217L1.456 10.66a.835.835 0 0 0 0 1.18.835.835 0 0 0 1.18 0l9.442-9.442a2.49 2.49 0 0 1 3.541 0 2.49 2.49 0 0 1 0 3.541L8.59 12.97l-.1.1a.835.835 0 0 0 0 1.18.835.835 0 0 0 1.18 0l.1-.098 7.03-7.034a2.49 2.49 0 0 1 3.542 0l.049.05a2.49 2.49 0 0 1 0 3.54l-8.54 8.54a1.96 1.96 0 0 0 0 2.755l1.753 1.753a.835.835 0 0 0 1.18 0 .835.835 0 0 0 0-1.18l-1.753-1.753a.266.266 0 0 1 0-.394l8.54-8.54a4.185 4.185 0 0 0 0-5.9l-.05-.05a4.16 4.16 0 0 0-2.95-1.218c-.2 0-.401.02-.6.048a4.17 4.17 0 0 0-1.17-3.552A4.16 4.16 0 0 0 13.85 0m0 3.333a.84.84 0 0 0-.59.245L6.275 10.56a4.186 4.186 0 0 0 0 5.902 4.186 4.186 0 0 0 5.902 0L19.16 9.48a.835.835 0 0 0 0-1.18.835.835 0 0 0-1.18 0l-6.985 6.984a2.49 2.49 0 0 1-3.54 0 2.49 2.49 0 0 1 0-3.54l6.983-6.985a.835.835 0 0 0 0-1.18.84.84 0 0 0-.59-.245"/></symbol>
<symbol id="b-android" viewBox="0 0 24 24"><path d="M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z"/></symbol>
<!-- line icons for cards whose brand does not allow its logo yet, or has none: Lucide 1.47.0 (ISC) -->
<symbol id="i-smartphone" viewBox="0 0 24 24"><rect width="14" height="20" x="5" y="2" rx="2" ry="2" /><path d="M12 18h.01" /></symbol>
<symbol id="i-webhook" viewBox="0 0 24 24"><path d="M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2" /><path d="m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06" /><path d="m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8" /></symbol>
<symbol id="i-headset" viewBox="0 0 24 24"><path d="M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z" /><path d="M21 16v2a4 4 0 0 1-4 4h-5" /></symbol>
<symbol id="i-messages-square" viewBox="0 0 24 24"><path d="M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z" /><path d="M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1" /></symbol>
<!-- the SupportGenius mark, one colour, for the built-in ticketing card -->
<symbol id="i-sg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9.5" pathLength="64" stroke-dasharray="3 2.33 3 2.33 3 2.33 3 2.33 3 2.33 3 2.33 3 2.33 3 2.33 3 2.33 0 16" transform="rotate(-45 12 12)"/><circle cx="12" cy="12" r="5" pathLength="100" stroke-dasharray="75 25" transform="rotate(135 12 12)"/><circle cx="12" cy="12" r="1.6" fill="currentColor" stroke="none"/></symbol>
<!-- Salesforce is not in Simple Icons and restricts its logo: a generic cloud, not its mark -->
<symbol id="i-cloud" viewBox="0 0 24 24"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></symbol>
</svg>
<p class="banner">
<strong>In design. The waitlist is the only thing here that works</strong>: no agent, no widget, no SDK, no integrations.
Everything else below is a plan, marked <span class="chip chip--planned">planned</span>.
<a href="#waitlist">Hear when it ships</a>.
</p>
<nav class="nav" aria-label="Main">
<div class="wrap nav__in">
<a class="brand" href="#top" aria-label="SupportGenius, home"><span class="logo" aria-hidden="true"><i></i></span><span>Support<b>Genius</b></span></a>
<div class="nav__links">
<a href="#how">How it would work</a>
<a href="#features">Features</a>
<a href="#pipeline">Escalations</a>
<a href="#integrations">Integrations</a>
<a href="#pricing">Pricing</a>
</div>
<a class="nav__cta" href="#waitlist">Join the waitlist</a>
</div>
</nav>
<main id="main">
<!-- ------------------------------------------------------------ hero -->
<section class="hero" id="top" aria-labelledby="hero-title">
<div class="hero__glow"></div>
<div class="hero__grid"></div>
<div class="hero__copy">
<p class="pill">In design · open-source Rust core and hosted agent, both planned</p>
<h1 id="hero-title">Support that answers.<br><span>When it can't, it routes the issue to the right people, where they already work.</span></h1>
<p class="hero__lede">SupportGenius is a planned AI support agent. It would answer from your docs, tickets and files, by text or voice, and turn anything it cannot answer into a ticket for support, a lead for sales, or a GitHub issue with reproduction steps for engineering. You would embed a widget, drop the iOS or Android SDK into your app, connect a phone number, call the API, or let your own agents use it as a tool.</p>
<div class="hero__ctas">
<a class="btn" href="#waitlist">Join the waitlist</a>
<a class="btn btn--ghost" href="#demo">See the idea</a>
<a class="btn btn--ghost" href="#film" data-play-film>Watch the film · 44 s</a>
</div>
<div class="snippet" title="The intended embed. w.js is not served yet.">
<code><span class="t"><script</span> src=<span class="v">"https://supportgeni.us/w.js"</span> data-key=<span class="v">"sg_live_…"</span><span class="t">></script></span></code>
<span class="chip chip--planned">planned</span>
</div>
<p class="snippet__note">The intended one-line embed. It does not work yet: there is no w.js and there are no keys.</p>
<ul class="surfaces" aria-label="Planned surfaces">
<li>Widget</li>
<li>REST API</li>
<li>iOS · Android SDK</li>
<li>Phone line</li>
<li class="hi">MCP server for agents</li>
</ul>
</div>
<!-- The demo is an ILLUSTRATION with sample data. Keep the chip and the caption. -->
<figure class="demo" id="demo" aria-labelledby="demo-caption">
<div class="demo__bar"><span class="chip chip--illus">illustration · sample data</span></div>
<p class="sr-only">An animated illustration of three sample conversations. On a web widget, a customer asks how to change a billing address and is answered from the billing docs. In an iOS app, a customer reports that the export button returns a 500 on large CSVs; with no fix in the docs, the agent files a GitHub issue with reproduction steps and severity high, and the same escalation is shown landing in Jira, Linear, Zendesk and with an on-call person. On a phone call, a customer asks about volume pricing for 50 seats, and the agent passes a lead to Salesforce.</p>
<div class="stage" data-stage aria-hidden="true">
<div class="stage__canvas">
<svg viewBox="0 0 1120 520" width="1120" height="520">
<g fill="none" stroke="rgba(255,255,255,.12)" stroke-width="1.5">
<path d="M300,260 C 400,260 420,260 504,260"/>
<path d="M616,260 C 740,260 740,90 840,90"/>
<path d="M616,260 C 740,260 740,170 840,170"/>
<path d="M616,260 C 740,260 740,250 840,250"/>
<path d="M616,260 C 740,260 740,330 840,330"/>
<path d="M616,260 C 740,260 740,410 840,410"/>
<path d="M616,260 C 740,260 740,490 840,490"/>
</g>
<g class="flow" fill="none" stroke="rgba(255,255,255,.14)" stroke-width="1" stroke-dasharray="3 5">
<line x1="560" y1="260" x2="560" y2="120"/>
<line x1="560" y1="260" x2="439" y2="190"/>
<line x1="560" y1="260" x2="681" y2="190"/>
<line x1="560" y1="260" x2="439" y2="330"/>
<line x1="560" y1="260" x2="681" y2="330"/>
</g>
<!-- packets: one per hop, timed as fractions of the 32 s loop -->
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.04;0.07;1" path="M300,260 C 400,260 420,260 504,260"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.04;0.043;0.067;0.07;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.12;0.14;1" path="M504,260 C 420,260 400,260 300,260"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.12;0.123;0.137;0.14;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.27;0.3;1" path="M300,260 C 400,260 420,260 504,260"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.27;0.273;0.297;0.3;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.36;0.39;1" path="M616,260 C 740,260 740,90 840,90"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.36;0.363;0.387;0.39;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.45;0.48;1" path="M616,260 C 740,260 740,170 840,170"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.45;0.453;0.477;0.48;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.53;0.56;1" path="M616,260 C 740,260 740,250 840,250"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.53;0.533;0.557;0.56;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.6;0.63;1" path="M616,260 C 740,260 740,330 840,330"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.6;0.603;0.627;0.63;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.6;0.63;1" path="M616,260 C 740,260 740,490 840,490"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.6;0.603;0.627;0.63;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.76;0.79;1" path="M300,260 C 400,260 420,260 504,260"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.76;0.763;0.787;0.79;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.84;0.87;1" path="M616,260 C 740,260 740,410 840,410"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.84;0.843;0.867;0.87;1"/>
</circle>
<circle class="pkt" r="5" fill="#5b9dff" opacity="0">
<animateMotion dur="32s" repeatCount="indefinite" calcMode="linear" keyPoints="0;0;1;1" keyTimes="0;0.84;0.87;1" path="M504,260 C 420,260 400,260 300,260"/>
<animate attributeName="opacity" dur="32s" repeatCount="indefinite" values="0;0;1;1;0;0" keyTimes="0;0.84;0.843;0.867;0.87;1"/>
</circle>
</svg>
<!-- 01 · customer: one widget, three scenes -->
<div class="widget">
<div class="widget__head">
<div class="a-sceneA"><span class="live"></span><b>SupportGenius</b><span class="badge">WEB WIDGET</span></div>
<div class="a-sceneB"><span class="clock">9:41</span><b style="margin-left:6px">Acme · Help</b><span class="badge">iOS SDK</span></div>
<div class="a-sceneC"><span class="live"></span><b>+1 (415) 555-0134</b><span class="clock">00:42</span><span class="badge">PHONE LINE</span></div>
</div>
<div class="widget__body">
<div class="bub-me a-msgA">How do I change my billing address?</div>
<div class="bub-me a-msgB">The export button returns a 500 on large CSVs.</div>
<div class="typing a-typA"><i></i><i></i><i></i></div>
<div class="typing a-typB"><i></i><i></i><i></i></div>
<div class="bub-ai a-repA">
<div>Go to Settings › Billing › Payment details and edit the address. It applies from your next invoice.</div>
<div class="cite">Billing docs › Changing your plan</div>
</div>
<div class="bub-ai a-repB">
<div>No fix in the docs, so I've filed this with your engineers, with the steps and the stack trace you approved. You'll get an email when it's resolved.</div>
<div class="cite">Escalated · severity high</div>
</div>
<div class="bub-me a-msgC">Do you offer volume pricing for 50 seats?</div>
<div class="typing a-typC"><i></i><i></i><i></i></div>
<div class="bub-ai a-repC">
<div>Yes, volume pricing starts at 25 seats. I've passed your details to sales; someone will reach out today.</div>
<div class="cite">Pricing docs › Volume plans</div>
</div>
</div>
<div class="widget__foot">
<div class="a-sceneA"><div class="input">Type or speak…</div><span class="mic"></span></div>
<div class="a-sceneB"><div class="input" style="justify-content:space-between">Message…<span class="badge" style="margin-left:0">SEND LOGS?</span></div><span class="mic"></span></div>
<div class="a-sceneC"><div class="input"><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="listening">Listening…</span></div><span class="hang"></span></div>
</div>
</div>
<!-- 02 · engine -->
<div class="core"><div class="core__ring"></div></div>
<div class="cv-label" style="left:470px;top:380px;width:180px;text-align:center;letter-spacing:.08em">RETRIEVAL · REASONING</div>
<div class="node a-nodeABC" style="left:514px;top:105px">LLM</div>
<div class="node a-nodeAC" style="left:393px;top:175px">Docs</div>
<div class="node a-nodeA" style="left:635px;top:175px">Help center</div>
<div class="node a-nodeB" style="left:393px;top:315px">Past tickets</div>
<div class="node a-nodeB" style="left:635px;top:315px">Files</div>
<!-- 03 · destinations: each card lights up in turn (--d) -->
<div class="dest a-card" style="top:60px">
<span class="mark" title="GitHub"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-github"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">GitHub Issues</div><div class="dest__sub">acme/app</div></div>
<div class="a-issue"><div class="dest__issue"><b>#482</b> Export returns 500 on large CSV</div><div class="lbls"><span class="lbl lbl--bug">bug</span><span class="lbl lbl--hi">severity:high</span><span class="lbl">repro steps</span></div></div>
</div>
</div>
<div class="dest a-card" style="top:140px;--d:.085">
<span class="mark" title="Jira"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-jira"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Jira</div><div class="dest__sub">SUP project</div></div>
<div class="a-issue"><div class="dest__issue"><b>SUP-1042</b> Export returns 500 on large CSV</div><div class="lbls"><span class="lbl lbl--bug">Type: Bug</span><span class="lbl lbl--hi">Priority: High</span><span class="lbl">To Do</span></div></div>
</div>
</div>
<div class="dest a-card" style="top:220px;--d:.165">
<span class="mark" title="Linear"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-linear"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Linear</div><div class="dest__sub">ENG · Triage</div></div>
<div class="a-issue"><div class="dest__issue"><b>ENG-318</b> Export returns 500 on large CSV</div><div class="lbls"><span class="lbl lbl--hi">Urgent</span><span class="lbl">Triage</span><span class="lbl">Bug</span></div></div>
</div>
</div>
<div class="dest a-card" style="top:300px;--d:.24">
<span class="mark" title="Zendesk"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-zendesk"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Zendesk</div><div class="dest__sub">Tickets · handoff</div></div>
<div class="a-issue"><div class="dest__issue"><b>#55821</b> Export returns 500 on large CSV</div><div class="lbls"><span class="lbl lbl--hi">Priority: High</span><span class="lbl">Open</span><span class="lbl">Tier 2</span></div></div>
</div>
</div>
<div class="dest a-cardSF" style="top:380px">
<span class="mark" title="Salesforce"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-cloud"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Salesforce</div><div class="dest__sub">Leads · Cases</div></div>
<div class="a-issue"><div class="dest__issue"><b>Lead</b> Acme Corp · 50 seats · volume pricing</div><div class="lbls"><span class="lbl lbl--ok">Hot</span><span class="lbl">Source: Chat</span><span class="lbl">Owner: Sales</span></div></div>
</div>
</div>
<div class="dest a-card" style="top:460px;--d:.24">
<span class="mark avatar">MK</span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Human in the loop</div><div class="dest__sub">Mobile app · API · on call</div></div>
<div class="a-issue"><div class="dest__issue"><b>Assigned</b> Maria K. · pinged on mobile</div><div class="lbls"><span class="lbl lbl--ok">Takes over chat</span><span class="lbl">Transcript attached</span></div></div>
</div>
</div>
<div class="cv-label" style="left:0;top:0">01 · CUSTOMER · ANY CHANNEL</div>
<div class="cv-chips"><span class="a-chipA">WEB</span><span class="a-chipB">MOBILE APP</span><span class="a-chipC">PHONE</span><span>API</span></div>
<div class="cv-label" style="left:470px;top:0;width:180px;text-align:center">02 · ENGINE</div>
<div class="cv-label" style="left:840px;top:0;width:280px;text-align:right">03 · WHERE YOUR TEAM WORKS</div>
</div>
<!-- Under 640px the canvas above is hidden and this stacked version shows instead:
the same widget, channels, engine and destinations, on the same keyframes. -->
<div class="stage__phone">
<p class="sp-label">01 · CUSTOMER · ANY CHANNEL</p>
<div class="sp-chips"><span class="a-chipA">WEB</span><span class="a-chipB">MOBILE APP</span><span class="a-chipC">PHONE</span><span>API</span></div>
<div class="widget">
<div class="widget__head">
<div class="a-sceneA"><span class="live"></span><b>SupportGenius</b><span class="badge">WEB WIDGET</span></div>
<div class="a-sceneB"><span class="clock">9:41</span><b style="margin-left:6px">Acme · Help</b><span class="badge">iOS SDK</span></div>
<div class="a-sceneC"><span class="live"></span><b>+1 (415) 555-0134</b><span class="clock">00:42</span><span class="badge">PHONE LINE</span></div>
</div>
<div class="widget__body">
<div class="bub-me a-msgA">How do I change my billing address?</div>
<div class="bub-me a-msgB">The export button returns a 500 on large CSVs.</div>
<div class="typing a-typA"><i></i><i></i><i></i></div>
<div class="typing a-typB"><i></i><i></i><i></i></div>
<div class="bub-ai a-repA">
<div>Go to Settings › Billing › Payment details and edit the address. It applies from your next invoice.</div>
<div class="cite">Billing docs › Changing your plan</div>
</div>
<div class="bub-ai a-repB">
<div>No fix in the docs, so I've filed this with your engineers, with the steps and the stack trace you approved. You'll get an email when it's resolved.</div>
<div class="cite">Escalated · severity high</div>
</div>
<div class="bub-me a-msgC">Do you offer volume pricing for 50 seats?</div>
<div class="typing a-typC"><i></i><i></i><i></i></div>
<div class="bub-ai a-repC">
<div>Yes, volume pricing starts at 25 seats. I've passed your details to sales; someone will reach out today.</div>
<div class="cite">Pricing docs › Volume plans</div>
</div>
</div>
<div class="widget__foot">
<div class="a-sceneA"><div class="input">Type or speak…</div><span class="mic"></span></div>
<div class="a-sceneB"><div class="input" style="justify-content:space-between">Message…<span class="badge" style="margin-left:0">SEND LOGS?</span></div><span class="mic"></span></div>
<div class="a-sceneC"><div class="input"><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="wave"></span><span class="listening">Listening…</span></div><span class="hang"></span></div>
</div>
</div>
<p class="sp-label">02 · ENGINE</p>
<div class="sp-engine">
<span class="node a-nodeABC">LLM</span>
<span class="node a-nodeAC">Docs</span>
<span class="node a-nodeA">Help center</span>
<span class="node a-nodeB">Past tickets</span>
<span class="node a-nodeB">Files</span>
</div>
<p class="sp-label">03 · WHERE YOUR TEAM WORKS</p>
<div class="sp-dest">
<div class="sp-slot a-sceneB">
<div class="dest a-card">
<span class="mark" title="GitHub"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-github"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">GitHub Issues</div><div class="dest__sub">acme/app</div></div>
<div class="a-issue"><div class="dest__issue"><b>#482</b> Export returns 500 on large CSV</div><div class="lbls"><span class="lbl lbl--bug">bug</span><span class="lbl lbl--hi">severity:high</span><span class="lbl">repro steps</span></div></div>
</div>
</div>
</div>
<div class="sp-slot a-sceneC">
<div class="dest a-cardSF" style="top:380px">
<span class="mark" title="Salesforce"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-cloud"/></svg></span>
<div class="dest__txt">
<div class="a-base"><div class="dest__name">Salesforce</div><div class="dest__sub">Leads · Cases</div></div>
<div class="a-issue"><div class="dest__issue"><b>Lead</b> Acme Corp · 50 seats · volume pricing</div><div class="lbls"><span class="lbl lbl--ok">Hot</span><span class="lbl">Source: Chat</span><span class="lbl">Owner: Sales</span></div></div>
</div>
</div>
</div>
</div>
</div>
</div>
<figcaption class="demo__caption note" id="demo-caption">Illustration with sample data. Nothing here is connected to a product, because there is no product yet.</figcaption>
</figure>
</section>
<!-- ------------------------------------------------------------ the film -->
<section class="sec wrap" id="film" aria-labelledby="film-title">
<p class="eyebrow">THE FILM <span class="chip chip--planned">planned</span></p>
<h2 class="h2 h2--tight" id="film-title">The film, in 44 seconds.</h2>
<p class="lede">A planned support agent that answers from your docs and routes what it cannot answer, shown as illustrations with sample data.</p>
<figure class="film">
<video controls playsinline preload="none" data-film="supportgenius-promo" poster="/assets/films/supportgenius-poster.jpg" width="1920" height="1080" aria-label="A 44-second film of a planned support agent; every screen is an illustration with sample data, and nothing is built yet.">
<source src="/assets/films/supportgenius-promo.mp4" type="video/mp4">
<p>Your browser cannot play this video. <a href="/assets/films/supportgenius-promo.mp4" download>Download the film (MP4)</a>.</p>
</video>
<figcaption class="film__caption note">Illustrations of planned software, sample data. Voice: MiniMax. Music: "Digital Clouds" by Alejandro Magaña, Mixkit.</figcaption>
</figure>
</section>
<!-- ------------------------------------------------------------ how it would work -->
<section class="sec wrap" id="how" aria-labelledby="how-title">
<p class="eyebrow">HOW IT WOULD WORK <span class="chip chip--planned">planned</span></p>
<h2 class="h2" id="how-title">Three steps. One script tag.</h2>
<ol class="steps">
<li>
<span class="steps__n">01</span>
<h3>Connect your sources</h3>
<p>Docs URL, help center, uploaded files, past tickets, indexed and kept in sync.</p>
</li>
<li>
<span class="steps__n">02</span>
<h3>Pick a surface</h3>
<p>One script tag would add the widget, with text and voice. Native iOS and Android SDKs for your apps. A phone number, yours or a new one, that the agent answers. The API, from your own UI. Or an MCP tool, so your own agents can answer and escalate too.</p>
</li>
<li>
<span class="steps__n">03</span>
<h3>Choose where escalations go</h3>
<p>Engineering bugs to GitHub, Jira or Linear. Support tickets to Zendesk. Leads to Salesforce. A person on the mobile app or through the API. Or the built-in open-source ticketing.</p>
</li>
</ol>
</section>
<!-- ------------------------------------------------------------ features -->
<section class="sec wrap" id="features" aria-labelledby="features-title" style="padding-top:32px">
<p class="eyebrow">FEATURES</p>
<h2 class="h2 h2--tight" id="features-title">Answers it can back up. Escalations engineers can act on.</h2>
<p class="lede">What SupportGenius is being designed to do. None of it is built; every card is a plan.</p>
<div class="features">
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-cite"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Answers with citations</h3><p>Every reply would link the doc, ticket or file it came from.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-voice"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Voice conversations</h3><p>Customers would talk instead of type, and the agent would reply with speech.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-phone"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Phone line</h3><p>Connect your existing number or get a new one. The same agent would answer calls, escalate and hand over to a person, with the call transcribed into the ticket.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-issue"/></svg></span><span class="chip chip--planned">planned</span></div><h3>GitHub issues with repro steps</h3><p>Title, steps, expected versus actual, environment and a severity label.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-dupe"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Duplicate detection</h3><p>The same bug should never be filed twice: a match would link to the existing issue instead.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-gauge"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Confidence threshold</h3><p>It would answer only when it is sure, and otherwise ask a question or hand off.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-person"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Human in the loop</h3><p>A person could take over any chat from the mobile app or through the API, with the full transcript attached.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-lang"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Multilingual</h3><p>Answers in the language the customer uses, in text or voice.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-chart"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Analytics</h3><p>What customers ask, what gets answered, what gets escalated.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-device"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Consent-based diagnostics</h3><p>With one tap of approval, the SDK would attach the client-side stack trace, console errors, device and app version, and on mobile a short, capped screen recording, deleted after the retention period.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-timer"/></svg></span><span class="chip chip--planned">planned</span></div><h3>SLA policies</h3><p>Optional response and resolution targets per severity or plan. Timers would start on filing; a target at risk nudges the tool, and a breach pages a person.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-bell"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Lifecycle updates</h3><p>Plain-language status updates to the customer as the ticket moves, until it is resolved and confirmed.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-bolt"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Rust core</h3><p>The ticketing and routing core is planned in Rust, as one static binary you could self-host.</p></article>
<article class="feature"><div class="feature__top"><span class="feature__icon"><svg width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-agent"/></svg></span><span class="chip chip--planned">planned</span></div><h3>Agent-ready</h3><p>An MCP server and tool schema, so Claude, GPT or your own agents could search sources, answer and file issues.</p></article>
</div>
</section>
<!-- ------------------------------------------------------------ escalation pipeline -->
<section class="sec--tint" id="pipeline" aria-labelledby="pipeline-title">
<div class="sec wrap">
<p class="eyebrow">HOW AN ESCALATION WOULD HAPPEN <span class="chip chip--planned">planned</span></p>
<h2 class="h2 h2--tight" id="pipeline-title">One model writes the ticket. A second one checks it. The customer hears back at every step.</h2>
<p class="lede">The design rule: nothing reaches your tools on a single model's say-so. A drafting model would turn the conversation into a structured ticket; an independent judge model would validate it and decide whether, where and with what priority it is filed. From then on, the customer would be kept informed until the issue is closed. The panels show sample output, not a real run.</p>
<ol class="pipeline">
<li class="stage-card">
<div class="stage-card__top"><span class="stage-card__n">01</span><span class="chip chip--acc">CUSTOMER</span></div>
<h3>The conversation</h3>
<p>Text or voice. The agent would try to answer from your sources first, and ask a clarifying question when it needs one.</p>
<pre>"The export button
returns a 500 on
large CSVs."
retrieval: 0 fixes
confidence: 0.31
→ escalate</pre>
</li>
<li class="stage-card">
<div class="stage-card__top"><span class="stage-card__n">02</span><span class="chip chip--acc">DRAFTING LLM</span></div>
<h3>Turns the chat into a ticket</h3>
<p>It would extract a title, reproduction steps, expected versus actual behaviour, environment and a proposed severity from the transcript.</p>
<pre>title: Export returns
500 on CSV > 50 MB
steps: [3 extracted]
env: Chrome 129, EU
attachments (approved):
stacktrace.txt
screen.mp4 0:42
severity: high
(proposed)</pre>
</li>
<li class="stage-card">
<div class="stage-card__top"><span class="stage-card__n">03</span><span class="chip chip--acc">JUDGE LLM</span></div>
<h3>Validates before anything is filed</h3>
<p>An independent model would score the draft: is it a real defect, is it reproducible, is it a duplicate, is the severity justified, is any customer data leaking?</p>
<pre>is_defect: 0.94 ✓
reproducible: 0.88 ✓
dup of #311: 0.12 ✗
severity_ok: ✓ high
pii_scrubbed: ✓
verdict: FILE</pre>
</li>
<li class="stage-card">
<div class="stage-card__top"><span class="stage-card__n">04</span><span class="chip chip--acc">ROUTER</span></div>
<h3>Sends it where it belongs</h3>
<p>Bugs to GitHub, Jira or Linear. Support cases to Zendesk. Leads to Salesforce. A person on the mobile app when the judge says so.</p>
<pre>destination: github
repo: acme/app
labels: [bug,
severity:high]
→ acme/app#482 created
← link posted in chat</pre>
</li>
<li class="stage-card">
<div class="stage-card__top"><span class="stage-card__n">05</span><span class="chip chip--acc">LIFECYCLE</span></div>
<h3>Keeps the customer updated</h3>
<p>The ticket would stay linked to the conversation. Status changes in your tools would trigger plain-language updates to the customer, in chat or by email, until it is closed.</p>
<pre>acme/app#482
triaged
→ "An engineer is
on it"
in review
→ "A fix is being
tested"
released
→ "Fixed in v2.14.
Try the export?"
closed
← customer confirms</pre>
</li>
</ol>
<ul class="legend" aria-label="Judge outcomes">
<li><span class="dot dot--ok"></span>Judge approves → filed to the destination</li>
<li><span class="dot dot--warn"></span>Judge unsure → asks the customer one more question</li>
<li><span class="dot dot--bad"></span>Duplicate → links to the existing issue, nothing new filed</li>
</ul>
<div class="sla">
<div class="sla__copy">
<div class="sla__head"><h3>SLA policies</h3><span class="chip">OPTIONAL</span><span class="chip chip--planned">planned</span></div>
<p>Response and resolution targets per severity or per plan. The agent would set the timer when it files, nudge the destination when a target is at risk, page the on-call person on breach, and tell the customer what to expect.</p>
<ul class="tags">
<li>Per severity</li>
<li>Per plan / account</li>
<li>Business hours aware</li>
<li>Synced to Jira / Zendesk SLA fields</li>
</ul>
</div>
<div class="sla__table" role="region" tabindex="0" aria-label="Example SLA policy">
<table>
<caption>Example policy. It would be editable per workspace.</caption>
<thead><tr><th scope="col">SEVERITY</th><th scope="col">FIRST RESPONSE</th><th scope="col">RESOLUTION</th><th scope="col">ON BREACH</th></tr></thead>
<tbody>
<tr><td class="sev--critical">critical</td><td>15 min</td><td>4 h</td><td>page on-call, notify customer</td></tr>
<tr><td class="sev--high">high</td><td>1 h</td><td>1 business day</td><td>page on-call</td></tr>
<tr><td class="sev--normal">normal</td><td>4 h</td><td>3 business days</td><td>nudge destination, Slack</td></tr>
<tr><td class="sev--low">low</td><td>1 business day</td><td>next release</td><td>weekly digest</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</section>
<!-- ------------------------------------------------------------ human in the loop -->
<section class="sec wrap" id="human" aria-labelledby="human-title">
<p class="eyebrow">HUMAN IN THE LOOP <span class="chip chip--planned">planned</span></p>
<h2 class="h2 h2--tight" id="human-title">A person could step in at any point, from their phone.</h2>
<p class="lede">The agent would handle the conversation. Your team would watch, approve, take over and hand back, from a mobile app or through the API, and every handover would keep the full context.</p>
<div class="hitl">
<ol class="timeline">
<li data-actor="customer">
<div class="timeline__rail"><span class="timeline__k">C</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">CUSTOMER</span><h3>Reports a problem</h3></div>
<p>By chat, by voice, or inside your mobile app. The agent would answer from your sources where it can.</p>
<ul class="tags"><li>Widget</li><li>iOS / Android SDK</li><li>API</li></ul>
</div>
</li>
<li data-actor="ai">
<div class="timeline__rail"><span class="timeline__k">AI</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">AI AGENT</span><h3>Handles it, or drafts an escalation</h3></div>
<p>Retrieval and an answer with citations, or a structured ticket scored by the judge model.</p>
<ul class="tags"><li>Automatic</li></ul>
</div>
</li>
<li data-actor="trigger">
<div class="timeline__rail"><span class="timeline__k">!</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">TRIGGER</span><h3>Something asks for a person</h3></div>
<p>The judge is unsure, the customer asks for a person, the account is flagged, an SLA is about to breach, or your policy requires approval before anything is filed. The on-call person would be notified.</p>
<ul class="tags"><li>Push notification</li><li>Slack</li><li>Webhook</li></ul>
</div>
</li>
<li data-actor="human">
<div class="timeline__rail"><span class="timeline__k">H</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">HUMAN</span><h3>Watches, approves or takes over</h3></div>
<p>From the phone: read the transcript, edit the draft issue, approve, reject, link a duplicate, or join the chat live, while the agent keeps suggesting replies.</p>
<ul class="tags"><li>Mobile app</li><li>API</li></ul>
</div>
</li>
<li data-actor="human">
<div class="timeline__rail"><span class="timeline__k">H</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">HUMAN</span><h3>Hands back</h3></div>
<p>The conversation returns to the agent, which would own the follow-ups and the lifecycle updates to the customer.</p>
<ul class="tags"><li>Mobile app</li><li>API</li></ul>
</div>
</li>
<li data-actor="ai">
<div class="timeline__rail"><span class="timeline__k">AI</span></div>
<div class="timeline__body">
<div class="timeline__head"><span class="timeline__actor">AI AGENT</span><h3>Learns from the correction</h3></div>
<p>The person's answer or edit would be stored as a reviewed source, so the next customer with the same question gets it without a handoff.</p>
<ul class="tags"><li>Automatic</li></ul>
</div>
</li>
</ol>
<figure class="phone">
<figcaption class="phone__label"><span>MOBILE APP · ON-CALL VIEW</span><span class="chip chip--illus">illustration</span></figcaption>
<div class="phone__body">
<div class="phone__status"><span><span class="dot dot--ok" style="width:7px;height:7px"></span>Maria K. · on call</span><span class="mono" style="font-size:10px">14:02</span></div>
<div class="phone__alert">
<div class="phone__meta"><span>NEEDS A HUMAN</span><span>SLA 0:42 left · judge 0.52</span></div>
<div class="phone__title">Export returns 500 on large CSV</div>
<div class="phone__sub">Customer on Enterprise plan. Draft issue ready. Possible duplicate of #311.</div>
<div class="phone__actions"><span>Take over</span><span>Approve</span><span>Link #311</span></div>
</div>
<div class="phone__chat">
<div class="mono" style="font-size:11px;color:var(--mute)">LIVE CHAT · AI SUGGESTS</div>
<q>Hi, this is Maria from support. I've seen the 500 on your export. Could you tell me roughly how many rows the file has?</q>
<div><span>Send</span><span>Edit</span><span>Hand back to AI</span></div>
</div>
<div class="phone__foot">The same actions are planned for the API and webhooks</div>
</div>
</figure>
</div>
</section>
<!-- ------------------------------------------------------------ integrations -->
<section class="sec wrap" id="integrations" aria-labelledby="integrations-title">
<p class="eyebrow">INTEGRATIONS</p>
<h2 class="h2 h2--tight" id="integrations-title">Escalations land where each team already works.</h2>
<p class="lede">None of these connectors exists yet. They are the destinations and surfaces the product is being designed around.</p>
<ul class="integrations">
<li class="integration"><div class="integration__top"><span class="mark" title="GitHub"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-github"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>GitHub Issues</h3><p>Issues with labels, repro steps and a link back to the chat</p></div><div class="integration__team">ENGINEERING</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Jira"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-jira"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Jira</h3><p>Bugs and tasks into a project, with priority mapped</p></div><div class="integration__team">ENGINEERING</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Linear"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-linear"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Linear</h3><p>Issues into a team's triage inbox</p></div><div class="integration__team">ENGINEERING</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Zendesk"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-zendesk"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Zendesk</h3><p>Tickets with the transcript and customer attached</p></div><div class="integration__team">SUPPORT</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Intercom"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-intercom"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Intercom</h3><p>Conversations and human handoff</p></div><div class="integration__team">SUPPORT</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Freshdesk"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-headset"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Freshdesk</h3><p>Tickets with the transcript attached</p></div><div class="integration__team">SUPPORT</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Salesforce"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-cloud"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Salesforce</h3><p>Leads and cases with intent and account context</p></div><div class="integration__team">SALES</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="HubSpot"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-hubspot"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>HubSpot</h3><p>Contacts and deals from qualified chats</p></div><div class="integration__team">SALES</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Slack"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-messages-square"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Slack</h3><p>Escalation posts to a channel, claimed with one click</p></div><div class="integration__team">ANY TEAM</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Mobile app"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-person"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Mobile app</h3><p>A person takes over the chat from their phone</p></div><div class="integration__team">HUMAN IN THE LOOP</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Phone line"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-phone"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Phone line</h3><p>Port your number or get a new one; calls answered by the agent and transcribed into tickets</p></div><div class="integration__team">VOICE</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Webhook / API"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-webhook"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Webhook / API</h3><p>A signed JSON payload per event, or pull over REST</p></div><div class="integration__team">DEVELOPERS</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="iOS SDK"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-smartphone"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>iOS SDK</h3><p>Native chat and voice in your Swift app, with opt-in stack traces and screen recording</p></div><div class="integration__team">MOBILE</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Android SDK"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-android"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Android SDK</h3><p>Native chat and voice in your Kotlin app, with opt-in stack traces and screen recording</p></div><div class="integration__team">MOBILE</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="MCP server"><svg width="16" height="16" fill="currentColor" aria-hidden="true"><use href="#b-modelcontextprotocol"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>MCP server</h3><p>Answer, search and escalate, exposed as tools to your agents</p></div><div class="integration__team">AGENTS</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Living Brain"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><circle cx="8.5" cy="8.5" r="6.5"/><circle cx="8.5" cy="8.5" r="2.2" fill="currentColor" stroke="none"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Living Brain</h3><p>Answers from pages your team published to customers, and routes to whoever owns the topic. A sister <a href="https://livingbrain.wiki">Factory Zero venture</a></p></div><div class="integration__team">KNOWLEDGE</div></li>
<li class="integration"><div class="integration__top"><span class="mark" title="Built-in ticketing"><svg width="17" height="17" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-sg"/></svg></span><span class="chip chip--planned">planned</span></div><div><h3>Built-in ticketing</h3><p>An open-source Rust core, planned as one self-hostable binary</p></div><div class="integration__team">ANY TEAM</div></li>
</ul>
</section>
<!-- ------------------------------------------------------------ pricing
House rule: no price for anything planned. The tiers are the intended
shape, without numbers, so no figure can be quoted before launch. -->
<section class="sec--tint" id="pricing" aria-labelledby="pricing-title">
<div class="sec wrap">
<div class="pricing__head">
<p class="eyebrow">PRICING <span class="chip chip--planned">planned</span></p>
<h2 class="h2" id="pricing-title">A free tier, paid tiers by volume, and a core you can run yourself.</h2>
<p class="lede">Nothing is for sale and no price is set. These are the tiers being planned, without numbers, so none can be quoted before launch.</p>
</div>
<ul class="tiers">
<li class="tier">
<div class="tier__top"><h3>Free</h3><span class="chip chip--planned">planned</span></div>
<div class="tier__price">Not set</div>
<p class="tier__for">For trying it on a small site.</p>
<ul><li>A capped number of conversations</li><li>One source, one destination</li><li>Text only</li></ul>
</li>
<li class="tier">
<div class="tier__top"><h3>Pro</h3><span class="chip chip--planned">planned</span></div>
<div class="tier__price">Not set</div>
<p class="tier__for">For teams shipping a product.</p>
<ul><li>More conversations</li><li>Unlimited sources and destinations</li><li>GitHub issue writing, analytics</li><li>Voice minutes included, then billed per minute</li></ul>
</li>
<li class="tier">
<div class="tier__top"><h3>Scale</h3><span class="chip chip--planned">planned</span></div>
<div class="tier__price">Not set</div>
<p class="tier__for">For high-volume support.</p>
<ul><li>High conversation volume</li><li>SSO, audit log, SLA policies</li><li>More voice minutes included</li></ul>
</li>
<li class="tier">
<div class="tier__top"><h3>Self-hosted</h3><span class="chip chip--planned">planned</span></div>
<div class="tier__price">Open source</div>
<p class="tier__for">Run the Rust core yourself.</p>
<ul><li>MIT licence, intended</li><li>Ticketing, routing and incidents</li><li>A single static binary</li><li>Bring your own model key</li></ul>
</li>
</ul>
<p class="pricing__foot note">Voice, including phone calls, is planned to be billed per minute beyond an included allowance. No figure is set for that either.</p>
<p class="pricing__cta"><a class="btn" href="#waitlist">Join the waitlist</a></p>
</div>
</section>
<!-- ------------------------------------------------------------ waitlist
The form posts to the Cratefield harness waitlist module at
api.supportgeni.us (SupportGenius/waitlist-backend), with a Cloudflare
Turnstile token. It ships hidden; supportgenius.js reveals it. With
JavaScript off a visitor sees the mail fallback. See README, "The waitlist". -->
<section class="end" id="waitlist" aria-labelledby="waitlist-title">
<div class="wrap"><div class="cta">
<h2 id="waitlist-title">Hear once, when it answers.</h2>
<p>The waitlist is the only thing here that works. Leave your address and you will get one email, when there is something to use.</p>
<form class="wait__form" id="waitlist-form" data-open="true" data-endpoint="https://api.supportgeni.us/v1/waitlist" data-product="supportgenius" data-contact="hello@supportgeni.us" data-sitekey="0x4AAAAAAFRBObOIEtlONvJt" data-double-opt-in="true" hidden>
<div class="field">
<label class="sr-only" for="waitlist-email">Email address</label>
<input id="waitlist-email" type="email" name="email" required autocomplete="email" placeholder="you@company.com" aria-describedby="waitlist-err">
<button class="btn" type="submit"><span class="spin" aria-hidden="true"></span><span data-label>Join the waitlist</span></button>
</div>
<p class="form__err" id="waitlist-err" role="alert" hidden></p>
<div class="wait__human" role="group" aria-label="Human check" hidden data-captcha></div>
<p class="hp" aria-hidden="true"><label>Company <input type="text" name="company" tabindex="-1" autocomplete="off"></label></p>
<p class="form__foot">Kept by the <a href="https://cratefield.com">Cratefield</a> waitlist module, in a database of its own. A confirmation link now, then one email when there is something to use. No newsletter. <a href="/privacy">Privacy notice</a>.</p>
</form>
<p data-waitlist-fallback>Email <a href="mailto:hello@supportgeni.us?subject=SupportGenius%20waitlist">hello@supportgeni.us</a> and you will be added by hand.</p>
<div class="wait__done" id="waitlist-done" role="status" aria-live="polite" tabindex="-1" hidden>
<h3>Check your inbox</h3>
<p>We sent a confirmation link to <strong data-done-email></strong>. Click it to hold your place on the SupportGenius waitlist.</p>
<p class="wait__small">It can take a minute — check Spam or Promotions if it isn’t there. Already confirmed before? Then you’re already on the list; nothing more to do.</p>
<p class="wait__small"><button class="linkbtn" type="button" data-again>Use a different email</button> · Still nothing? Email <a href="mailto:hello@supportgeni.us?subject=SupportGenius%20waitlist">hello@supportgeni.us</a>.</p>
</div>
</div></div>
</section>
</main>
<!-- ------------------------------------------------------------ footer -->
<footer class="foot wrap">
<div class="foot__cols">
<div class="foot__brand">
<a class="brand" href="#top"><span class="logo" aria-hidden="true"><i></i></span><span>Support<b>Genius</b></span></a>
<p>supportgeni.us<br>In design. The waitlist is the only thing here that works.</p>
</div>
<nav class="foot__col" aria-labelledby="f-page">
<h2 id="f-page">ON THIS PAGE</h2>
<ul>
<li><a href="#how">How it would work</a></li>
<li><a href="#features">Features</a></li>
<li><a href="#pipeline">Escalations</a></li>
<li><a href="#human">Human in the loop</a></li>
<li><a href="#integrations">Integrations</a></li>
<li><a href="#pricing">Pricing</a></li>
</ul>
</nav>
<nav class="foot__col" aria-labelledby="f-project">
<h2 id="f-project">PROJECT</h2>
<ul>
<li><a href="https://github.com/SupportGenius">GitHub</a></li>
<li><a href="/llms.txt">llms.txt</a></li>
<li><a href="#waitlist">Waitlist</a></li>
</ul>
</nav>
<nav class="foot__col" aria-labelledby="f-contact">
<h2 id="f-contact">CONTACT</h2>
<ul>
<li><a href="mailto:hello@supportgeni.us">hello@supportgeni.us</a></li>
<li><a href="/privacy">Privacy</a></li>
<li><a href="/.well-known/security.txt">Security</a></li>
</ul>
</nav>
</div>
<div class="foot__base"><span>© 2026 SupportGenius · a <a href="https://factory0.ventures" style="color:inherit;text-decoration:underline;text-underline-offset:3px">Factory Zero</a> venture</span><span class="mono">No cookies · no analytics</span></div>
<!-- built-with:start -->
<ul class="built-with" aria-label="Built with">
<li class="bw"><span class="bw__role">Hosted on</span> <a class="bw__name" href="https://www.cloudflare.com">Cloudflare</a></li>
<li class="bw bw--planned"><span class="bw__role">Built with</span> <a class="bw__name" href="https://cratefield.com/">Cratefield</a> <span class="bw__tag"><span class="bw__paren">(</span>planned<span class="bw__paren">)</span></span></li>
<li class="bw bw--planned"><span class="bw__role">Payments by</span> <a class="bw__name" href="https://polar.sh">Polar</a> <span class="bw__tag"><span class="bw__paren">(</span>planned<span class="bw__paren">)</span></span></li>
<li class="bw bw--planned"><span class="bw__role">Screened by</span> <a class="bw__name" href="https://promptdeco.de/">promptdecode</a> <span class="bw__tag"><span class="bw__paren">(</span>planned<span class="bw__paren">)</span></span></li>
<li class="bw bw--planned"><span class="bw__role">Deploys by</span> <a class="bw__name" href="https://keepshipping.run/">Keep Shipping</a> <span class="bw__tag"><span class="bw__paren">(</span>planned<span class="bw__paren">)</span></span></li>
<li class="bw bw--source"><span class="bw__role">Listed by</span> <a class="bw__name" href="https://factory0.ventures/ventures/supportgenius/">Factory Zero</a></li>
</ul>
<!-- built-with:end -->
<p class="note foot__tm">Product names and logos are trademarks of their owners, shown only to name planned destinations and surfaces. No affiliation or endorsement is implied. The Android robot is reproduced from work created and shared by Google and used according to the terms of the Creative Commons 3.0 Attribution License.</p>
</footer>
<a class="float" href="#waitlist" aria-label="Live demo, planned. Join the waitlist">
<span class="float__label">Live demo · planned</span>
<span class="float__btn" aria-hidden="true"></span>
</a>
</body>
</html>