feat(web): fold Get Pro checkout onto Home - #1671
Conversation
Reuse ProCheckoutButton and Turnstile on cold / so Workflow Pro $39/$390 checkout no longer requires leaving for /pricing. Keep pricing as the deeper plans page and leave paste→Studio intact. Co-authored-by: Hayden <groupthinking@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned FilesNone |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟡 Changes recommended
Client navigation during Turnstile loading can leave the Pricing checkout permanently disabled, and toggle behavior lacks functional coverage.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Moves the existing Workflow Pro checkout onto Home while retaining Pricing and Studio flows.
Changes:
- Adds Home checkout with monthly/annual selection and Turnstile.
- Redirects navigation’s Get Pro CTA to the Home checkout.
- Updates documentation and automated smoke coverage.
File summaries
| File | Description |
|---|---|
apps/web/src/app/page.tsx |
Mounts the Home checkout. |
apps/web/src/components/home/HomeProCheckout.tsx |
Implements the checkout island. |
apps/web/src/components/Nav.tsx |
Targets Home’s checkout anchor. |
apps/web/src/lib/__tests__/home-sell-surface.test.ts |
Checks Home checkout integration. |
apps/web/playwright/smoke.spec.ts |
Adds checkout smoke assertions. |
apps/web/REVENUE-PROCESS.md |
Documents both checkout entry points. |
apps/web/src/lib/billing/PLAN.md |
Records implementation and verification. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| await expect(page.getByRole('button', { name: /Monthly checkout/i })).toBeVisible(); | ||
| await expect(page.getByRole('button', { name: /Annual checkout/i })).toBeVisible(); | ||
| await expect(page.getByTestId('pro-checkout-button')).toBeVisible(); |
| <ProCheckoutButton | ||
| annual={annual} | ||
| label={`Continue to ${WORKFLOW_PRO_PRODUCT_NAME} ${workflowProPriceLabel(annual)} checkout`} | ||
| /> |
CoS AMBER: Home sells Studio workbench + variable transcript quality, not arbitrary-video production E2E. Get Pro checkout fold stays. Co-authored-by: Hayden <groupthinking@users.noreply.github.com>
|
@coderabbitai review |
Keep Get Pro checkout on Home. Stop layout, HowTo, and OG image from claiming a guaranteed transcript or production E2E. Co-authored-by: Hayden <groupthinking@users.noreply.github.com>
Co-authored-by: Hayden <groupthinking@users.noreply.github.com>
|
AMBER copy landed in the merged head ( Production QA on https://uvai.io/ :
Preview showed “Checkout unavailable — Turnstile not configured.” Production must have |
Follows #1668 (CoS authorized 2026-09-08 after HOME SIGNED). No new GitHub issue. Includes CoS AMBER copy guard (2026-09-08): Home must not claim arbitrary-video production E2E or a guaranteed transcript.
Outcome
Cold
/on uvai.io still sells (hero + paste + Workflow Pro $39/$390, Ship quote, Maintain $199) and now hosts the live Get Pro checkout: Cloudflare Turnstile + monthly/annual toggle + Continue to UVAI Workflow Pro checkout. That uses the existingProCheckoutButton→POST /api/billing/checkoutpath (same Stripecs_livesession as/pricing). Paste → Studio handoff is unchanged.Hero copy is scoped to live truth: paste opens the Studio workbench and starts a hashed Video Pack run. Transcript quality varies by source — not a guaranteed production E2E. G.A.T.E. stays parked. Layout OG, JSON-LD HowTo, and OG image alt match that same scope.
Scope
HomeProCheckoutclient island on/reusingProCheckoutButton(Turnstile widget +$39/mo/$390/yr)./#get-proso checkout starts on Home./pricingstays the deeper plans page and still checkouts./pricing./pricing).Risk
NEXT_PUBLIC_TURNSTILE_SITE_KEYis missing, Home shows the existing “Checkout unavailable — Turnstile not configured.” copy instead of a fake purchase. Stripe still fail-closes withoutSTRIPE_PRICE_PRO_*in production. Preview HTML for the first deploy of this branch showed that Turnstile-unavailable message (preview env may not include the production sitekey). The production sitekey is hostname-bound to uvai.io, so localhost Turnstile reports verification failed (expected)./pricinglink again and the prior hero strings return.Verification
Tied to head SHA
42987e952.cd apps/web && npx vitest run— 88 files, 559 passed / 1 skippedHomeProCheckout, then passed; AMBER copy guard asserts honest hero + OG/JSON-LD stringshttp://127.0.0.1:3000/(prior head): sell hero, paste, $39/$390/$199, Get Pro island, monthly→annual switches button to$390/yrhttps://www.youtube.com/watch?v=auJzb1D-fag→/studio?video=/pricingstill has Continue to UVAI Workflow Pro $39/mo checkoutdpl_87FNQvNfuShakRAQmniRbLgTHKZM(pre-AMBER): Get Pro island on/, $39/$390/$199, paste, Nav/#get-pro. Preview showed “Checkout unavailable — Turnstile not configured.”42987e952Production evidence
Vercel preview for
v0-uvai: https://v0-uvai-git-cursor-home-get-pro-checkout-aaa9-garv1.vercel.app (SSO-protected). Production QA after merge:https://uvai.io/— honest hero (“Open the Studio workbench” + transcript-quality caveat), paste field, $39 / $390 / $199, Get Pro checkout island (not “Loading studio…”).cs_liveat $39/mo (or annual $390).https://uvai.io/pricingstill checkouts.https://www.youtube.com/watch?v=auJzb1D-fag→/studio?video=.Do not expect a completed Turnstile widget on localhost — sitekey
0x4AAAAAADzjWY_dLlugDWUJis bound to uvai.io. Confirm Turnstile on productionuvai.io(preview may lackNEXT_PUBLIC_TURNSTILE_SITE_KEY).Agent handoff