diff --git a/apps/x/.claude/launch.json b/apps/x/.claude/launch.json
new file mode 100644
index 00000000..3ba43066
--- /dev/null
+++ b/apps/x/.claude/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.0.1",
+ "configurations": [
+ {
+ "name": "renderer-dev",
+ "runtimeExecutable": "/Users/tusharmagar/Rowboat/rowboat-V2/apps/x/apps/renderer/node_modules/.bin/vite",
+ "runtimeArgs": ["--port", "5173"],
+ "port": 5173
+ }
+ ]
+}
diff --git a/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx b/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx
index 90bbcd02..4bd4a366 100644
--- a/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx
+++ b/apps/x/apps/renderer/src/components/onboarding/steps/welcome-step.tsx
@@ -1,4 +1,5 @@
-import { Loader2, CheckCircle2 } from "lucide-react"
+import { Loader2, CheckCircle2, Brain, Plug, ShieldCheck } from "lucide-react"
+import { motion } from "motion/react"
import { Button } from "@/components/ui/button"
import type { OnboardingState } from "../use-onboarding-state"
@@ -6,78 +7,145 @@ interface WelcomeStepProps {
state: OnboardingState
}
+const features = [
+ {
+ icon: Brain,
+ label: "Memory",
+ desc: "Builds a knowledge graph from your work",
+ },
+ {
+ icon: Plug,
+ label: "Connected",
+ desc: "Syncs email, calendar, and meetings",
+ },
+ {
+ icon: ShieldCheck,
+ label: "Private",
+ desc: "Your data stays local on your machine",
+ },
+]
+
export function WelcomeStep({ state }: WelcomeStepProps) {
const rowboatState = state.providerStates['rowboat'] || { isConnected: false, isLoading: false, isConnecting: false }
return (
- {/* Logo */}
-

+ {/* Logo with ambient glow */}
+
+
+
+
{/* Tagline badge */}
-
+
Your AI coworker, with memory
-
+
{/* Main heading */}
-
+
Welcome to Rowboat
-
-
+
+
Connect your Rowboat account for instant access to all models through our gateway — no API keys needed.
-
+
- {/* Product preview placeholder */}
-
-
Product Preview
+ {/* Feature highlights */}
+
+ {features.map((f, i) => (
+
+
+
+
+ {f.label}
+ {f.desc}
+
+ ))}
{/* Sign in / connected state */}
- {rowboatState.isConnected ? (
-
-
-
-
Connected to Rowboat
+
+ {rowboatState.isConnected ? (
+
+
+
+ Connected to Rowboat
+
+
-
-
- ) : (
-
-
+ )}
+
{/* BYOK link */}
-
+
{
state.setOnboardingPath('byok')
@@ -87,7 +155,7 @@ export function WelcomeStep({ state }: WelcomeStepProps) {
>
I want to bring my own API key
-
+
)
}