7.6 KiB
7.6 KiB
Neode Onboarding Flow
Complete User Journey (Vue 3)
1. Splash Screen (First Visit Only)
Duration: ~23 seconds (skippable)
Sequence:
-
Alien Terminal Intro (0-16s)
- Line 1: "Initializing Neode OS..." (typing animation)
- Line 2: "Connecting to distributed network..."
- Line 3: "Loading sovereignty protocols..."
- Line 4: "System ready."
- Green
$prompts, white text - Skip button in bottom right
-
Welcome Message (16-19s)
- "Welcome to Neode" with typing animation
- Fades in after terminal lines complete
-
Neode Logo (19-23s)
- Large "NEODE" SVG logo
- Background image fades in
- Smooth transition
Local Storage:
- Sets:
neode_intro_seen = '1' - Next visit: Skip splash entirely
2. Onboarding Intro
Route: /onboarding/intro
Content:
- Neode Logo at top (large SVG)
- Heading: "Welcome to Neode"
- Subheading: "Your personal server for a sovereign digital life"
- Features:
- 🔒 Self-Sovereign: Own your data and applications completely
- ⚡ Powerful: Run any service with one click
- 🛡️ Private: Tor-first architecture for maximum privacy
- Button: "Get Started →"
Action:
- Navigates to
/onboarding/options
3. Onboarding Options
Route: /onboarding/options
Content:
- Neode Logo at top
- Heading: "Choose Your Setup"
- Subheading: "How would you like to get started?"
Three Glass Cards:
-
Fresh Start
- Icon: Plus symbol
- Description: Set up a new server from scratch
-
Restore Backup
- Icon: Upload symbol
- Description: Restore from a previous backup
-
Connect Existing
- Icon: Link symbol
- Description: Connect to an existing Neode server
Selection:
- Cards have hover effects
- Selected card: Brighter, glowing border
- Button: "Continue →" (enabled when option selected)
Action:
- Sets:
neode_onboarding_complete = '1' - Navigates to
/login
4. Login Page
Route: /login
Content:
- Neode Logo floating above card
- Glass Card with:
- Title: "Welcome to Neode"
- Password input field
- Login button
- "Forgot password?" link
Auth Flow:
- Submit → Pinia store
login()action - Success → Navigate to
/dashboard - Error → Show error message in red glass banner
5. Dashboard
Route: /dashboard
Layout:
-
Sidebar (glass):
- Neode logo at top
- Server name + version
- Navigation menu (Home, Apps, Marketplace, Server, Settings)
- Logout button at bottom
-
Main Content:
- Dynamic based on route (Home, Apps, etc.)
- Connection status banner (if offline)
- Glass cards throughout
Flow Diagram
┌─────────────────┐
│ First Visit? │
└────────┬────────┘
│
┌────▼────┐
│ Yes │──────┐
└─────────┘ │
│ │
┌────▼────────────▼────┐
│ Splash Screen │ (23s, skippable)
│ - Alien Intro │
│ - Welcome Message │
│ - Neode Logo │
└──────────┬───────────┘
│
[Sets: neode_intro_seen]
│
┌──────────▼───────────┐
│ Onboarding Intro │
│ - Logo │
│ - Features │
│ - Get Started │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ Onboarding Options │
│ - Fresh Start │
│ - Restore │
│ - Connect │
└──────────┬───────────┘
│
[Sets: neode_onboarding_complete]
│
┌──────────▼───────────┐
│ Login Page │
│ - Password Input │
└──────────┬───────────┘
│
[Authenticate]
│
┌──────────▼───────────┐
│ Dashboard │
│ - Sidebar + Content │
└──────────────────────┘
Returning User Flow
Second Visit Onwards:
Open App
│
├─ neode_intro_seen? YES
├─ neode_onboarding_complete? YES
│
└──> Login Page (direct)
- No splash screen
- No onboarding
- Goes straight to
/login
Local Storage Keys
| Key | Value | Set By | Effect |
|---|---|---|---|
neode_intro_seen |
'1' |
SplashScreen.vue | Skip splash on return |
neode_onboarding_complete |
'1' |
OnboardingOptions.vue | Skip onboarding on return |
Branding Consistency
Neode Logo Usage
SVG Logo (/assets/img/logo-large.svg):
- ✅ Splash screen (large, centered)
- ✅ Onboarding intro (medium, top)
- ✅ Onboarding options (medium, top)
- ✅ Login page (floating above card)
- ✅ Dashboard sidebar (small, top left)
Icon (/assets/img/icon.png):
- ✅ Browser favicon
- ✅ Apple touch icon
No Start9 Branding
All Start9 references removed. Pure Neode branding throughout.
Design Consistency
Glassmorphism
Every screen uses:
- Glass cards with
backdrop-filter: blur(18px) - Black background with transparency
- White borders with 18% opacity
- Drop shadows for depth
Colors
- Background:
rgba(0, 0, 0, 0.35) - Text: White with opacity (96%, 80%, 70%)
- Accents: Green
#00ff41(terminal prompts) - Borders:
rgba(255, 255, 255, 0.18)
Typography
- Primary: Avenir Next
- Mono: Courier New (terminal/splash)
- Size scale: 4px grid system
Testing the Flow
Test as New User:
# Clear storage
localStorage.clear()
# Reload
location.reload()
Expected:
- Splash → Alien intro → Welcome → Logo
- Onboarding intro → Features
- Onboarding options → Select option
- Login → Enter password
- Dashboard → Home screen
Test as Returning User:
# Storage should have:
localStorage.getItem('neode_intro_seen') // '1'
localStorage.getItem('neode_onboarding_complete') // '1'
# Reload
location.reload()
Expected:
- Login (direct, no splash/onboarding)
- Dashboard → Home screen
Skip Behaviors
Skip Splash
- Button: "Skip Intro" (bottom right)
- Effect: Jumps to logo display
- Still navigates to onboarding intro
Skip Onboarding
User can navigate directly to /login if they know the URL.
Future Enhancements
- Different flows for each setup option (Fresh/Restore/Connect)
- Progress indicators during setup
- Animated transitions between onboarding steps
- Video/GIF demos on feature cards
- Personalization (server name input during onboarding)
- Setup wizard for advanced users
Key Files
| File | Purpose |
|---|---|
src/App.vue |
Manages splash display, handles completion |
src/components/SplashScreen.vue |
Alien intro, animations, skip button |
src/views/OnboardingIntro.vue |
Welcome screen, feature highlights |
src/views/OnboardingOptions.vue |
Setup method selection |
src/views/Login.vue |
Authentication |
src/views/Dashboard.vue |
Main app layout |
src/router/index.ts |
Route definitions, auth guards |
Complete, cohesive, and beautiful! 🎨⚡