Skip to content
Browse documentation
Decided

Navigation and screen map

Every screen in the app, how they connect, and the navigation rules both platforms follow.

Updated: 29 October 2026

The screen map is v2’s, with its numbering kept so the v2 diagrams remain useful, plus the screens v2 left as placeholders (circle details, add service, sync progress, notifications, settings sections).

Top level

1   Sign in ─────────────────────┐
2   Onboarding (first sign-in) ──┤
3   Dashboard (four tabs) ◄──────┘
     3.1 Contacts   3.2 Circles   3.3 Services   3.4 Profile

The Dashboard is one screen with a top bar (the active profile’s avatar and first name left, header actions with words right), the tab’s title under it, the active tab’s content, and a bottom tab bar (the circle-first look, A101; see Visual design). Tabs keep their own scroll position and navigation stack. On tablets the tab bar becomes a rail and the stacks become list/detail panes (see Tablets).

Full map

#ScreenReached fromKind
1Sign inapp start when signed outroot
1.1E-mail code / password reset1push
2.1Welcomefirst sign-inonboarding step
2.2Build your card (A104)2.1step: a checklist hub
2.2.xDetail sheet for names / phones / e-mails / addresses / dates / photos2.2 linesheet (the Profile sheet, A105)
2.3.1About connected services2.2step
2.3.2Connect a service2.3.1step (optional)
2.3.3Invite people you know2.3.2step (optional)
2.4Notifications and privacy (push permission, telemetry consent)2.3.3step
2.5All set2.4step → Dashboard
3.1Contacts tabDashboardtab root
3.1.1Contact card3.1 row (connected)push / detail pane
3.1.2Find people: segments Search and In your phone · N (A106)3.1 Findpush
3.1.2.1Send invitation3.1.2 result, 3.3.1.2 resultpush
3.1.2.2Invitation sent3.1.2.1replace
3.1.3Received invitation3.1 row (received) or notificationpush / detail pane
3.1.4Sent invitation3.1 row (sent)push / detail pane
3.1.5Notificationsheader bellpush
3.1.6Move to circlecontact card “Move”, circle detailssheet
3.2Circles tabDashboardtab root
3.2.1Circle details3.2 circle row or grid columnpush / detail pane
3.2.2Add circle3.2 addsheet
3.3Services tabDashboardtab root
3.3.1Service details3.3 rowpush / detail pane
3.3.1.3Review changes3.3 “Review and sync”, 3.3.1push
3.3.1.1Synchronising3.3.1 sync, 3.3.2full screen
3.3.1.2Cross-reference3.3.1, and as the “In your phone” segment of 3.1.2push / segment
3.3.2Add service3.3 addsheet → provider flow
3.4Profile tabDashboardtab root
3.4.1Detail sheet: one name, phone, e-mail, address, date or photo (A105)3.4 row or a section’s Addsheet
3.4.1.1Who sees itdetail sheet “Change”, a row’s circle labelssheet
3.4.2Add profileprofile switcherthe Build your card hub (2.2) reused
3.4.3Settingsgear on the Profile tab, rail gearpush
3.4.3.xAccount, Appearance, Language, Contacts, Notifications, Signed-in devices, Privacy, Help, About, Licences, Developer (debug)3.4.3push on a phone; on a tablet the detail pane beside the section list (selection, see Tablets)
3.4.3.1.1Change sign-in e-mail, Set / change password3.4.3 Accountsheet

Rules

  • Tab roots preserve state. Switching tabs never resets a list.
  • Push slides horizontally; back returns to the parent. Android honours the system back gesture including predictive back; iOS offers interactive swipe-back. Back on a tab root goes to Contacts, then backgrounds the app.
  • Sheets (add circle, choose circles, pick type, confirm) are bottom sheets with a grabber and scrim; drag or scrim tap dismisses.
  • Replace is used after completing an action so the user cannot go “back” into a submitted form (invitation sent, onboarding finished), exactly as v2’s router.replace.
  • Full screen progress (synchronising) blocks navigation except Cancel.
  • Deep links: a push notification opens the relevant screen (received invitation, contact card, notifications list); an auth link opens sign-in completion; all through app links / universal links, no custom scheme.
  • Profile switcher: the avatar and first name at the top left open a list sheet of the account’s profiles (main + managed), the active one tinted with a check, and Add profile (“For a child or someone you look after”) at the bottom. Choosing one sets the active profile for the whole dashboard, as in v2’s “Selected: [Profile]” banner, but without the banner: the header shows the active profile’s avatar and name, and Contacts, Circles, Services and Profile all show that profile’s data. There is always exactly one active profile; the choice persists across launches.
  • Header actions per tab, each an icon with its word (A101): Contacts: bell (notifications, with the unread count) and Find; Circles: Add; Services: Connect; Profile: the gear (Settings). Refresh is pull-to-refresh on every list; the header refresh button of v2 is gone.
  • Empty states have one sentence, one action and at most one way out: “No contacts yet. Find people you know by their e-mail, phone or name.” with Find people and “Check your phone contacts” / a circle filter with nobody in it: “Nobody in Book club yet. The filter hides all 48 of your contacts.” with Show everyone and “Move people into Book club” / “No connected services. Connect your address book.” / “Add your first detail.” A list whose first read is still in flight shows skeleton rows, never an empty state. Offline, search-limit and sync-error states are in the tab pages.

Naming

Screen titles in English and Dutch: Contacts / Contacten, Circles / Kringen, Services / Diensten, Profile / Profiel, Settings / Instellingen, Find people / Mensen zoeken, Send invitation / Uitnodiging sturen, Notifications / Meldingen.