Skip to content

Account

iOS Android
Status ⏳ ⏳
Code — —

Source: click dummies docs/companion_app/sailever-ios.html, docs/companion_app/sailever-android.html (Account). Verified against code: 2026-10-11 (no code yet; checked against the click dummies)

Purpose

The user's profile, passkeys, plan and app settings. Same data as the website's /my/profile and /my/account, plus the theme and version of the app.

Server API

Need Status
Profile read / update, email change with confirmation: GET/PATCH /api/v1/account ⏳ missing (website: /my/profile, /my/account)
Subscription: GET /api/v1/account/subscription ⏳ missing (website: /my/subscription)
Passkeys: options, create, delete under /api/v1/passkeys ⏳ missing (website: /my/passkeys). Native passkeys need the app's associated domain (Apple app site association file, Android asset links file) on sailever.com.
Sign out: DELETE /api/v1/session ⏳ missing

Layout / behaviour

Opened from the avatar on any tab.

Element Content & format Behaviour iOS vs Android
Container Title "Account". — iOS: sheet with Done. Android: pushed screen with back arrow.
Profile header Avatar with initials, "{first} {last}", email. — iOS: centred, large uppercase name. Android: avatar left, name and email right.

Profile

Element Content & format Behaviour iOS vs Android
First name Text field. — —
Last name Text field. — —
Email address Email field. Hint "You sign in with this address. A new one only counts once you click the link we send to it." A new address is pending until confirmed. —
Preferred language English, Deutsch, Français, Italiano, Español, Ελληνικά, Português. Hint "For the app and the emails we send you." Changes the app language and the email language. —
Save profile Button. Saves. Same email: "Profile saved." New email: "Profile saved. We sent a link to {email}: click it to switch to that address." iOS: centred tinted cell. Android: filled button.

Passkeys

Element Content & format Behaviour iOS vs Android
Lede iOS: "Sign in with Face ID or Touch ID instead of waiting for an email. The email link always keeps working." Android: "Sign in with your fingerprint, face or screen lock instead of waiting for an email. The email link always keeps working." — Platform wording.
Passkey row Passkey icon, name, "Added {date} · last used {date}" or "not used yet". Remove button. Remove: confirmation "Remove this passkey?" / "You can still sign in with an email link." Then "Passkey removed." iOS: red minus icon. Android: trash icon.
Empty "No passkeys yet." — —
Add passkey Button. Opens the system passkey sheet for sailever.com. Success: new row, "Passkey added. Next time, sign in with it." iOS: sheet "Save a passkey for “sailever.com”?", saved in iCloud Keychain, Face ID. Android: Credential Manager "Create a passkey for sailever.com?", saved in Google Password Manager.

Subscription

Element Content & format Behaviour iOS vs Android
Plan "Beta Pro (Active)". Text: "Free during the beta. Pricing will be announced in advance; nothing is billed automatically." Read only. iOS: cell with a green "Active" badge. Android: card with the badge in the title row.

App

Element Content & format Behaviour iOS vs Android
Theme "System" / "Light" / "Dark". Default System. Applies at once. Stored on the phone. iOS label "Appearance". Android label "Theme", with icons.
Units "NM · kn · °T". Read only. —
Version App version, mono. Read only. —
Sign out Button. Signs out on this phone and returns to sign-in (⏳ not designed). iOS: red cell. Android: outlined button with logout icon.

States and edge cases

  • Email already taken: "That address already belongs to another account." (website copy).
  • Passkey creation cancelled or failed: "The passkey couldn't be added. Please try again."

Known deviations

  • Copy aligned with the website (app.account.*, app.passkeys.*, app.subscription.*): "Email address", "Preferred language", the email hint, the confirmation message, "Beta Pro (Active)". The dummies say "Email", "Language" and "We sign you in with a link to this address. Changing it needs a confirmation."
  • The website's language hint says "Used for the emails we send you." The app also uses the setting for its own language, so the app hint differs on purpose.