✅ As a User, I want to join a site from the app with my existing account

✅ As a User, I want to join a site from the app with my existing account


    Behavior from source: Use the app site-top-bar Join entry, sign in with the email and native passkey of an existing remote identity, select from available identities, and Start participating. The app adds the site to Joined Sites and enables membership without creating another identity.

    Original source · exact version bafyreidph2qodlq3enowjhmrupyggkx35v7dskj6umjmtzxt7do4eli5ym

    Reviewed migration decision · Journey map · local task ID ut-0fc7a9f019744e1b.

    Confidence: high; review status: needs-review. Similar source records are not merged. Source status icon is not a committed release or current product state.

Source acceptance and behavior

    The site-top-bar Join button opens an in-app modal naming the site, explaining Hypermedia in nontechnical language, and offering new identity, existing identity and another-site identity options.

    Existing identity opens the email sign-in screen; valid email leads to a passkey screen showing Good to see you again and the email.

    Authenticate with native biometrics or PIN. Show available identities on Join [site name], with the active identity preselected (the basic flow instead calls it primary).

    Start participating joins in one action without creating a new identity; reuse the existing remote identity throughout.

    Add the joined site to the sidebar immediately, hide the Join button, enable participation, and show a confirmation toast for approximately three seconds.

    Invalid email shows an inline error and disables continuation; unknown email shows an error with an option to create an identity.

    Cancelled or failed passkey prompts permit retry with clear errors. Unsupported devices should have a fallback, but password fallback is marked for later development.

    Use another email returns to email entry and clears the previous entry.

    Already-members skip join confirmation and return as members without duplicate entries.

    Closing the modal mid-flow returns to the site as a guest without partial state; Join remains visible.

Full original readable source and block backlinks

    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

Attributes
map
name
✅ As a User, I want to join a site from the app with my existing account
owner
status
candidate
behavior
Use the app site-top-bar Join entry, sign in with the email and native passkey of an existing remote identity, select from available identities, and Start participating. The app adds the site to Joined Sites and enables membership without creating another identity.
goalRefs
1.
map
localIdgoal-c2b5ae1976de27b8
userTask
map
localIdut-0fc7a9f019744e1b
actorRefs
1.
map
localIdactor-b63c637deff3c296
provenance
1.
reviewStatusneeds-review
sourceBlockIddDuCOctU
sourceVersionbafyreidph2qodlq3enowjhmrupyggkx35v7dskj6umjmtzxt7do4eli5ym
sourceDocument
extractionRationaleAn 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.
migrationEntry
proposedReleases

Empty list

acceptanceCriteria
1.The site-top-bar Join button opens an in-app modal naming the site, explaining Hypermedia in nontechnical language, and offering new identity, existing identity and another-site identity options.
2.Existing identity opens the email sign-in screen; valid email leads to a passkey screen showing Good to see you again and the email.
3.Authenticate with native biometrics or PIN. Show available identities on Join [site name], with the active identity preselected (the basic flow instead calls it primary).
4.Start participating joins in one action without creating a new identity; reuse the existing remote identity throughout.
5.Add the joined site to the sidebar immediately, hide the Join button, enable participation, and show a confirmation toast for approximately three seconds.
6.Invalid email shows an inline error and disables continuation; unknown email shows an error with an option to create an identity.
7.Cancelled or failed passkey prompts permit retry with clear errors. Unsupported devices should have a fallback, but password fallback is marked for later development.
8.Use another email returns to email entry and clears the previous entry.
9.Already-members skip join confirmation and return as members without duplicate entries.
10.Closing the modal mid-flow returns to the site as a guest without partial state; Join remains visible.
Attributes schemaThe fields this document carries.
Fetching schema…