Skip to content

Onboarding flow on the new Shell #68

Description

@schmug

After the rebrand work shipped (PRs #59, #60, #61), the only public surface that doesn't sit inside `app/components/phishsoc/Shell` is `app/routes/home.tsx` — the mailbox picker users hit before they have a mailbox selected. Today it shows:

Upstream PR #10 was an attempt at a richer onboarding flow but predates the Shell and was based on different design assumptions. We chose not to pull it in.

What "PhishSOC onboarding" needs

To be discussed in a brainstorming session, but candidates:

  1. First-run wizard — detect zero mailboxes + zero settings and offer guided setup: domain entered, R2 bucket confirmed, CF Access configured, first mailbox created.
  2. CF Access JWT error UX — upstream issue #4 flagged the unhelpful "Missing required CF Access JWT" surface. New onboarding flow should detect this state (Worker reachable but Access misconfigured) and link to the troubleshooting steps in README.
  3. Empty-state copy on home — once we have ≥1 mailbox, the empty-state messaging in `home.tsx` should reflect the SOC framing ("No mailboxes yet — set one up to start triaging mail").
  4. Telemetry / quickstart checklist — show the user what's working (Email Routing rule, R2, AI binding) and what isn't, so a misconfiguration is visible without hitting the logs.

Architecture note

Onboarding should consume the Shell where possible (e.g., a "setup" route at `/setup` that uses a stripped-down Shell variant without the mailbox-required nav). The mailbox picker stays as the index route; `/setup` is a separate flow.

Sequence

This is its own brainstorming → spec → plan cycle. Do not start implementing without a written spec.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions