First setup, end to end
"ideally, we can start the process somewhere on memex.meshweaver.cloud. they create an account there, then they initiate the process there." — the owner, 2026-10-17.
This is the journey of a person who has never used memex, from the public instance's front door to an assistant that is connected to their life. It is written as a process: one stage at a time, where it lives, what happens, what the system does, and what the stage must leave behind before the next one makes sense. The last section is the same journey as a walk-through — the checklist to run on the public instance after a release.
The process starts on the public instance and never leaves it. Nothing is installed, nothing is sent to the person by mail first: they arrive, they sign in, they are walked through.
The journey at a glance
| # | Stage | Where | Leaves behind |
|---|---|---|---|
| 1 | Arrive | /welcome |
— |
| 2 | Sign in | /login → the identity provider → back |
a verified identity (email) |
| 3 | Create the account | /onboarding |
the person's own node {you}, Active |
| 4 | Meet the assistant | /area/{you}/GettingStarted = /{you}/Settings |
the welcome clicked away (or the tour taken) |
| 5 | The tiles | the same page | whatever the person set up, in any order: accounts connected, mail preferences, home — each tile ✓ Done |
| 6 | Done | there is no end — the page is the Settings app | — |
| 7 | Living with it | chat, inbox, settings | triage, copies, reminders — and every answer changeable |
Everything after 4 is optional and unordered: Set up later skips a tile for good as far as the chat line is concerned, the tile stays and offers Change, and the settings app keeps every switch. Nothing a person skips is lost; it just stops being asked.
1. Arrive — /welcome
A visitor who is not signed in lands on the welcome page: what memex is, Sign in, and the three steps it promises (sign in, set up your profile, start exploring). Nothing is created yet.
2. Sign in — /login
The person picks an identity provider the instance offers (Microsoft, Google, Apple, GitHub — what the deployment configured) and comes back with a verified identity: the email the provider vouches for. This is the only credential memex ever asks for; there is no memex password.
3. Create the account — /onboarding
The first sign-in has no account behind it, so the portal shows the onboarding form: full name,
username, email (prefilled from the identity). Submitting it creates the person's own node — their
partition {you} — and marks it Active.
The gate in front of it (OnboardingGate.Decide) is open by default: anyone who authenticates
may create an account. An instance can narrow it to invitation only (Features__Onboarding__InvitationOnly,
Invitation-Only Onboarding): then an admin invites an
email first and only an invited, verified email passes; the very first user of a fresh deployment
always passes. The form says which case applies before the person types anything.
Exit: the Active user node exists. The portal then redirects to /area/{you}/GettingStarted —
unless the person arrived through a deep link (an invitation to a particular place), which wins;
their first new chat then carries the next step instead.
4. Meet the assistant — `/area/
Onboarding's last redirect lands on the setup overview — the Settings app's front page, also
reachable as the bare page /area/{you}/GettingStarted (The setup wizard). The
first visit opens with the assistant's welcome card:
Hi, I'm Memex. I sort what arrives, draft your replies and keep an eye on your calendar, files and home. Pick what I should take care of. You can always change it later.
with two buttons: 🧭 Show me around — the one-minute Training tour of the person's own settings
(Training/Tours/GettingStarted, shipped by the Training package: the setup tiles, the connected
accounts, the chat, each embedded live; the button shows only where Training is installed) —
and Got it. Either marks the welcome done; the card never comes back. Under it, from the first
second, the tiles: one per thing the assistant can take care of, grouped by chapter
(Communications · Accounts & services · Your home · More — only chapters the installed packages
contribute to), each with its state and one button.
5. The tiles — set up anything, in any order
Every tile says in one line what it is for (owner, 2026-10-21: "each step should give a tiny idea what it is, then configure") and opens its panel right there, under the tiles:
- Connect your accounts — the connection tiles: Microsoft 365 (mail and calendar through the Executive Assistant's consent), Teams, iMessage on a Mac, whatever this installation offers. Connect leaves for the consent page and comes back to this very panel. Retired by itself once something is connected — never by a click.
- Your mail — Here you tell me how far I may go with your mail: sort it before you read, draft
your replies, keep a copy here. The three questions as a form bound to the person's own preferences
(
{you}/_Mail/Preferences): sorting before reading (default yes), replies drafted before reading (default no; a draft in their own Drafts folder, nothing sent until they press Send — not active yet, the choice is kept), a copy here and how far back (default live, no copy), with the Keep a copy of Outlook in memex switch under it. - Home Assistant — Connect Home Assistant and I can switch your lights, run your scenes and tell you what is going on at home. The connect form; while no address is set, the install step for the person's own Mac or PC sits beneath it.
- Apple Music, and whatever else the installed packages contribute (
UiContribution,context: Onboarding).
Done marks a panel that counts as done when passed; Set up later marks a setup step skipped (its tile reads ✓ Done and offers Change; the chat line stops offering it); Close marks nothing. The second visit shows what is configured and lets the person configure more — nothing is asked twice, and you can always change it later, right here in your settings is said once, up front.
6. Done — there is no end
There is no closing panel: the page is the Settings app, and it stays. On the bare page I'll finish this later leads to the launcher; inside the app the person simply moves to another tab.
7. Living with it — what the system does from here
Once connected, the assistant works without being asked:
- Mail is triaged as the inbox is read — every untriaged message of a person whose sorting is on
is offered to the triage pass (an EU model), and the verdict (important or ignorable, tags, one-line
reason) joins the live row;
/{you}/Inboxshows the tags as categories and hides noise by default (Personal triage). A person who switched sorting off is offered to no model. - A copy backfills in the background when it is on — the chosen window first, then new mail follows; search covers the text and messages open without a round trip. Stopping it deletes the copies, never the mailbox.
- The chat line carries the next step — on every new chat, one line: the first open Getting-started step, with Start and Not now; plus one tip. Start opens that step's own target directly — the Accounts tab for Connect your accounts, a page, or a command put into the composer — it does not continue the wizard; the wizard is re-entered through its own URL (§4). The line reads the Getting-started step sources, not every panel a package contributes to the wizard. A step done or dismissed in a chat is done in the wizard and the other way round: one ledger.
- Everything is changeable in the person's own settings app: Settings → Mail (the three answers), Inbox copies (the switch and the state of the copy), Accounts and Messaging (every connection, with Manage / Fix / Retry), and each package's own tab (Home Assistant, Apple Music, …).
- Pending: the pre-drafter that acts on replies prepared before reading — a pass over the
reply-tagged verdicts of a person who said yes, drafting through the Executive Assistant's ownDraftReplyinto their Drafts; the person edits, and nothing is sent by it. Until it lands the answer is recorded and the panel says so.
Walking it on the public instance
The checklist for a release, as a fresh person (a sign-in that has never had an account here):
- Open the public instance signed out → the welcome page; Sign in; pick a provider; come back.
- The onboarding form appears (or says the instance is invitation-only); submit it → you land on
/area/{you}/GettingStarted— a bare page, the assistant's welcome card (Hi, I'm Memex · 🧭 Show me around · Got it) over the tiles, grouped by chapter, every tile Not yet. - Show me around → the tour: your own setup page, your connected accounts, your chat, each embedded; Back to setup returns. The welcome card is gone.
- Connect your accounts → Set up → the connection tiles under the tiles. Connect Microsoft 365 → consent → you are back on the same panel, the tile reads Connected; the setup tile disappears by itself once something is connected.
- Your mail → Set up → press Set my mail preferences, change the window to The last month, press Keep a copy of Outlook in memex → the copy's status appears under the form with its start date one month back; Done → the tile reads ✓ Done and offers Change.
- Set up later on any other tile → it reads ✓ Done; Change reopens it. Reload: the states stay.
- Open
/{you}/Settings: the same tiles are the app's first tab. Open a new chat: no setup line for what is done or skipped, but the/feedbacktip; open/{you}/Inboxafter a few minutes: rows carry tags; Settings → Mail: your answers.
What a stage must NOT do, and the reading that proves it: a visitor to /area/{someone-else}/GettingStarted
sees one line, never their tiles; a person without the Home Assistant package sees no home chapter;
a copy switched off asks first and lists nothing afterwards; a chat-dismissed step reads ✓ Done and is
not offered by the chat line again.
Where the stages are implemented
| Stage | Code |
|---|---|
| 1–3 | src/Memex.Portal.Gui/Pages/{Welcome,Login,Onboarding}.razor; the gate in core (OnboardingGate, Invitation-Only Onboarding) |
| 4–9 | the AI engine's setup wizard, src/MeshWeaver.AI/Onboarding/ — The setup wizard |
| 5 Connect | GettingStartedAreas.OnboardingConnectionsView + the Connections layer (Getting started and Connections) |
| 5 Mail | src/MeshWeaver.Mail.MicrosoftGraph/Inbox/{MailOnboardingPanel,MailPreferences,MailCopySettings}.cs, node Mail/Onboarding/Mail |
| 7 | HomeAssistant/Onboarding/HomeAssistant, AppleMusic/Onboarding/AppleMusic |
| 8 | MeshWeaver.Courses LearningPathStepSource (an IChatNudgeSource) |
| 10 | OutlookMailboxQueryProvider (triage offer), OutlookMailCopy + MailCopyKeeper (copies), GettingStartedAreas.ChatNudgesView (the chat line) |