Onboarding Setup & Permissions

After sign-up, before first Plant. Choices framed as values, not asks.

The post-sign-up moment is delicate. The Gardener has just committed to creating an account; the next thing they see shapes how DandyLine feels for the next year. Generic permission prompts ("Allow location?") would break the spell. Instead, this flow reframes every choice as a value the Gardener gets — location enables hidden Vault discovery, photos enable Seed planting, notifications keep them connected to Seeds that bloom while they're away. Calendar is explicitly NOT requested. Every screen has a clear opt-out, and nothing in this flow blocks the path to first Plant.

Concept locked 2026-05-02 · Status Copy Draft — Founder Review · Inspired by Moleskine intake
01

Why this flow exists

The Onboarding Intro (Row #4) sets tone. Sign-Up (Row #6) creates the account. This flow sits between sign-up and first Plant — it's where DandyLine gathers everything it needs to be useful, framed in a way that doesn't break the trust the Intro just built.

Four screens. Each one has a single decision. Each one is skippable (with the Gardener understanding what they're skipping). Together they take ≤90 seconds. The CTA on the final screen drops the Gardener directly into the Plant flow — the entire setup arc earns the right to the first ritual moment.

Sequence

  • Screen 1 · Persona / Intent — "What describes you best?" + intent question. Drives later personalization.
  • Screen 2 · Photos & Media — access to camera roll and capture. Required for planting.
  • Screen 3 · Location — toggle. Optional. Unlocks Roots-anchored Seeds + hidden Vault discovery.
  • Screen 4 · Notifications — granular preferences with visual examples. SMS-only transparency note.
  • Bridge · You're set — quiet beat. Hands off to Plant flow.

What this flow does NOT include

  • Calendar access — explicitly skipped. Doesn't fit the use case.
  • Contact list access — not requested at this stage. May appear later when a Gardener invites a contributor or assigns a Guardian.
  • Privacy Policy / ToS acceptance — handled at sign-up, not re-asked here.
Brief locked · 2026-05-02
02

Screen 1 · Persona & Intent

Skip
A bit about you
What brings you here?
Pick one — or more. We'll use this to shape what shows up first.
Preserving family memories
A gift for someone, later
Capturing my own life, for me
Invited by someone — just here to contribute
Just exploring
Headline (drafted)

What brings you here?

Body (drafted)

Pick one — or more. We'll use this to shape what shows up first.

Persona options (drafted, multi-select allowed)
  • Preserving family memories — surfaces Personal & Grove Vaults, family-mode prompts
  • A gift for someone, later — surfaces Milestone & Legacy Vaults, Seed Key flow
  • Capturing my own life, for me — surfaces Personal Vaults, Journey Vault templates, future-self framing
  • Invited by someone — just here to contribute — routes to the lightweight contributor path (separate flow), skips remaining setup
  • Just exploring — generic Field default, no persona-driven personalization
Why this screen

Two jobs. (1) Tells the Gardener that DandyLine has more than one use case — they're not alone in why they're here. (2) Lets us soft-prioritize Vault types they're most likely to want, without locking them into anything. Multi-select means a Gardener doesn't have to over-narrow themselves up front.

Single-question vs. two-question split
Original spec from Moleskine intake had two questions: "what describes you best" + "what are you most interested in." Folded into one here — multi-select handles both jobs without a second screen. Confirm: keep as one, or split?
Invited contributor branch
If the Gardener picks "Invited by someone," the rest of this flow can be skipped — they don't need the full permission set yet. Routing belongs in ux-invited-contributor-flow.html. Handled here only as: select that option → next screen routes to the contributor path, not Photos & Media.
03

Screen 2 · Photos & Media

Later
Capture
So you can plant photos and video.
DandyLine needs access to your camera roll, camera, and microphone so you can plant Seeds from photos, video, and voice notes. Nothing leaves your device until you seal a Seed.
Photos & VideoCamera roll + new captures
VoiceMicrophone · for voice Seeds
What we don't do: scan your full library or upload anything in the background. We only see what you choose to plant.
Headline (drafted)

So you can plant photos and video.

Body (drafted)

DandyLine needs access to your camera roll, camera, and microphone so you can plant Seeds from photos, video, and voice notes. Nothing leaves your device until you seal a Seed.

Two toggles
  • Photos & Video — camera roll + new captures (single OS permission, surfaced as one toggle)
  • Voice — separate permission for microphone, surfaced as its own toggle so a Gardener who only wants photos can decline mic without losing capture
What-we-don't-do callout

A small inline trust-callout below the toggles: "What we don't do: scan your full library or upload anything in the background. We only see what you choose to plant." Not buried in a help link — visible in the moment.

Skip behavior

"Later" pill in top-right routes to next screen. The Gardener can grant photos/voice from the Gardener Menu later — but they cannot plant a media Seed without granting it. The Plant flow will gracefully prompt at the moment of attempted capture.

Web-app reality
This is a web app for now. The actual permission flow is browser-driven (camera/mic/file-picker prompts). The screen above represents the brand-voice frame DandyLine puts AROUND those native browser prompts. Decide during build: is the toggle-row pattern still useful as an in-app explainer that fires before the browser prompt? Or does the browser prompt itself carry the moment? Lean: explainer first, browser prompt second — gives DandyLine a chance to set context.
04

Screen 3 · Location

Later
Roots
Tag Seeds to where they happened?
Optional. If on, Seeds you plant remember where you planted them — and you'll see hidden Vaults that other Gardeners have tucked into places near you.
Location-tag my SeedsQuietly, only when I plant
Discover hidden VaultsWhen I'm near one
What we don't track: your live location, your movements between Plants, or anywhere you didn't plant a Seed.
Headline (drafted)

Tag Seeds to where they happened?

Body (drafted)

Optional. If on, Seeds you plant remember where you planted them — and you'll see hidden Vaults that other Gardeners have tucked into places near you.

Two toggles (independent)
  • Location-tag my Seeds — only fires at the moment of planting. Quiet. Not a background tracker.
  • Discover hidden Vaults — surfaces Roots-anchored Vaults nearby. Independent toggle so a Gardener who wants tagging but not discovery can have just that.
What-we-don't-track callout

The trust language matters more here than anywhere else in the setup flow. Location is the most-suspected permission. Explicit list of what we DON'T do: live location, movement tracking, anywhere they didn't plant.

Why two toggles instead of one

Some Gardeners want tagging without discovery (privacy-leaning, contributor-leaning). Others want discovery without tagging (explorer-leaning, browse-leaning). Splitting them respects both. They can both be on, both off, or either alone.

Default state: both toggles OFF on first arrival. The Gardener has to opt in. This is the brand-aligned default — patience over collection.
Visual examples needed
Per Moleskine intake, Ashley flagged that visual examples here would help a Gardener understand WHY they'd want this on. A small inline preview ("here's what location-tagged Seed looks like" / "here's what hidden-Vault discovery looks like") could go below the toggles. Defer to design pass — concept logged here.
05

Screen 4 · Notifications

Skip
Stay close
When should we reach out?
Toggle what you want to hear about. Examples below.
Seed bloomed
"A Seed planted for you 3 years ago has bloomed."
Reminder to contribute
"The Hatch Family Grove has 4 Seeds and waits for one more."
Seed Packet nudge
"You have 6 Seeds in your Seed Packet — ready to plant?"
Headline (drafted)

When should we reach out?

Body (drafted)

Toggle what you want to hear about. Examples below.

Pattern: examples first, toggles second

From Moleskine intake — Ashley specifically called out that bare "do you want notifications?" prompts are boring and don't sell why a Gardener would want them. Solution: show a few real-feeling examples first so the Gardener understands what they'd actually receive. Then surface the toggles.

Notification types (toggleable individually)
  • Your Seed has bloomed — when something a Gardener planted reaches its bloom moment
  • A Seed has been planted for you — when someone plants a Seed for them (Held in Trust)
  • Reminder to contribute — when a Grove they're in is awaiting their contribution
  • Vault has been quiet — when a Vault hasn't been tended in a long time
  • Seed Packet nudge — when un-planted Seeds have been waiting (Packet count or time threshold)
  • Posthumous variants — softer language when sender has passed (per HW#54)
SMS-only transparency note (web-app phase)
While we're a web app, we'll send these as text messages. DandyLine covers the cost on our end — your carrier's standard messaging rates may apply on yours. Once we ship native apps, you'll have push too.

This callout sits inside the notifications screen in a quiet "while we're early" voice — not a wall of legal text. Reinforced in the ToS draft.

✅ Default-on vs. default-off per type · LOCKED 2026-05-06
Locked defaults:
  • Your Seed has bloomed = ON
  • A Seed has been planted for you = ON
  • Reminder to contribute = ON
  • Vault has been quiet = OFF (avoids the "scolded" feel)
  • Seed Packet nudge = OFF (Weather Hub surfaces it instead)
  • Posthumous variants = AUTO-ON when applicable
→ Build code reads from this matrix. Settings UI in Gardener Menu mirrors these toggle states post-onboarding.
✅ Phone number capture · LOCKED 2026-05-06
If we're SMS-only, we need a phone number from the Gardener. Locked: at sign-up (Row #6). Section H of Josh doc wants the number for recipient verification anyway. Notifications screen does NOT collect phone — it assumes the number is already on file.
06

Bridge · You're set

Welcome
Your garden is ready.
Plant your first Seed when the moment comes. Or take a look around first — no rush.
Headline (drafted)

Your garden is ready.

Body (drafted)

Plant your first Seed when the moment comes. Or take a look around first — no rush.

Two CTAs
  • Plant the first Seed — primary, gold. Drops directly into the Plant flow.
  • Explore the Field — secondary. Lands the Gardener on the empty Field with the canonical dandelion mark, no pressure to plant.
Visual concept

The canonical dandelion mark, fully realized — same as Slide 5 of the Onboarding Intro. This is the second time the Gardener sees the full mark, and both times mark the entrance to action (sign-up before, Plant flow now). The mark is becoming familiar.

Why two CTAs

Some Gardeners want to act immediately; others want to explore before committing. Forcing the immediate action creates friction; offering both lets the Gardener self-select pace. Either way, they leave the setup flow having opened a door, not closed one.

Critical brand discipline: NO confetti. NO "🎉 You're all set!" energy. The bridge is quiet — the same gravity that will surround every sealing ritual later.

Animated dandelion moment

This bridge is also the natural home for the "your DandyLine garden is ready" animated dandelion moment from the Moleskine intake — the canonical dandelion with floating Seeds, doubling as a soft loading beat between sign-up and Plant. The animation runs once, settles into a steady ambient state, then awaits Gardener input.

07

What's NOT in this flow

Calendar access — explicitly not requested. From Moleskine intake (Ashley, May 2): "I don't need importing calendars or anything I feel like that's silly." Calendar doesn't fit the planting model — bloom dates aren't calendar events, they're sealed instructions to time. Importing a Gardener's calendar would conflate the two. Flagged here so a future implementer doesn't add it back without a strong reason.
Contact list access — not at this stage. A Gardener doesn't need their full contacts to plant their first Seed. When they invite a contributor or assign a Guardian, the moment of need will surface the request — contextually, not pre-emptively. Defer to those flows.
Privacy Policy / ToS — not re-asked here. Already accepted at sign-up (Row #6). Re-asking would feel paranoid. Links to the policies live in the Gardener Menu for any time the Gardener wants to revisit.
Email subscription opt-ins for marketing. Not in this flow. DandyLine does not have a marketing newsletter at MVP. If we add one, it lives in the Gardener Menu, not at first-launch.
08

Open Questions

Resolution pass 2026-05-06 — see biz-dev-decisions-log.md 2026-05-06 entry. All 9 Qs resolved or formally deferred. Q4 default-on/off matrix locked into Screen 4 spec block above. Q6 reversed (build visual examples now).

✅ ① Persona Options · LOCKED 2026-05-06
Confirm or refine the 5 persona options drafted in Screen 1. Locked: 5 options as drafted. Multi-select OK (Ashley: "good for now").
✅ ② Single vs. Two Question Split · LOCKED 2026-05-06
Original Moleskine note had two questions ("what describes you" + "what are you most interested in"). Folded into one multi-select here. Locked: Keep folded into one screen — NOT split back into two (Ashley: "love as-is").
✅ ③ Browser Permission UX · LOCKED 2026-05-06
Web-app reality: the actual photo/mic/location prompts come from the browser, not DandyLine. Is the in-app explainer (toggle-row pattern) firing BEFORE the browser prompt the right move? Locked: In-app explainer pattern fires BEFORE browser native prompt (Ashley: "going with your lean/rec").
✅ ④ Notification Defaults · LOCKED 2026-05-06 (matrix in Screen 4)
Per-type default-on/off settings. Locked: Bloomed = ON · Seed planted for you = ON · Reminder to contribute = ON · Vault quiet = OFF · Seed Packet nudge = OFF (Weather surfaces it) · Posthumous = AUTO-ON when applicable. Full matrix locked into Screen 4 spec block above.
✅ ⑤ Phone Number Capture Point · LOCKED 2026-05-06
If SMS-only at MVP, we need the phone number. At sign-up (Row #6), or here in the notifications screen? Lean: at sign-up. Locked: Captured at sign-up (Row #6) — Section H of Josh doc wants the number for recipient verification anyway. Ashley: "go with your rec."
✅ ⑥ Visual Examples for Location · REVERSED + LOCKED 2026-05-06
Ashley flagged in Moleskine intake that visual examples on the location screen would help sell the value. Original lean: defer to design pass. Reversed + Locked: Build visual examples now (Ashley: "knock it out!"). Consider extending visual aids across other screens too — Screen 4 (notifications types) and Screen 1 (personas) would benefit per Ashley's broader feedback.
✅ ⑦ Skip Penalties · LOCKED 2026-05-06
What's the experience if a Gardener skips everything? Locked: Plant flow gracefully handles "no permission yet" without blame language (Ashley: "agreed. I'm used to getting prompts to request access to mic, location, photos, etc."). Treat the in-flow browser prompts as a normal happy path, not a fallback.
✅ ⑧ Re-Entry From Gardener Menu · LOCKED 2026-05-06
Where do these toggles live after onboarding? Locked: Same toggles in Gardener Menu → Notifications / Privacy / Permissions sections (confirmed during Gardener Menu build).
⏸ ⑨ Total Time Budget · TEST AT PROTOTYPE
~90 seconds is the target for the four-screen setup arc. Acknowledged: Test at interactive prototype build. If the persona screen takes 30+ seconds, compress elsewhere.
09

Surfaces Affected

  • ux-onboarding-intro.html — the predecessor flow. Slide 5's "Begin" CTA → sign-in → THIS flow.
  • Sign-In screen (Row #6, future) — sits between intro and this flow.
  • Plant flow (existing, ux-planting-flow.html) — the destination after this flow's bridge screen. Must gracefully handle Gardeners who skipped permissions.
  • Gardener Menu (Row #7, future) — the long-term home for these same toggles. Persona/intent answers feed personalization.
  • Weather Hub (HW#41) — receives notification preferences from Screen 4. Same underlying signals; in-app surface vs. push surface.
  • Privacy Policy & ToS (Row #10, future) — the SMS cost disclosure on Screen 4 should be reinforced in the ToS.
  • Invited-contributor flow (ux-invited-contributor-flow.html, future) — Screen 1's "Invited by someone" option routes here, skipping the rest of setup.
  • brand-guide.html — the trust-callout pattern (sky-toned, italic-tinted) used here might warrant codifying as a reusable brand-voice block. Watch as it appears in more flows.
10

Brand voice guardrails

Words used in this flow (all on-brand)

  • Plant, Seed, Bloom, Vault, Grove, Gardener, Held in Trust, Seed Packet — DandyLine vocabulary
  • Tag, tend, capture — gentle action verbs
  • Garden, Field, Roots — grounded nouns

Words explicitly NOT used in this flow

  • Allow, deny, grant, permission — generic OS vocabulary. We say "tag," "remember," "capture," "let us reach out."
  • Settings, preferences, options — too administrative. We use "choices" or just frame each as a question.
  • Required, mandatory, must — DandyLine doesn't demand. Even photos access can be deferred.
  • Track, monitor, collect — language we use only in NOT-doing callouts.
  • Notifications as a generic noun is OK; "push notifications" is too tech.
Tone test: If a Gardener felt like they were being processed through a setup wizard, we got this wrong. They should feel like they're sitting down with a quiet host who's asking what they'd like before pouring tea. Even the toggles should feel that way.