thumbgate 1.16.19 → 1.16.21
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.well-known/mcp/server-card.json +1 -1
- package/README.md +3 -2
- package/adapters/claude/.mcp.json +2 -2
- package/adapters/mcp/server-stdio.js +1 -1
- package/adapters/opencode/opencode.json +1 -1
- package/bench/programbench-smoke.json +71 -0
- package/bench/thumbgate-bench.json +131 -0
- package/bin/cli.js +64 -1
- package/bin/postinstall.js +2 -2
- package/package.json +16 -8
- package/public/dashboard.html +1 -1
- package/public/guide.html +5 -3
- package/public/index.html +53 -41
- package/public/lessons.html +1 -1
- package/public/numbers.html +6 -6
- package/public/pro.html +34 -91
- package/scripts/billing.js +21 -5
- package/scripts/commercial-offer.js +1 -1
- package/scripts/harness-selector.js +188 -0
- package/scripts/rag-precision-guardrails.js +63 -1
- package/scripts/rate-limiter.js +1 -1
- package/scripts/reasoning-efficiency-guardrails.js +73 -1
- package/scripts/telemetry-analytics.js +77 -0
- package/scripts/thumbgate-bench.js +707 -0
- package/src/api/server.js +180 -48
package/public/index.html
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<!--
|
|
5
|
-
______ __
|
|
6
|
-
/ ____/___ ____ ___ ____ __ __/ /____ _____
|
|
7
|
-
/ / / __ \/ __ `__ \/ __ \/ / / / __/ _ \/ ___/
|
|
8
|
-
/ /___/ /_/ / / / / / / /_/ / /_/ / /_/ __/ /
|
|
9
|
-
\____/\____/_/ /_/ /_/ .___/\__,_/\__/\___/_/
|
|
10
|
-
/_/
|
|
11
|
-
Created with Perplexity Computer
|
|
12
|
-
https://www.perplexity.ai/computer
|
|
13
|
-
-->
|
|
14
4
|
<meta name="generator" content="ThumbGate">
|
|
15
5
|
<meta name="author" content="Igor Ganapolsky">
|
|
16
|
-
<meta property="og:see_also" content="https://www.perplexity.ai/computer">
|
|
17
|
-
<link rel="author" href="https://www.perplexity.ai/computer">
|
|
18
6
|
|
|
19
7
|
<meta charset="UTF-8">
|
|
20
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
@@ -32,7 +20,6 @@ __GOOGLE_SITE_VERIFICATION_META__
|
|
|
32
20
|
<meta name="twitter:card" content="summary_large_image">
|
|
33
21
|
<meta name="twitter:image" content="https://thumbgate-production.up.railway.app/og.png">
|
|
34
22
|
<meta name="keywords" content="ThumbGate, thumbgate, AI agent orchestration, AI experience orchestration, agent enforcement layer, save LLM tokens, reduce Claude API cost, reduce OpenAI cost, AI agent token savings, prevent LLM retries, prevent hallucination retries, stop AI token waste, pre-action checks, agent governance, Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode, workflow hardening, context engineering, AI authenticity, brand authenticity AI">
|
|
35
|
-
<link rel="icon" type="image/png" href="/thumbgate-icon.png">
|
|
36
23
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
37
24
|
|
|
38
25
|
<!-- Privacy-friendly analytics by Plausible -->
|
|
@@ -692,11 +679,27 @@ __GA_BOOTSTRAP__
|
|
|
692
679
|
<p style="font-size:18px;color:var(--text-muted);max-width:720px;margin:0 auto 20px;line-height:1.6;">Every retry loop, every hallucinated import, every "let me try a different approach" — those are billable tokens on every LLM vendor's bill. ThumbGate is machine-speed pre-action defense: thumbs-down once, block that exact mistake on every future call, surface the next highest-ROI remediation, and show which agent surfaces are actually active before rollout. Across Claude Code, Cursor, Codex, Gemini, Amp, Cline, OpenCode — any MCP-compatible agent, forever, including fast-moving vibe coding workflows.</p>
|
|
693
680
|
<p style="font-size:15px;color:var(--text-dim);max-width:760px;margin:0 auto 24px;line-height:1.6;">As desktop agents move into parallel sessions, terminals, and production workflows, ThumbGate checks the thing benchmarks miss: is this next action a known workflow, an open-ended agent, a costly fan-out, or a blind tool call with no way to verify it worked?</p>
|
|
694
681
|
|
|
695
|
-
|
|
682
|
+
<div class="hero-paid-path" aria-label="Paid AI agent governance sprint checkout options">
|
|
683
|
+
<div>
|
|
684
|
+
<strong>Need buyer-ready proof today?</strong>
|
|
685
|
+
<span>For one repeated workflow failure, book the $499 diagnostic or $1500 sprint first. Same-day Workflow Teardown and smaller paid reads remain available when you need clear rules, examples, and pre-action checks before a larger scope.</span>
|
|
686
|
+
</div>
|
|
687
|
+
<div class="hero-paid-actions">
|
|
688
|
+
<a class="diagnostic" href="__SPRINT_DIAGNOSTIC_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_diagnostic_checkout_started',{ctaId:'hero_workflow_sprint_diagnostic_checkout',price:sprintDiagnosticPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:sprintDiagnosticPriceDollars});">Pay $499 diagnostic →</a>
|
|
689
|
+
<a class="sprint" href="__WORKFLOW_SPRINT_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_checkout_started',{ctaId:'hero_workflow_sprint_checkout',price:workflowSprintPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:workflowSprintPriceDollars});">Pay $1500 sprint →</a>
|
|
690
|
+
<a class="starter" title="First AI Agent Failure Rule" href="https://buy.stripe.com/4gM6oHgH2bTw4lH6i73sI0z" onclick="sendFirstPartyTelemetry('first_failure_rule_checkout_started',{ctaId:'hero_first_failure_rule_checkout',price:1});sendGa4Event('begin_checkout',{currency:'USD',value:1,items:[{item_id:'first_failure_rule',item_name:'First AI Agent Failure Rule'}]});">Pay $1 first rule →</a>
|
|
691
|
+
<a class="starter" title="AI Agent Failure Quick Read" href="https://buy.stripe.com/aFa8wPgH29Lo4lH35V3sI0w" onclick="sendFirstPartyTelemetry('quick_read_checkout_started',{ctaId:'hero_quick_read_checkout',price:19});">Pay $19 quick read →</a>
|
|
692
|
+
<a class="starter" href="https://buy.stripe.com/7sYfZhgH29LodWhdKz3sI0v" onclick="sendFirstPartyTelemetry('workflow_teardown_checkout_started',{ctaId:'hero_workflow_teardown_checkout'})">Pay $99 teardown</a>
|
|
693
|
+
<a class="intake" href="#workflow-sprint-intake" onclick="sendFirstPartyTelemetry('workflow_sprint_recovery_intake_clicked',{ctaId:'hero_workflow_sprint_recovery_intake'});sendGa4Event('generate_lead',{method:'workflow_sprint_recovery_intake'});">Send workflow first →</a>
|
|
694
|
+
<a class="starter" href="/guides/ai-agent-governance-sprint">See sprint scope →</a>
|
|
695
|
+
</div>
|
|
696
|
+
</div>
|
|
697
|
+
|
|
698
|
+
<!-- HERO PRICING CARD — secondary path after the proof-led paid offers -->
|
|
696
699
|
<div id="pro-pitch" style="max-width:820px;margin:0 auto 32px;padding:24px 28px;background:linear-gradient(180deg,rgba(17,17,19,0.94) 0%,rgba(22,22,24,0.94) 100%);border:1px solid rgba(34,211,238,0.32);border-radius:20px;box-shadow:0 0 0 1px rgba(34,211,238,0.18),0 24px 64px rgba(0,0,0,0.35);text-align:left;">
|
|
697
700
|
<div style="display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;">
|
|
698
701
|
<div>
|
|
699
|
-
<div style="display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid rgba(34,211,238,0.25);background:var(--cyan-dim);color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;">
|
|
702
|
+
<div style="display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid rgba(34,211,238,0.25);background:var(--cyan-dim);color:var(--cyan);font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;">Pay-now Pro</div>
|
|
700
703
|
<h2 style="margin:10px 0 4px;font-size:22px;letter-spacing:-0.025em;line-height:1.2;">Go Pro — one correction, every agent, every session.</h2>
|
|
701
704
|
<p style="margin:0;font-size:13px;color:var(--text-muted);">Personal local dashboard · DPO export from real corrections · founder support on risky flows.</p>
|
|
702
705
|
</div>
|
|
@@ -717,21 +720,7 @@ __GA_BOOTSTRAP__
|
|
|
717
720
|
<a href="/checkout/pro?utm_source=website&utm_medium=hero_pricing_card&utm_campaign=pro_pack&cta_id=hero_pro_annual&cta_placement=hero_pricing&plan_id=pro&billing_cycle=annual&landing_path=%2F" onclick="posthog.capture('hero_pricing_annual_click',{cta:'choose_annual'})" style="display:inline-flex;align-items:center;gap:6px;padding:11px 20px;background:rgba(17,17,19,0.75);color:var(--text);border:1px solid var(--border);border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;white-space:nowrap;">Choose annual →</a>
|
|
718
721
|
</div>
|
|
719
722
|
</div>
|
|
720
|
-
<p style="margin:14px 0 0;font-size:11px;color:var(--text-muted);text-align:center;">
|
|
721
|
-
</div>
|
|
722
|
-
|
|
723
|
-
<div class="hero-paid-path" aria-label="Paid AI agent governance sprint checkout options">
|
|
724
|
-
<div>
|
|
725
|
-
<strong>Need buyer-ready proof today?</strong>
|
|
726
|
-
<span>Send one messy AI-agent workflow. We turn it into clear rules, examples, and pre-action checks, plus AI Agent Governance Sprint approval boundaries and rollback safety before it touches developer-machine risk surfaces.</span>
|
|
727
|
-
</div>
|
|
728
|
-
<div class="hero-paid-actions">
|
|
729
|
-
<a class="starter" href="https://buy.stripe.com/7sY4gzgH24r49G17mb3sI0g" onclick="sendFirstPartyTelemetry('founder_workflow_diagnostic_checkout_started',{ctaId:'hero_founder_workflow_diagnostic_checkout',ctaPlacement:'hero_paid_path',planId:'team',offer:'founder_workflow_diagnostic',price:99});sendGa4Event('begin_checkout',{currency:'USD',value:99,items:[{item_id:'founder_workflow_diagnostic',item_name:'Founder Workflow Diagnostic'}]});">Pay $99 diagnostic →</a>
|
|
730
|
-
<a class="diagnostic" href="__SPRINT_DIAGNOSTIC_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_diagnostic_checkout_started',{ctaId:'hero_workflow_sprint_diagnostic_checkout',ctaPlacement:'hero_paid_path',planId:'team',offer:'workflow_hardening_diagnostic',price:sprintDiagnosticPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:sprintDiagnosticPriceDollars,items:[{item_id:'workflow_hardening_diagnostic',item_name:'Workflow Hardening Diagnostic'}]});">Pay $499 diagnostic →</a>
|
|
731
|
-
<a class="sprint" href="__WORKFLOW_SPRINT_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_checkout_started',{ctaId:'hero_workflow_sprint_checkout',ctaPlacement:'hero_paid_path',planId:'team',offer:'workflow_hardening_sprint',price:workflowSprintPriceDollars});sendGa4Event('begin_checkout',{currency:'USD',value:workflowSprintPriceDollars,items:[{item_id:'workflow_hardening_sprint',item_name:'Workflow Hardening Sprint'}]});">Pay $1500 sprint →</a>
|
|
732
|
-
<a class="intake" href="#workflow-sprint-intake" onclick="sendFirstPartyTelemetry('workflow_sprint_recovery_intake_clicked',{ctaId:'hero_workflow_sprint_recovery_intake',ctaPlacement:'hero_paid_path',planId:'team',offer:'workflow_hardening_sprint',reason:'not_ready_to_pay'});sendGa4Event('generate_lead',{currency:'USD',value:0,method:'workflow_sprint_recovery_intake'});">Send workflow first →</a>
|
|
733
|
-
<a class="starter" href="/guides/ai-agent-governance-sprint">See sprint scope →</a>
|
|
734
|
-
</div>
|
|
723
|
+
<p style="margin:14px 0 0;font-size:11px;color:var(--text-muted);text-align:center;">Card required · billed today · cancel anytime · your rules and captures stay local. <a href="/go/install" style="color:var(--cyan);text-decoration:none;">Prefer free? Install CLI →</a></p>
|
|
735
724
|
</div>
|
|
736
725
|
|
|
737
726
|
<a href="/dashboard" class="hero-dashboard-preview" style="display:block;max-width:620px;margin:0 auto 28px;background:linear-gradient(135deg,#0d1220 0%,#121a2e 100%);border:1px solid rgba(34,211,238,0.35);border-radius:12px;padding:20px 24px;box-shadow:0 0 48px rgba(34,211,238,0.15);font-family:var(--mono);text-align:left;text-decoration:none;color:inherit;" title="Open your live dashboard">
|
|
@@ -773,7 +762,7 @@ __GA_BOOTSTRAP__
|
|
|
773
762
|
<span class="copy-hint">click to copy</span>
|
|
774
763
|
</div>
|
|
775
764
|
<a href="/go/install?utm_source=website&utm_medium=hero_cta&utm_campaign=install_free&cta_id=hero_install_cli&cta_placement=hero" onclick="posthog.capture('hero_install_click',{cta:'install_cli'})" class="btn-gpt-page btn-install-hero" style="font-size:18px;padding:16px 36px;">Install Free CLI</a>
|
|
776
|
-
<a href="/go/pro?utm_source=website&utm_medium=hero_cta&utm_campaign=pro_upgrade&cta_id=hero_go_pro&cta_placement=hero&plan_id=pro&landing_path=%2F" onclick="posthog.capture('hero_pro_click',{cta:'go_pro'})" class="btn-pro-page" style="font-size:18px;padding:16px 32px;background:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%);color:#fff;font-weight:700;border-radius:10px;box-shadow:0 0 32px rgba(239,68,68,0.35);display:inline-flex;align-items:center;gap:8px;">Start
|
|
765
|
+
<a href="/go/pro?utm_source=website&utm_medium=hero_cta&utm_campaign=pro_upgrade&cta_id=hero_go_pro&cta_placement=hero&plan_id=pro&landing_path=%2F" onclick="posthog.capture('hero_pro_click',{cta:'go_pro'})" class="btn-pro-page" style="font-size:18px;padding:16px 32px;background:linear-gradient(135deg,#f59e0b 0%,#ef4444 100%);color:#fff;font-weight:700;border-radius:10px;box-shadow:0 0 32px rgba(239,68,68,0.35);display:inline-flex;align-items:center;gap:8px;">Start Pro — $19/mo <span style="font-size:12px;opacity:0.85;font-weight:500;">→</span></a>
|
|
777
766
|
<div class="hero-secondary-ctas" style="display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px;opacity:0.7;">
|
|
778
767
|
<a href="https://github.com/IgorGanapolsky/ThumbGate/releases/latest/download/thumbgate-claude-desktop.mcpb" class="btn-gpt-page" target="_blank" rel="noopener" onclick="posthog.capture('hero_claude_extension_click',{cta:'install_claude_extension'})" style="font-size:12px;padding:8px 16px;background:#d97706;color:#fff;box-shadow:none;">Install Claude Extension</a>
|
|
779
768
|
<a href="/go/github?utm_source=website&utm_medium=hero_cta&utm_campaign=github_repo&cta_id=hero_star_github&cta_placement=hero" target="_blank" rel="noopener" class="btn-free" style="display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;font-size:12px;">⭐ Star on GitHub</a>
|
|
@@ -792,7 +781,7 @@ __GA_BOOTSTRAP__
|
|
|
792
781
|
<div id="demo" style="margin:28px auto 0;max-width:560px;text-align:center;" onclick="posthog.capture('hero_demo_view')">
|
|
793
782
|
<div style="font-size:13px;color:var(--text-muted);margin-bottom:8px;letter-spacing:0.04em;text-transform:uppercase;">▶ 90-second demo · force-push → 👎 → blocked</div>
|
|
794
783
|
<video src="/assets/tiktok-agent-memory.mp4" controls playsinline preload="metadata" poster="/assets/instagram-card.png" style="width:100%;max-width:560px;border-radius:12px;border:1px solid var(--border);background:#000;box-shadow:0 10px 40px rgba(0,0,0,0.4);"></video>
|
|
795
|
-
<a href="/checkout/pro?utm_source=website&utm_medium=hero_demo&utm_campaign=pro_trial&cta_id=hero_post_demo" onclick="posthog.capture('hero_cta_click',{cta:'start_trial_post_demo'})" style="display:inline-block;margin-top:14px;color:var(--cyan);font-size:14px;font-weight:700;text-decoration:none;">→ Start
|
|
784
|
+
<a href="/checkout/pro?utm_source=website&utm_medium=hero_demo&utm_campaign=pro_trial&cta_id=hero_post_demo" onclick="posthog.capture('hero_cta_click',{cta:'start_trial_post_demo'})" style="display:inline-block;margin-top:14px;color:var(--cyan);font-size:14px;font-weight:700;text-decoration:none;">→ Start Pro</a>
|
|
796
785
|
</div>
|
|
797
786
|
<p style="font-size:13px;color:var(--text-muted);margin:8px auto 28px;max-width:560px;">Your agent has no memory. Every session, the same wrong pattern runs. ThumbGate turns a single correction into a permanent block — before the next tool call fires. <a href="#pricing" style="color:var(--cyan);text-decoration:none;">See all plans →</a></p>
|
|
798
787
|
<div class="first-check-card" id="first-check">
|
|
@@ -1300,7 +1289,7 @@ __GA_BOOTSTRAP__
|
|
|
1300
1289
|
</div>
|
|
1301
1290
|
<div class="autoresearch-cta">
|
|
1302
1291
|
<a class="primary" href="/guides/autoresearch-agent-safety?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_guide&cta_placement=autoresearch_pack">Read the Autoresearch guide</a>
|
|
1303
|
-
<a class="secondary" href="/checkout/pro?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_pro_trial&cta_placement=autoresearch_pack&plan_id=pro&landing_path=%2F">Start Pro
|
|
1292
|
+
<a class="secondary" href="/checkout/pro?utm_source=website&utm_medium=autoresearch_pack&utm_campaign=autoresearch_safety&cta_id=autoresearch_pro_trial&cta_placement=autoresearch_pack&plan_id=pro&landing_path=%2F">Start Pro</a>
|
|
1304
1293
|
</div>
|
|
1305
1294
|
</div>
|
|
1306
1295
|
</div>
|
|
@@ -1309,7 +1298,7 @@ __GA_BOOTSTRAP__
|
|
|
1309
1298
|
<!-- HOW IT WORKS -->
|
|
1310
1299
|
<section class="how-it-works" id="how-it-works">
|
|
1311
1300
|
<div class="container">
|
|
1312
|
-
<div class="section-label">New in v1.16.
|
|
1301
|
+
<div class="section-label">New in v1.16.21</div>
|
|
1313
1302
|
<h2 class="section-title">Three steps to stop repeated AI failures</h2>
|
|
1314
1303
|
<div class="steps">
|
|
1315
1304
|
<div class="step">
|
|
@@ -1481,7 +1470,7 @@ __GA_BOOTSTRAP__
|
|
|
1481
1470
|
<div class="price-sub">or $149/yr (save 35%) · Personal dashboard + enforcement proof</div>
|
|
1482
1471
|
<p style="font-size:13px;color:var(--cyan);margin-bottom:16px;font-weight:500;">Unlimited captures, unlimited rules, full recall. $19/mo costs less than 20 minutes of re-fixing a mistake your agent already learned to avoid.</p>
|
|
1483
1472
|
<div class="pro-upgrade-triggers" style="font-size:12px;color:#aaa;margin-bottom:12px;">
|
|
1484
|
-
<strong style="color:#fff;">
|
|
1473
|
+
<strong style="color:#fff;">Card required.</strong> Billed today. Cancel anytime. Your rules and captures stay local.
|
|
1485
1474
|
</div>
|
|
1486
1475
|
<div class="dashboard-preview" style="margin-bottom:16px;border:1px solid #333;border-radius:8px;overflow:hidden;">
|
|
1487
1476
|
<div style="background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);padding:16px;text-align:center;">
|
|
@@ -1504,13 +1493,13 @@ __GA_BOOTSTRAP__
|
|
|
1504
1493
|
<li>Personal local dashboard — every Pro user gets a localhost dashboard without extra cloud setup</li>
|
|
1505
1494
|
<li>Review-ready workflow support — we help you wire the riskiest flows first: migrations, force-pushes, deploys, and CI</li>
|
|
1506
1495
|
</ul>
|
|
1507
|
-
<div class="trial-badge" style="background:var(--cyan);color:#000;display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;margin-bottom:12px;">
|
|
1496
|
+
<div class="trial-badge" style="background:var(--cyan);color:#000;display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700;margin-bottom:12px;">PAY-NOW PRO</div>
|
|
1508
1497
|
<div style="display:flex;gap:8px;margin-bottom:12px;">
|
|
1509
1498
|
<input type="email" id="pro-email" data-buyer-email placeholder="you@company.com" style="flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised);color:var(--text);font-size:14px;">
|
|
1510
|
-
<a href="/go/pro?utm_source=website&utm_medium=pricing_card&utm_campaign=pro_upgrade&cta_id=pricing_pro_upgrade&cta_placement=pricing&plan_id=pro&landing_path=%2F" id="pro-checkout-link" class="btn-pro" onclick="handleProTrial();return false;" style="display:flex;align-items:center;padding:10px 20px;font-size:14px;white-space:nowrap;">
|
|
1499
|
+
<a href="/go/pro?utm_source=website&utm_medium=pricing_card&utm_campaign=pro_upgrade&cta_id=pricing_pro_upgrade&cta_placement=pricing&plan_id=pro&landing_path=%2F" id="pro-checkout-link" class="btn-pro" onclick="handleProTrial();return false;" style="display:flex;align-items:center;padding:10px 20px;font-size:14px;white-space:nowrap;">Upgrade now</a>
|
|
1511
1500
|
</div>
|
|
1512
1501
|
<a href="/go/pro?utm_source=website&utm_medium=pricing_card&utm_campaign=pro_upgrade&cta_id=pricing_pro_upgrade&cta_placement=pricing&plan_id=pro&landing_path=%2F" class="btn-pro" onclick="posthog.capture('pricing_cta_click',{cta:'pro_upgrade',plan:'pro'})" style="display:block;width:100%;text-align:center;padding:12px;font-size:15px;">Upgrade to Pro — $19/mo</a>
|
|
1513
|
-
<p style="font-size:11px;color:#666;margin-top:8px;">
|
|
1502
|
+
<p style="font-size:11px;color:#666;margin-top:8px;">Card required. Billed today. Cancel anytime. Your rules and captures stay local.</p>
|
|
1514
1503
|
</div>
|
|
1515
1504
|
<div class="price-card team">
|
|
1516
1505
|
<div class="tier">Team</div>
|
|
@@ -1573,11 +1562,31 @@ __GA_BOOTSTRAP__
|
|
|
1573
1562
|
<a class="team-paid-link" data-workflow-sprint-link href="__WORKFLOW_SPRINT_CHECKOUT_URL__">Pay for sprint</a>
|
|
1574
1563
|
</div>
|
|
1575
1564
|
</div>
|
|
1565
|
+
<div class="team-paid-card">
|
|
1566
|
+
<div>
|
|
1567
|
+
<h4>Reliable AI Agent Governance Setup</h4>
|
|
1568
|
+
<p>Full ThumbGate-powered setup for Claude Code, Cursor, or Codex teams: npx install, custom prevention rules, audit trail, training, and proof reports. Optional ongoing rule management is $297/mo.</p>
|
|
1569
|
+
</div>
|
|
1570
|
+
<div>
|
|
1571
|
+
<div class="team-paid-price">$3,997</div>
|
|
1572
|
+
<a class="team-paid-link" href="#team-pilot-intake-form" onclick="sendFirstPartyTelemetry('governance_setup_intake_clicked',{ctaId:'team_governance_setup_intake',ctaPlacement:'team_paid_path',planId:'team',offer:'reliable_ai_agent_governance_setup',price:3997});sendGa4Event('generate_lead',{currency:'USD',value:3997,method:'governance_setup_intake'});">Request setup</a>
|
|
1573
|
+
</div>
|
|
1574
|
+
</div>
|
|
1575
|
+
<div class="team-paid-card">
|
|
1576
|
+
<div>
|
|
1577
|
+
<h4>OpenClaw Agent Governance Kit</h4>
|
|
1578
|
+
<p>Self-serve digital kit with ThumbGate prevention rules, OpenClaw-compatible workflow prompts, agent registry checklist, proof report template, and Zernio launch copy.</p>
|
|
1579
|
+
</div>
|
|
1580
|
+
<div>
|
|
1581
|
+
<div class="team-paid-price">$97</div>
|
|
1582
|
+
<a class="team-paid-link" href="https://buy.stripe.com/bJe14naiE9Lo7xT49Z3sI12" onclick="sendFirstPartyTelemetry('openclaw_governance_kit_checkout_started',{ctaId:'team_openclaw_governance_kit_checkout',ctaPlacement:'team_paid_path',planId:'digital_kit',offer:'openclaw_agent_governance_kit',price:97});sendGa4Event('begin_checkout',{currency:'USD',value:97,items:[{item_id:'openclaw_agent_governance_kit',item_name:'OpenClaw Agent Governance Kit'}]});">Buy kit</a>
|
|
1583
|
+
</div>
|
|
1584
|
+
</div>
|
|
1576
1585
|
</div>
|
|
1577
1586
|
<div class="team-intake-recovery" aria-label="Checkout recovery path for workflow sprint buyers">
|
|
1578
1587
|
<div>
|
|
1579
1588
|
<strong>Not ready to pay from a checkout page?</strong>
|
|
1580
|
-
<span>Send the workflow first. We can qualify the blocker, confirm the proof plan, and route you to the $499 diagnostic
|
|
1589
|
+
<span>Send the workflow first. We can qualify the blocker, confirm the proof plan, and route you to the $499 diagnostic, $1500 sprint, or $3,997 governance setup only when the scope is real.</span>
|
|
1581
1590
|
</div>
|
|
1582
1591
|
<a href="#team-pilot-intake-form" onclick="sendFirstPartyTelemetry('workflow_sprint_recovery_intake_clicked',{ctaId:'team_workflow_sprint_recovery_intake',ctaPlacement:'team_paid_path_recovery',planId:'team',offer:'workflow_hardening_sprint',reason:'checkout_abandon'});sendGa4Event('generate_lead',{currency:'USD',value:0,method:'workflow_sprint_recovery_intake'});">Send workflow first</a>
|
|
1583
1592
|
</div>
|
|
@@ -1656,7 +1665,7 @@ __GA_BOOTSTRAP__
|
|
|
1656
1665
|
</div>
|
|
1657
1666
|
<div class="faq-item">
|
|
1658
1667
|
<div class="faq-q" role="button" tabindex="0" aria-expanded="false" onclick="toggleFaq(this)" onkeydown="handleFaqKeydown(event)">What does Pro cost?</div>
|
|
1659
|
-
<div class="faq-a">Pro is $19/mo or $149/yr for individual operators and
|
|
1668
|
+
<div class="faq-a">Pro is $19/mo or $149/yr for individual operators and bills immediately through Stripe so the self-serve path can create revenue today. Team is $49/seat/mo with a 3-seat minimum and starts with the Workflow Hardening Sprint intake, not a self-serve trial.</div>
|
|
1660
1669
|
</div>
|
|
1661
1670
|
</div>
|
|
1662
1671
|
</div>
|
|
@@ -1708,7 +1717,7 @@ __GA_BOOTSTRAP__
|
|
|
1708
1717
|
<a href="https://www.linkedin.com/in/igorganapolsky" target="_blank" rel="noopener">LinkedIn</a>
|
|
1709
1718
|
<a href="/blog">Blog</a>
|
|
1710
1719
|
</div>
|
|
1711
|
-
<span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.16.
|
|
1720
|
+
<span class="footer-copy">© 2026 Max Smith KDP LLC · MIT License · v1.16.21</span>
|
|
1712
1721
|
</div>
|
|
1713
1722
|
</footer>
|
|
1714
1723
|
|
|
@@ -2011,6 +2020,9 @@ function copyInstall(el) {
|
|
|
2011
2020
|
{ selector: '#pro-checkout-link', ctaId: 'pricing_pro_trial', ctaPlacement: 'pricing', planId: 'pro' },
|
|
2012
2021
|
{ selector: '.price-card.pro .btn-pro', ctaId: 'pricing_pro_monthly', ctaPlacement: 'pricing', planId: 'pro' },
|
|
2013
2022
|
{ selector: '.hero-actions .btn-pro-page', ctaId: 'hero_go_pro', ctaPlacement: 'hero', planId: 'pro' },
|
|
2023
|
+
{ selector: '.hero-paid-actions .diagnostic', ctaId: 'hero_workflow_sprint_diagnostic_checkout', ctaPlacement: 'hero_paid_path', planId: 'team' },
|
|
2024
|
+
{ selector: '.hero-paid-actions .sprint', ctaId: 'hero_workflow_sprint_checkout', ctaPlacement: 'hero_paid_path', planId: 'team' },
|
|
2025
|
+
{ selector: '.hero-paid-actions .intake', ctaId: 'hero_workflow_sprint_recovery_intake', ctaPlacement: 'hero_paid_path', planId: 'team' },
|
|
2014
2026
|
{ selector: '.sticky-cta .btn-pro', ctaId: 'sticky_go_pro', ctaPlacement: 'sticky_cta', planId: 'pro' },
|
|
2015
2027
|
{ selector: '.price-card.team .btn-team', ctaId: 'team_workflow_sprint', ctaPlacement: 'pricing', planId: 'team' },
|
|
2016
2028
|
{ selector: '#team-pilot-intake-form', ctaId: 'workflow_sprint_intake', ctaPlacement: 'team_visible_intake', planId: 'team' }
|
package/public/lessons.html
CHANGED
|
@@ -845,7 +845,7 @@ function renderUpgradeWall(containerId) {
|
|
|
845
845
|
'<div style="font-size:20px;font-weight:700;color:#fff;margin-bottom:8px;">Unlock your full lessons</div>' +
|
|
846
846
|
'<div style="color:#aaa;margin-bottom:16px;">Pro shows your real prevention rules, timeline, and insights.</div>' +
|
|
847
847
|
'<a href="/go/pro?utm_source=lessons" rel="noopener" ' +
|
|
848
|
-
'style="display:inline-block;background:#b85c2d;color:#fff;padding:10px 24px;border-radius:8px;text-decoration:none;font-weight:700;">Start
|
|
848
|
+
'style="display:inline-block;background:#b85c2d;color:#fff;padding:10px 24px;border-radius:8px;text-decoration:none;font-weight:700;">Start Pro now</a>' +
|
|
849
849
|
'<div style="color:#666;font-size:12px;margin-top:10px;">npx thumbgate pro --activate --key=YOUR_KEY</div>' +
|
|
850
850
|
'</div></div>';
|
|
851
851
|
el.appendChild(wall);
|
package/public/numbers.html
CHANGED
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"alternateName": "thumbgate",
|
|
26
26
|
"applicationCategory": "DeveloperApplication",
|
|
27
27
|
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
28
|
-
"softwareVersion": "1.16.
|
|
28
|
+
"softwareVersion": "1.16.21",
|
|
29
29
|
"url": "https://thumbgate-production.up.railway.app/numbers",
|
|
30
|
-
"dateModified": "2026-05-
|
|
30
|
+
"dateModified": "2026-05-06",
|
|
31
31
|
"creator": {
|
|
32
32
|
"@type": "Person",
|
|
33
33
|
"name": "Igor Ganapolsky",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"https://www.linkedin.com/in/igorganapolsky"
|
|
58
58
|
]
|
|
59
59
|
},
|
|
60
|
-
"dateModified": "2026-05-
|
|
61
|
-
"datePublished": "2026-05-
|
|
60
|
+
"dateModified": "2026-05-06",
|
|
61
|
+
"datePublished": "2026-05-06",
|
|
62
62
|
"keywords": [
|
|
63
63
|
"AI agent gates",
|
|
64
64
|
"LLM token savings",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
<main class="container">
|
|
191
191
|
<h1>The Numbers</h1>
|
|
192
192
|
<p class="subtitle">Generated first-party operational data from the ThumbGate runtime. No surveys or projections — this page is a release-time snapshot produced by the same local scripts that power the CLI and dashboard.</p>
|
|
193
|
-
<div class="freshness">Updated: 2026-05-
|
|
193
|
+
<div class="freshness">Updated: 2026-05-06 · Version 1.16.21</div>
|
|
194
194
|
|
|
195
195
|
<h2>Gate enforcement</h2>
|
|
196
196
|
<div class="stats-grid">
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
<div class="cta">
|
|
265
265
|
<a href="https://www.npmjs.com/package/thumbgate">Install ThumbGate — npx thumbgate init</a>
|
|
266
266
|
<div class="footer-note">Prefer the raw feed? See <a href="https://github.com/IgorGanapolsky/ThumbGate">GitHub</a> or run <code>npm run gate:stats</code> locally.</div>
|
|
267
|
-
<div class="footer-note">Generated at 2026-05-
|
|
267
|
+
<div class="footer-note">Generated at 2026-05-06T21:53:14.685Z UTC.</div>
|
|
268
268
|
</div>
|
|
269
269
|
</main>
|
|
270
270
|
</body>
|
package/public/pro.html
CHANGED
|
@@ -14,7 +14,6 @@ __GOOGLE_SITE_VERIFICATION_META__
|
|
|
14
14
|
<link rel="icon" type="image/png" href="/thumbgate-icon.png">
|
|
15
15
|
<link rel="apple-touch-icon" href="/assets/brand/thumbgate-mark.svg">
|
|
16
16
|
<meta property="og:image" content="/og.png">
|
|
17
|
-
<meta name="keywords" content="ThumbGate Pro, AI agent reliability, pre-action checks, DPO export, local dashboard, review-ready evidence, Claude Code reliability, Codex reliability, Cursor reliability">
|
|
18
17
|
|
|
19
18
|
<script defer data-domain="thumbgate-production.up.railway.app" src="https://plausible.io/js/script.js"></script>
|
|
20
19
|
__GA_BOOTSTRAP__
|
|
@@ -30,91 +29,14 @@ __GA_BOOTSTRAP__
|
|
|
30
29
|
<script type="application/ld+json">
|
|
31
30
|
{
|
|
32
31
|
"@context": "https://schema.org",
|
|
33
|
-
"@type": "SoftwareApplication",
|
|
34
|
-
"name": "ThumbGate Pro",
|
|
35
|
-
"alternateName": "thumbgate pro",
|
|
36
|
-
"applicationCategory": "DeveloperApplication",
|
|
37
|
-
"operatingSystem": "Cross-platform, Node.js >=18.18.0",
|
|
38
|
-
"description": "Paid ThumbGate lane for individual operators who want a personal local dashboard, DPO export, review-ready evidence, and founder support for risky AI coding workflows.",
|
|
39
|
-
"url": "__APP_ORIGIN__/pro",
|
|
40
|
-
"downloadUrl": "https://www.npmjs.com/package/thumbgate",
|
|
41
|
-
"dateModified": "2026-04-20",
|
|
42
|
-
"creator": {
|
|
43
|
-
"@type": "Person",
|
|
44
|
-
"name": "Igor Ganapolsky",
|
|
45
|
-
"url": "https://github.com/IgorGanapolsky",
|
|
46
|
-
"sameAs": [
|
|
47
|
-
"https://github.com/IgorGanapolsky",
|
|
48
|
-
"https://www.linkedin.com/in/igorganapolsky"
|
|
49
|
-
]
|
|
50
|
-
},
|
|
51
|
-
"featureList": [
|
|
52
|
-
"Personal local dashboard",
|
|
53
|
-
"Visual check debugger",
|
|
54
|
-
"DPO export from real thumbs-down corrections",
|
|
55
|
-
"Auto-connect running agents after activation",
|
|
56
|
-
"Founder support on risky workflows",
|
|
57
|
-
"Model Hardening Advisor"
|
|
58
|
-
],
|
|
59
|
-
"offers": [
|
|
60
|
-
{
|
|
61
|
-
"@type": "Offer",
|
|
62
|
-
"name": "ThumbGate Pro Monthly",
|
|
63
|
-
"price": "__PRO_PRICE_DOLLARS__",
|
|
64
|
-
"priceCurrency": "USD",
|
|
65
|
-
"url": "__APP_ORIGIN__/checkout/pro?plan_id=pro&billing_cycle=monthly&landing_path=%2Fpro",
|
|
66
|
-
"description": "Monthly Pro for individual operators who want a personal local dashboard and proof-ready exports."
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"@type": "Offer",
|
|
70
|
-
"name": "ThumbGate Pro Annual",
|
|
71
|
-
"price": "149",
|
|
72
|
-
"priceCurrency": "USD",
|
|
73
|
-
"url": "__APP_ORIGIN__/checkout/pro?plan_id=pro&billing_cycle=annual&landing_path=%2Fpro",
|
|
74
|
-
"description": "Annual Pro for operators who want the dashboard, DPO export, and founder support at a lower effective monthly price."
|
|
75
|
-
}
|
|
76
|
-
]
|
|
32
|
+
"@type": "SoftwareApplication", "name": "ThumbGate Pro", "applicationCategory": "DeveloperApplication", "operatingSystem": "Cross-platform, Node.js >=18.18.0", "description": "Paid ThumbGate lane for individual operators who want a personal local dashboard, DPO export, review-ready evidence, and founder support for risky AI coding workflows.", "url": "__APP_ORIGIN__/pro", "downloadUrl": "https://www.npmjs.com/package/thumbgate", "dateModified": "2026-04-20", "creator": { "@type": "Person", "name": "Igor Ganapolsky", "url": "https://github.com/IgorGanapolsky" }, "offers": [{ "@type": "Offer", "name": "ThumbGate Pro Monthly", "price": "__PRO_PRICE_DOLLARS__", "priceCurrency": "USD", "url": "__APP_ORIGIN__/checkout/pro?plan_id=pro&billing_cycle=monthly&landing_path=%2Fpro" }, { "@type": "Offer", "name": "ThumbGate Pro Annual", "price": "149", "priceCurrency": "USD", "url": "__APP_ORIGIN__/checkout/pro?plan_id=pro&billing_cycle=annual&landing_path=%2Fpro" }]
|
|
77
33
|
}
|
|
78
34
|
</script>
|
|
79
35
|
|
|
80
36
|
<script type="application/ld+json">
|
|
81
37
|
{
|
|
82
38
|
"@context": "https://schema.org",
|
|
83
|
-
"@type": "FAQPage",
|
|
84
|
-
"mainEntity": [
|
|
85
|
-
{
|
|
86
|
-
"@type": "Question",
|
|
87
|
-
"name": "How is Pro different from the free install?",
|
|
88
|
-
"acceptedAnswer": {
|
|
89
|
-
"@type": "Answer",
|
|
90
|
-
"text": "Free keeps the local recall, checks, and MCP workflow. Pro adds a personal local dashboard, DPO export, auto-connect for running agents, and founder support for risky workflows."
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"@type": "Question",
|
|
95
|
-
"name": "Does Pro require a cloud account?",
|
|
96
|
-
"acceptedAnswer": {
|
|
97
|
-
"@type": "Answer",
|
|
98
|
-
"text": "No. ThumbGate Pro is still local-first for the individual operator lane. Team is the hosted rollout lane when you need shared lessons, org visibility, and rollout review views."
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"@type": "Question",
|
|
103
|
-
"name": "What happens after checkout?",
|
|
104
|
-
"acceptedAnswer": {
|
|
105
|
-
"@type": "Answer",
|
|
106
|
-
"text": "You activate Pro, connect your personal local dashboard, and your running agents can appear automatically so you can inspect blocked actions, lessons, and exports without adding a cloud dashboard dependency."
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"@type": "Question",
|
|
111
|
-
"name": "When should I choose Team instead of Pro?",
|
|
112
|
-
"acceptedAnswer": {
|
|
113
|
-
"@type": "Answer",
|
|
114
|
-
"text": "Choose Team when one correction needs to protect multiple developers or agents, when you need a shared hosted lesson database, org dashboard visibility, or a workflow hardening pilot across shared repositories."
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
]
|
|
39
|
+
"@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "How is Pro different from the free install?", "acceptedAnswer": { "@type": "Answer", "text": "Free keeps local recall, checks, and MCP. Pro adds the personal dashboard, DPO export, auto-connect, and founder support." } }, { "@type": "Question", "name": "Does Pro require a cloud account?", "acceptedAnswer": { "@type": "Answer", "text": "No. Pro stays local-first; Team is the hosted rollout lane for shared lessons, org visibility, and reviews." } }, { "@type": "Question", "name": "What happens after checkout?", "acceptedAnswer": { "@type": "Answer", "text": "You activate Pro, connect the local dashboard, and inspect blocked actions, lessons, and exports." } }, { "@type": "Question", "name": "When should I choose Team instead of Pro?", "acceptedAnswer": { "@type": "Answer", "text": "Choose Team when one correction needs to protect multiple developers or agents across shared repositories." } }]
|
|
118
40
|
}
|
|
119
41
|
</script>
|
|
120
42
|
|
|
@@ -796,7 +718,7 @@ __GA_BOOTSTRAP__
|
|
|
796
718
|
<a href="#pricing">Pricing</a>
|
|
797
719
|
<a href="#faq">FAQ</a>
|
|
798
720
|
<a href="/dashboard">Demo</a>
|
|
799
|
-
<a class="nav-cta
|
|
721
|
+
<a class="nav-cta" data-quick-read-link href="https://buy.stripe.com/aFa8wPgH29Lo4lH35V3sI0w" onclick="sendFirstPartyTelemetry('quick_read_checkout_started',{ctaId:'pro_page_nav_quick_read_checkout',price:19});sendGa4Event('begin_checkout',{currency:'USD',value:19,items:[{item_id:'quick_read',item_name:'AI Agent Failure Quick Read'}]});">Pay $19 quick read</a>
|
|
800
722
|
</div>
|
|
801
723
|
</div>
|
|
802
724
|
</nav>
|
|
@@ -807,8 +729,8 @@ __GA_BOOTSTRAP__
|
|
|
807
729
|
<div class="eyebrow">Paid lane for individual operators</div>
|
|
808
730
|
<h1>Buy the operator loop that proves your AI agent stopped repeating the mistake.</h1>
|
|
809
731
|
<p style="font-size:13px;opacity:0.8;margin-bottom:0.5rem;">Updated: <time datetime="2026-04-20">2026-04-20</time> · by <a href="https://github.com/IgorGanapolsky" style="color:inherit;">Igor Ganapolsky</a></p>
|
|
810
|
-
<p>ThumbGate Pro is
|
|
811
|
-
<p>
|
|
732
|
+
<p>ThumbGate Pro is for one operator who already hit a repeated AI-agent failure and now needs proof: what was blocked, why it was blocked, and what changed before the next risky run.</p>
|
|
733
|
+
<p>If you need help today, start with the $19 quick read: send one failed tool call or workflow snippet and get the likely rule shape plus proof check. Use Pro when you want the local dashboard and DPO export.</p>
|
|
812
734
|
<div class="hero-proof">
|
|
813
735
|
<div class="proof-pill">Personal local dashboard</div>
|
|
814
736
|
<div class="proof-pill">DPO export from real corrections</div>
|
|
@@ -816,7 +738,8 @@ __GA_BOOTSTRAP__
|
|
|
816
738
|
<div class="proof-pill">Founder support on risky flows</div>
|
|
817
739
|
</div>
|
|
818
740
|
<div class="hero-actions">
|
|
819
|
-
<a class="btn-primary
|
|
741
|
+
<a class="btn-primary" data-quick-read-link href="https://buy.stripe.com/aFa8wPgH29Lo4lH35V3sI0w" onclick="sendFirstPartyTelemetry('quick_read_checkout_started',{ctaId:'pro_page_hero_quick_read_checkout',price:19});sendGa4Event('begin_checkout',{currency:'USD',value:19,items:[{item_id:'quick_read',item_name:'AI Agent Failure Quick Read'}]});">Pay $19 quick read</a>
|
|
742
|
+
<a class="btn-secondary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_hero&utm_campaign=pro_pack&cta_id=pro_page_primary&cta_placement=hero&plan_id=pro&landing_path=%2Fpro">Start Pro dashboard</a>
|
|
820
743
|
<a class="btn-secondary btn-demo" href="/dashboard?utm_source=website&utm_medium=pro_page&utm_campaign=pro_pack">Open dashboard demo</a>
|
|
821
744
|
<a class="btn-ghost btn-free-path" href="/guide?utm_source=website&utm_medium=pro_page&utm_campaign=free_install">Stay on Free and install locally</a>
|
|
822
745
|
</div>
|
|
@@ -852,6 +775,18 @@ __GA_BOOTSTRAP__
|
|
|
852
775
|
<p>Visual check debugger, DPO export, auto-connect after activation, Model Hardening Advisor, and founder support for the risky flow you need to harden first.</p>
|
|
853
776
|
</div>
|
|
854
777
|
|
|
778
|
+
<div class="aside-card" data-pro-paid-recovery>
|
|
779
|
+
<div class="aside-kicker">Team workflow blocked?</div>
|
|
780
|
+
<h3>Buy the paid diagnostic</h3>
|
|
781
|
+
<p>Skip self-serve Pro and pay for the smallest useful review now.</p>
|
|
782
|
+
<div class="price-stack">
|
|
783
|
+
<a class="btn-secondary" data-first-rule-link href="https://buy.stripe.com/4gM6oHgH2bTw4lH6i73sI0z" onclick="sendFirstPartyTelemetry('first_failure_rule_checkout_started',{ctaId:'pro_page_first_failure_rule_checkout',price:1});sendGa4Event('begin_checkout',{currency:'USD',value:1,items:[{item_id:'first_failure_rule',item_name:'First AI Agent Failure Rule'}]});">Pay $1 first rule</a>
|
|
784
|
+
<a class="btn-secondary" data-quick-read-link href="https://buy.stripe.com/aFa8wPgH29Lo4lH35V3sI0w" onclick="sendFirstPartyTelemetry('quick_read_checkout_started',{ctaId:'pro_page_quick_read_checkout',price:19});">Pay $19 quick read</a>
|
|
785
|
+
<a class="btn-primary" data-sprint-diagnostic-link href="__SPRINT_DIAGNOSTIC_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_diagnostic_checkout_started',{ctaId:'pro_page_sprint_diagnostic_checkout'});sendGa4Event('begin_checkout',{currency:'USD',value:__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__});">Pay $__SPRINT_DIAGNOSTIC_PRICE_DOLLARS__ diagnostic</a>
|
|
786
|
+
<a class="btn-secondary" data-workflow-sprint-link href="__WORKFLOW_SPRINT_CHECKOUT_URL__" onclick="sendFirstPartyTelemetry('workflow_sprint_checkout_started',{ctaId:'pro_page_workflow_sprint_checkout'});sendGa4Event('begin_checkout',{currency:'USD',value:__WORKFLOW_SPRINT_PRICE_DOLLARS__});">Pay $__WORKFLOW_SPRINT_PRICE_DOLLARS__ sprint</a>
|
|
787
|
+
</div>
|
|
788
|
+
</div>
|
|
789
|
+
|
|
855
790
|
<div class="aside-card">
|
|
856
791
|
<div class="aside-kicker">Keep the buyer path warm</div>
|
|
857
792
|
<h3>Save your work email before you decide</h3>
|
|
@@ -860,7 +795,7 @@ __GA_BOOTSTRAP__
|
|
|
860
795
|
<input type="email" name="email" data-buyer-email placeholder="you@company.com" required>
|
|
861
796
|
<div class="buyer-form-actions">
|
|
862
797
|
<button type="submit" class="btn-secondary">Email me the demo</button>
|
|
863
|
-
<button type="button" class="btn-primary btn-email-checkout">Start
|
|
798
|
+
<button type="button" class="btn-primary btn-email-checkout">Start Pro with this email</button>
|
|
864
799
|
</div>
|
|
865
800
|
<p class="buyer-form-note">No sales deck. Just the Pro demo path, launch updates, and a prefilled checkout when you are ready.</p>
|
|
866
801
|
<p class="buyer-form-status" data-newsletter-status aria-live="polite"></p>
|
|
@@ -901,7 +836,7 @@ __GA_BOOTSTRAP__
|
|
|
901
836
|
<div class="grid-3">
|
|
902
837
|
<div class="feature-card">
|
|
903
838
|
<h3>Debug the exact block in minutes</h3>
|
|
904
|
-
<p>The visual
|
|
839
|
+
<p>The visual debugger shows each blocked action and check, so you stop guessing whether the Reliability Gateway is working.</p>
|
|
905
840
|
<ul>
|
|
906
841
|
<li>See the check, evidence, and lesson behind each deny.</li>
|
|
907
842
|
<li>Trust the system faster on deploys, migrations, and CI.</li>
|
|
@@ -909,7 +844,7 @@ __GA_BOOTSTRAP__
|
|
|
909
844
|
</div>
|
|
910
845
|
<div class="feature-card">
|
|
911
846
|
<h3>Turn corrections into DPO export</h3>
|
|
912
|
-
<p>Pro turns real thumbs-down corrections into
|
|
847
|
+
<p>Pro turns real thumbs-down corrections into preference pairs for model hardening, instead of leaving learning trapped in one operator's head.</p>
|
|
913
848
|
<ul>
|
|
914
849
|
<li>DPO export built from actual accepted vs rejected behavior.</li>
|
|
915
850
|
<li>Model Hardening Advisor helps decide when fine-tuning is worth it.</li>
|
|
@@ -917,7 +852,7 @@ __GA_BOOTSTRAP__
|
|
|
917
852
|
</div>
|
|
918
853
|
<div class="feature-card">
|
|
919
854
|
<h3>Ship proof, not just confidence</h3>
|
|
920
|
-
<p>When the next risky
|
|
855
|
+
<p>When the next risky review happens, you have evidence links, reports, and a founder-supported path to harden the failure that keeps returning.</p>
|
|
921
856
|
<ul>
|
|
922
857
|
<li>Review-ready evidence for one operator's high-risk workflows.</li>
|
|
923
858
|
<li>Founder support on force-pushes, deploys, migrations, and CI.</li>
|
|
@@ -962,7 +897,7 @@ __GA_BOOTSTRAP__
|
|
|
962
897
|
<div class="section-label" style="text-align:left;margin-bottom:8px;">Pricing</div>
|
|
963
898
|
<h3>ThumbGate Pro</h3>
|
|
964
899
|
<div class="price">$19<span>/mo</span></div>
|
|
965
|
-
<div class="annual">$149/year available ·
|
|
900
|
+
<div class="annual">$149/year available · Card required · billed today</div>
|
|
966
901
|
<p class="pricing-note">For the individual operator who wants a personal local dashboard, DPO export, review-ready evidence, and founder help on the first risky workflow.</p>
|
|
967
902
|
<ul>
|
|
968
903
|
<li><strong>Personal local dashboard</strong> — inspect blocked actions, active checks, and lesson evidence without a cloud account.</li>
|
|
@@ -971,7 +906,7 @@ __GA_BOOTSTRAP__
|
|
|
971
906
|
<li><strong>Founder support</strong> — get help hardening the first force-push, deploy, migration, or CI failure that keeps repeating.</li>
|
|
972
907
|
</ul>
|
|
973
908
|
<div class="pricing-actions">
|
|
974
|
-
<a class="btn-primary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_pricing&utm_campaign=pro_pack&cta_id=pricing_pro&cta_placement=pricing&plan_id=pro&landing_path=%2Fpro">Start
|
|
909
|
+
<a class="btn-primary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_pricing&utm_campaign=pro_pack&cta_id=pricing_pro&cta_placement=pricing&plan_id=pro&landing_path=%2Fpro">Start Pro Now</a>
|
|
975
910
|
<a class="btn-secondary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_pricing&utm_campaign=pro_pack&cta_id=pricing_pro_annual&cta_placement=pricing&plan_id=pro&billing_cycle=annual&landing_path=%2Fpro">Choose annual</a>
|
|
976
911
|
</div>
|
|
977
912
|
<div class="pricing-meta">Best for one operator with one repeated failure to prove. Stay on Free if you only need the local install; buy Pro when the dashboard, export, and proof trail save you time.</div>
|
|
@@ -1026,7 +961,7 @@ __GA_BOOTSTRAP__
|
|
|
1026
961
|
<h2>Stop losing time to the same AI-agent failure.</h2>
|
|
1027
962
|
<p>Start Pro, harden one repeated mistake, and keep the proof trail: blocked action, lesson, prevention rule, and export path.</p>
|
|
1028
963
|
<div class="hero-actions" style="justify-content:center;">
|
|
1029
|
-
<a class="btn-primary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_final&utm_campaign=pro_pack&cta_id=final_go_pro&cta_placement=final&plan_id=pro&landing_path=%2Fpro">Start
|
|
964
|
+
<a class="btn-primary btn-pro-checkout" href="/checkout/pro?utm_source=website&utm_medium=pro_page_final&utm_campaign=pro_pack&cta_id=final_go_pro&cta_placement=final&plan_id=pro&landing_path=%2Fpro">Start Pro Now</a>
|
|
1030
965
|
<a class="btn-secondary btn-demo" href="/dashboard?utm_source=website&utm_medium=pro_page_final&utm_campaign=pro_pack">Open dashboard demo</a>
|
|
1031
966
|
</div>
|
|
1032
967
|
</div>
|
|
@@ -1088,6 +1023,9 @@ function sendFirstPartyTelemetry(eventType, props) {
|
|
|
1088
1023
|
}).catch(function() {});
|
|
1089
1024
|
}
|
|
1090
1025
|
|
|
1026
|
+
function sendGa4Event(e,p){if(typeof gtag==='function')gtag('event',e,p||{})}
|
|
1027
|
+
function initializeProPaidRecovery(){var c=document.querySelector('[data-pro-paid-recovery]');if(!c)return;var n=0;c.querySelectorAll('a[href]').forEach(function(a){var h=a.getAttribute('href')||'';if(/^https?:\/\//.test(h))n+=1;else a.hidden=true});c.hidden=n===0}
|
|
1028
|
+
|
|
1091
1029
|
function initializeBuyerIntent() {
|
|
1092
1030
|
globalThis.ThumbGateBuyerIntent.initializeBuyerIntent({
|
|
1093
1031
|
page: 'pro',
|
|
@@ -1129,6 +1067,7 @@ trackClick('.btn-pro-checkout', 'pro_checkout_start', { tier: 'pro', page: 'pro'
|
|
|
1129
1067
|
trackClick('.btn-demo', 'pro_demo_click', { page: 'pro' });
|
|
1130
1068
|
trackClick('.btn-free-path', 'pro_free_path_click', { page: 'pro' });
|
|
1131
1069
|
trackClick('.proof-links a', 'pro_proof_click', { page: 'pro' });
|
|
1070
|
+
initializeProPaidRecovery();
|
|
1132
1071
|
initializeBuyerIntent();
|
|
1133
1072
|
globalThis.buyerJourney = globalThis.ThumbGateBuyerIntent.initializeBehaviorAnalytics({
|
|
1134
1073
|
pageType: 'marketing',
|
|
@@ -1145,6 +1084,10 @@ globalThis.buyerJourney = globalThis.ThumbGateBuyerIntent.initializeBehaviorAnal
|
|
|
1145
1084
|
],
|
|
1146
1085
|
ctaImpressions: [
|
|
1147
1086
|
{ selector: '.btn-pro-checkout', ctaId: 'pro_checkout', ctaPlacement: 'pro_page', planId: 'pro' },
|
|
1087
|
+
{ selector: '[data-first-rule-link]', ctaId: 'pro_page_first_failure_rule_checkout', ctaPlacement: 'pro_paid_recovery', planId: 'first_failure_rule' },
|
|
1088
|
+
{ selector: '[data-quick-read-link]', ctaId: 'pro_page_quick_read_checkout', ctaPlacement: 'pro_paid_recovery', planId: 'quick_read' },
|
|
1089
|
+
{ selector: '[data-sprint-diagnostic-link]', ctaId: 'pro_page_sprint_diagnostic_checkout', ctaPlacement: 'pro_paid_recovery', planId: 'sprint_diagnostic' },
|
|
1090
|
+
{ selector: '[data-workflow-sprint-link]', ctaId: 'pro_page_workflow_sprint_checkout', ctaPlacement: 'pro_paid_recovery', planId: 'workflow_sprint' },
|
|
1148
1091
|
{ selector: '.btn-demo', ctaId: 'pro_demo', ctaPlacement: 'pro_page', planId: 'proof' },
|
|
1149
1092
|
{ selector: '.btn-free-path', ctaId: 'pro_free_path', ctaPlacement: 'pro_page', planId: 'free' }
|
|
1150
1093
|
]
|
package/scripts/billing.js
CHANGED
|
@@ -412,9 +412,7 @@ function resolveCheckoutBrandUrls(appOrigin) {
|
|
|
412
412
|
};
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
-
// Resolve the per-tier product image
|
|
416
|
-
// Keeping three distinct URLs means the Stripe dashboard and checkout surface
|
|
417
|
-
// never show twins for Free/Pro/Team; see tests/billing-tier-icons.test.js.
|
|
415
|
+
// Resolve the per-tier product image used by Stripe Checkout.
|
|
418
416
|
function resolveTierIconUrl(planId, appOrigin) {
|
|
419
417
|
const brandUrls = resolveCheckoutBrandUrls(appOrigin);
|
|
420
418
|
const normalized = typeof planId === 'string' ? planId.toLowerCase() : '';
|
|
@@ -2523,12 +2521,31 @@ function buildCheckoutSessionPayload({ successUrl, cancelUrl, customerEmail, che
|
|
|
2523
2521
|
quantity: checkoutSelection.quantity,
|
|
2524
2522
|
}];
|
|
2525
2523
|
|
|
2524
|
+
const explicitTrialDays = normalizeInteger(
|
|
2525
|
+
checkoutMetadata?.trialPeriodDays
|
|
2526
|
+
?? checkoutMetadata?.trial_period_days
|
|
2527
|
+
?? checkoutMetadata?.trialDays
|
|
2528
|
+
?? checkoutMetadata?.trial_days
|
|
2529
|
+
);
|
|
2530
|
+
const trialFlag = (normalizeText(checkoutMetadata?.trial) || '').toLowerCase();
|
|
2531
|
+
const shouldStartTrial = !pack && (
|
|
2532
|
+
explicitTrialDays > 0
|
|
2533
|
+
|| trialFlag === '1'
|
|
2534
|
+
|| trialFlag === 'true'
|
|
2535
|
+
|| trialFlag === 'yes'
|
|
2536
|
+
);
|
|
2537
|
+
const trialPeriodDays = explicitTrialDays > 0
|
|
2538
|
+
? Math.min(explicitTrialDays, 30)
|
|
2539
|
+
: 7;
|
|
2540
|
+
|
|
2526
2541
|
const sessionPayload = {
|
|
2527
2542
|
success_url: successUrl,
|
|
2528
2543
|
cancel_url: cancelUrl,
|
|
2529
2544
|
payment_method_types: ['card', 'link'],
|
|
2530
2545
|
mode: pack ? 'payment' : 'subscription',
|
|
2531
2546
|
line_items: lineItems,
|
|
2547
|
+
allow_promotion_codes: true,
|
|
2548
|
+
after_expiration: { recovery: { enabled: true, allow_promotion_codes: true } },
|
|
2532
2549
|
branding_settings: buildCheckoutBrandingSettings(appOrigin),
|
|
2533
2550
|
metadata: serializeStripeMetadata({
|
|
2534
2551
|
...checkoutMetadata,
|
|
@@ -2539,10 +2556,9 @@ function buildCheckoutSessionPayload({ successUrl, cancelUrl, customerEmail, che
|
|
|
2539
2556
|
packId: pack ? pack.id : null,
|
|
2540
2557
|
credits: pack ? pack.credits : null,
|
|
2541
2558
|
}),
|
|
2542
|
-
// Keep the trial, but require a payment method so trials can convert without dunning.
|
|
2543
2559
|
...(pack ? {} : {
|
|
2544
|
-
subscription_data: { trial_period_days: 7 },
|
|
2545
2560
|
payment_method_collection: 'always',
|
|
2561
|
+
...(shouldStartTrial ? { subscription_data: { trial_period_days: trialPeriodDays } } : {}),
|
|
2546
2562
|
}),
|
|
2547
2563
|
};
|
|
2548
2564
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const PRO_MONTHLY_PAYMENT_LINK = 'https://thumbgate
|
|
3
|
+
const PRO_MONTHLY_PAYMENT_LINK = 'https://thumbgate.ai/go/pro?utm_source=offer';
|
|
4
4
|
const PRO_ANNUAL_PAYMENT_LINK = 'https://buy.stripe.com/3cI8wPfCYaPs2dzdKz3sI07';
|
|
5
5
|
|
|
6
6
|
const PRO_MONTHLY_PRICE_ID = 'price_1THQY7GGBpd520QYHoS7RG0J';
|