wiki/decisions/2026-07-03-direct-beta-email-delivery-supersedes-card-backed-beta.md
ADR: Direct Beta Email Delivery With Optional Card-Backed Setup
Date: 2026-07-03 Status: accepted
Decision
Scout beta access has two self-service paths:
- Primary low-friction path: direct name/email registration through
POST /v1/hosted/beta-key. - Secondary payment-pipeline verification path:
$0Stripe setup-mode checkout forbeta_trialwhen Stripe Checkout, webhook signing, and SMTP key delivery are configured.
When hosted beta signup and SMTP delivery are configured, Scout provisions a
finite-credit hosted_beta_pass tenant, generates a one-time raw API key,
emails that key to the registered address, and records a delivered signup
event. The browser/API response never returns raw_api_key.
If SMTP delivery is not configured, Scout records a pending signup request and does not create an account, key, or credits.
Stripe remains the paid hosted-credit checkout path and the optional $0
card-backed beta setup path. It is not a shared-password or manual invite gate.
Clarifies
This clarifies the earlier card-backed beta setup direction captured in:
2026-07-03-card-backed-beta-with-email-queue-fallback.md2026-07-03-beta-specific-stripe-return-urls.md- parts of
2026-07-03-email-first-beta-registration-supersedes-stripe-first.md
Those files remain as history. This ADR is the current operating decision: email registration is primary, card-backed setup is optional/secondary, and both paths are self-service.
Rationale
The product goal is lower-friction beta testing. Requiring Stripe for a free
beta key creates unnecessary friction before the value of the hosted service is
proven. Direct email delivery gives testers a normal SaaS-style API-key
onboarding path while still preserving measurement, metering, and a finite
credit boundary. The optional $0 setup path keeps the future paid billing
pipeline verifiable without forcing every beta tester through Stripe first.
Consequences
/betais the public beta registration page./v1/hosted/beta-keyis the self-service beta key endpoint.ready_for_beta_key_deliveryis the readiness flag for beta signup.ready_for_beta_checkoutis the readiness flag for optional$0card-backed beta setup.- Paid packages still use
/v1/billing/stripe/checkout-session. - SMTP delivery is the primary production blocker for direct beta self-service.
- Stripe Checkout, webhook signing, and SMTP delivery are blockers for optional
$0card-backed beta setup.
Verification
Validated in code with focused tests:
tests/unit/api/test_hosted_scrape.pytests/unit/api/test_billing_stripe_checkout.pytests/unit/scripts/test_hosted_readiness_check.pytests/unit/website/test_launch_website.pytests/unit/test_hosted_pricing_docs.py
The combined focused run reported 88 passed, 2 warnings.