Sign up #3

Open
opened 2026-10-23 03:31:17 -07:00 by westfarn · 0 comments
Owner

Part of #1.

Web route: /signup/
Source: llm-fe/src/llm-fe/pages/SignUp/SignUp.tsx

Reached from Sign in only when self-serve registration is on.

Screenshot

Sign up

Phone-width capture of https://hesychia.ai/signup/. Analytics consent banner dismissed before capture. Web copy says Stripe because the browser uses Checkout. Android must use Play billing instead.

Behavior

  • Load GET /public/settings/ first. While loading, show “Loading…”.
  • Registration off (or settings failed): “Self-serve registration is not available right now.” Link back to Sign in. No form.
  • Registration on: email (required), first name, last name, company / workspace (all optional except email), password (min 8), confirm password (must match).
  • Submit label on web: “Sign Up & Pay”.
  • SSO buttons use intent signup for the same Google / Microsoft flags as Sign in.
  • Link back to Sign in, and a Terms of Service link.
  • Success stores tokens, loads /user/get/, RevenueCat logIn.
    • needs_checkout === false → Dashboard.
    • Native (this app): start the store purchase, then open Account even if the purchase is cancelled or fails. Do not send the user to Stripe Checkout.
    • Web-only path (do not port): POST /monetization/checkout/ and redirect to checkout_url.
  • Errors: 403 “Account registration is currently disabled.”; email[0]; detail; otherwise “Could not create account. Try again.”

API

Call Purpose
GET /public/settings/ enable_account_registration, oauth.google, oauth.microsoft.
POST /user/create/ Body { email, password, first_name, last_name, company_name }. Returns access, refresh, and needs_checkout.
GET /user/get/ Hydrate the account after create.
POST /monetization/checkout/ Web Stripe only. Body { success_url, cancel_url }. Skip on Android.
RevenueCat purchase Android equivalent of checkout. Confirm with the existing store billing path (POST /monetization/store/confirm/ from storeBilling.ts).

SSO start: {API}/auth/oauth/{provider}/start/?intent=signup.

Android

SignUpScreen exists as a shell. Wire the form, the registration flag, and Play purchase after create. Button copy should not say Stripe.

Part of #1. Web route: `/signup/` Source: `llm-fe/src/llm-fe/pages/SignUp/SignUp.tsx` Reached from Sign in only when self-serve registration is on. ## Screenshot ![Sign up](https://git.aimloperations.com/attachments/939edbd4-b7dd-4b3c-a896-202b46de0bbe) Phone-width capture of https://hesychia.ai/signup/. Analytics consent banner dismissed before capture. Web copy says Stripe because the browser uses Checkout. Android must use Play billing instead. ## Behavior - Load `GET /public/settings/` first. While loading, show “Loading…”. - Registration off (or settings failed): “Self-serve registration is not available right now.” Link back to Sign in. No form. - Registration on: email (required), first name, last name, company / workspace (all optional except email), password (min 8), confirm password (must match). - Submit label on web: “Sign Up & Pay”. - SSO buttons use intent `signup` for the same Google / Microsoft flags as Sign in. - Link back to Sign in, and a Terms of Service link. - Success stores tokens, loads `/user/get/`, RevenueCat `logIn`. - `needs_checkout === false` → Dashboard. - Native (this app): start the store purchase, then open Account even if the purchase is cancelled or fails. Do not send the user to Stripe Checkout. - Web-only path (do not port): `POST /monetization/checkout/` and redirect to `checkout_url`. - Errors: 403 “Account registration is currently disabled.”; `email[0]`; `detail`; otherwise “Could not create account. Try again.” ## API | Call | Purpose | | --- | --- | | `GET /public/settings/` | `enable_account_registration`, `oauth.google`, `oauth.microsoft`. | | `POST /user/create/` | Body `{ email, password, first_name, last_name, company_name }`. Returns `access`, `refresh`, and `needs_checkout`. | | `GET /user/get/` | Hydrate the account after create. | | `POST /monetization/checkout/` | Web Stripe only. Body `{ success_url, cancel_url }`. Skip on Android. | | RevenueCat purchase | Android equivalent of checkout. Confirm with the existing store billing path (`POST /monetization/store/confirm/` from `storeBilling.ts`). | SSO start: `{API}/auth/oauth/{provider}/start/?intent=signup`. ## Android `SignUpScreen` exists as a shell. Wire the form, the registration flag, and Play purchase after create. Button copy should not say Stripe.
265 KiB
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_android#3