Getting started is a short checklist at the top of Home for a new profile: six things that, once done, mean someone is using the app rather than looking at it. It is finite and it ends. It is not an achievement: an achievement marks something noteworthy that happened, and these are things not done yet.
The steps
| step | done when | goes to |
|---|---|---|
| Make something to track | a trackable of yours exists | the new-trackable form |
| Log your first entry | an entry you logged exists | Home |
| Log 3 days in a row | some run of days you logged reaches 3 | the Rundown |
| Set a zone | any trackable has a zone | Trackables |
| Compare two trackables | a saved visualization exists | the visualization editor |
| Make Home yours | Home’s layout has been saved | Home |
Every step reads the stored data, never a “you visited this page” flag. A visited flag records that you walked past something; these record that you did it. So the list cannot drift from what is true, a step cannot be ticked for something not done, it survives a reinstall because the evidence is the data, and there is nothing to reset when you switch profile. The run of days goes through the shared streak function, and any zone counts, whether a single goal or a Low, Normal and High scale. The steps are fixed rather than authored, since this is a first-run experience; they are already data (START_STEPS) if they ever need to vary.
The three-day step and the first-entry step read only the entries you logged (loggedByYou): a day’s weather or a schedule’s entry, logged for you, ticks neither.
Showing and leaving
- It renders above Home’s empty state, since an empty profile is when it has the most to say.
- It is hidden on a demo profile, whose person did none of it, and when the getting-started switch is off (Encouragement).
- It removes itself when complete: the condition for hiding it is the condition that completed it. The only stored state is a dismissal (
gettingStarted:dismissed), because “not now” is a choice the data cannot show. - It says goodbye, but only to someone it watched finish. “Complete” and “you completed it” are different facts, and only the second is worth congratulating: a demo profile, or anyone who has used the app for months, satisfies every step on first sight. So
gettingStarted:watchedis written the first time the list shows with a step still open, and on completion the card turns in place into a short farewell with one “Thanks”, which writes the same dismissal. With achievements on, the farewell points at the Achievements page. - Home’s Reset does not tick “Make Home yours”. Resetting the layout makes the grid report a layout change; the dashboard ignores that one echo of its own reset, so the layout setting stays absent rather than being written back with the defaults.
Code
apps/renderer/src/onboarding/getting-started.ts— the steps andstartProgress.apps/renderer/src/components/onboarding/GettingStarted.tsx— the card, the watched key and the farewell.