Add self-serve sign-up page (register + Stripe Checkout) #31

Closed
opened 2026-07-26 14:26:38 -07:00 by westfarn · 3 comments
Owner

Summary

Add a self-serve registration (sign-up) flow so new users can create an account without admin provisioning, then complete payment on Stripe’s hosted Checkout.

Depends on / pairs with: chat_backend finance + Stripe ticket (invoices, payments, Checkout session API).

Context

Today the app has a production Sign In route (/signin/) but no first-class self-serve sign-up. Self-serve customers need to register and pay before (or as part of) getting access.

Requirements

  • New self-serve sign-up page (route + UI consistent with existing Sign In)
  • Collect account basics needed to create the user (email, password, any required profile fields)
  • Call backend to register the account, then start Stripe Checkout (redirect to Stripe — do not collect card data in-app)
  • Handle success / cancel return URLs from Stripe (confirm paid state, then land in app or show clear next step)
  • Link from Sign In (“Don’t have an account? Sign up”) and vice versa
  • Validation, error states, and loading states matching existing auth UX
  • Tests for form validation and happy-path redirect to Checkout URL

Acceptance criteria

  • Public /signup/ (or equivalent) route wired in App.tsx
  • User can register without admin intervention
  • After register (or as next step), user is sent to Stripe Checkout to pay
  • Success path returns user into authenticated app (or clear “payment received” + sign-in)
  • Cancel path returns without charging and explains how to retry
  • Sign In ↔ Sign Up navigation links present
  • Unit/integration tests for core flow

Notes

  • Card entry happens only on Stripe
  • Backend finance app owns Invoice/Payment persistence and webhooks
  • Exact field set / plan selection UI can stay minimal for MVP (single subscription from backend settings)
## Summary Add a self-serve registration (sign-up) flow so new users can create an account without admin provisioning, then complete payment on Stripe’s hosted Checkout. Depends on / pairs with: `chat_backend` finance + Stripe ticket (invoices, payments, Checkout session API). ## Context Today the app has a production **Sign In** route (`/signin/`) but no first-class self-serve **sign-up**. Self-serve customers need to register and pay before (or as part of) getting access. ## Requirements - New self-serve **sign-up** page (route + UI consistent with existing Sign In) - Collect account basics needed to create the user (email, password, any required profile fields) - Call backend to register the account, then start Stripe Checkout (redirect to Stripe — do **not** collect card data in-app) - Handle success / cancel return URLs from Stripe (confirm paid state, then land in app or show clear next step) - Link from Sign In (“Don’t have an account? Sign up”) and vice versa - Validation, error states, and loading states matching existing auth UX - Tests for form validation and happy-path redirect to Checkout URL ## Acceptance criteria - [ ] Public `/signup/` (or equivalent) route wired in `App.tsx` - [ ] User can register without admin intervention - [ ] After register (or as next step), user is sent to Stripe Checkout to pay - [ ] Success path returns user into authenticated app (or clear “payment received” + sign-in) - [ ] Cancel path returns without charging and explains how to retry - [ ] Sign In ↔ Sign Up navigation links present - [ ] Unit/integration tests for core flow ## Notes - Card entry happens only on Stripe - Backend finance app owns Invoice/Payment persistence and webhooks - Exact field set / plan selection UI can stay minimal for MVP (single subscription from backend settings)
Author
Owner

Backend companion: ai_ml_operations/chat_backend#21 (finance app + Stripe invoices/payments).

Backend companion: https://git.aimloperations.com/ai_ml_operations/chat_backend/issues/21 (`finance` app + Stripe invoices/payments).
Author
Owner

Related follow-on (post sign-up billing on Account + Stripe Customer Portal for plan changes/cancellations): ai_ml_operations/chat_web_app#33

#33

Also references finance MVP: ai_ml_operations/chat_backend#21

Related follow-on (post sign-up billing on Account + Stripe Customer Portal for plan changes/cancellations): ai_ml_operations/chat_web_app#33 https://git.aimloperations.com/ai_ml_operations/chat_web_app/issues/33 Also references finance MVP: ai_ml_operations/chat_backend#21
Author
Owner

Related: SSO for registration/sign-in (Google / Microsoft) tracked on backend — ai_ml_operations/chat_backend#24

ai_ml_operations/chat_backend#24

FE Sign In / Sign Up should gain SSO buttons as part of that work (alongside email/password flow here).

Related: SSO for registration/sign-in (Google / Microsoft) tracked on backend — ai_ml_operations/chat_backend#24 https://git.aimloperations.com/ai_ml_operations/chat_backend/issues/24 FE Sign In / Sign Up should gain SSO buttons as part of that work (alongside email/password flow here).
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ai_ml_operations/chat_web_app#31