Source decision 0026 — ✅ As a User, I want to join a site from the app with my existing account
Original source · exact version bafyreidph2qodlq3enowjhmrupyggkx35v7dskj6umjmtzxt7do4eli5ym · Read-derived block
Classification: story; source kind: story; decision: approve; confidence: high; review status: needs-review.
Rationale: An explicit app membership story with acceptance criteria, flow and edge cases. Its authenticated join result is distinct from account creation and from avatar-triggered sign-in alone.
Review qualification: Uncertain identity/behavior/duplication remains a separate candidate; do not merge without review.
Canonical target (to be published after manifest): Proposed canonical target
Similar source candidates — kept separate
Evidence snapshot: original readable text and block backlinks
Heading Design source block
Heading Acceptance Criteria source block
Paragraph A Join button is visible in the site top bar. Tapping Join opens a modal within the app that shows the site name and two options: Create identity in Hypermedia and Already have a Hypermedia identity, plus a quick link labeled "I have an identity from another site?" source block
Paragraph The modal copy explains that the site is built with Hypermedia and that creating an identity takes two minutes — no technical language source block
Paragraph Tapping "Already have a Hypermedia identity" takes the user to the email screen inside the Hypermedia sign-in flow source block
Paragraph Valid email advances to the passkey screen showing "Good to see you again" and the email address to remind source block
Paragraph Passkey confirmation uses device biometrics or PIN source block
Paragraph On successful passkey confirmation, the user sees a "Join [site name]" screen showing all their available identities; the currently active identity is pre-selected with a checkmark source block
Paragraph Primary CTA is "Start participating" — one tap, no further steps source block
Paragraph On joining, the site is added to Joined Sites in the sidebar immediately and the Join button disappears from the site top bar source block
Paragraph A toast alert appears: "You've joined [site name] — you can now comment and participate" and auto-dismisses after ~3 seconds source block
Paragraph No new identity is created — the user's existing remote identity is used throughout and user is as a full member with participation features source block
Heading Basic Flow source block
Paragraph User is viewing a site in the app — Join button visible in top bar source block
Paragraph Taps Join — modal opens showing "Join [site name]" source block
Paragraph Taps "Already have a Hypermedia identity" source block
Paragraph Enters email linked to their Hypermedia identity source block
Paragraph Taps Continue — passkey screen appears source block
Paragraph Confirms with passkey source block
Paragraph "Join [site name]" screen shows available identities — primary identity pre-selected source block
Paragraph Taps "Start participating" source block
Paragraph Returns to site as member — Join button gone, site added to sidebar, toast appears source block
Heading Edge Cases source block
Paragraph ⚠️ Invalid email format → inline error: "That doesn't look like a valid email. Check for typos and try again." Button disabled until fixed source block
Paragraph ⚠️ Email not linked to any Hypermedia identity → "No Hypermedia identity found for this email." with option to create one instead source block
Paragraph Passkey source block
Paragraph ⚠️ Device does not support passkeys → fallback method offered, user not blocked (password needs to be developed later) source block
Paragraph ⚠️User cancels the biometric prompt → returns to passkey screen, can retry source block
Paragraph ⚠️ Passkey creation fails due to device error → retry option shown source block
Paragraph Clear error messages: avoid: "Failed to fletched" "Invalid Handoff token" review this one by one source block
Paragraph ⚠️ User taps "Use another email" → returns to email screen, previous entry cleared source block
Paragraph ⚠️ User is already a member of this site → join confirmation is skipped, user lands directly as a member with no duplicate entry created source block
Paragraph ⚠️ User taps "I have an identity from another site?" → path TBD source block
Paragraph ⚠️ User closes the modal mid-flow → returns to site as guest, no partial state created, Join button remains visible source block
Do you like what you are reading? Subscribe to receive updates.
Unsubscribe anytime