Agent-first study companion that remembers what you’re learning and hands you a daily plan. The target UI uses an App Router structure under /app, shadcn/ui components, and local useState for all flows.
- Shell: Left sidebar navigation (Dashboard, Plan, History, Settings) with lucide icons; top header shows app name and a small user chip; responsive spacing and subtle shadows.
- Dashboard
/: “Today’s Plan” hero card, three mock plan items, and a “Check-in” card with quick buttons (Easy, Okay, Hard). - Onboarding
/onboarding: Three-step wizard (Topic → Daily time → Preferred style) using shadcn Card, Button, Input, Select, Textarea, Progress. “Continue” advances steps locally; no submit wiring yet. - Plan
/plan: Plan list with a “Regenerate” button (no backend logic). - History
/history: Simple table of past days (mock rows). - Settings
/settings: Theme toggle UI and notifications toggle UI only. - State model: Pure
useState; no Zustand, DB, or remote calls. Mastra integration is optional and isolated inpacepal-mastra/. - Styling: Tailwind v4 + shadcn/ui primitives (Button, Card, Badge, Tabs optional, Separator, Progress, Input, Select, Textarea, Table, Switch, DropdownMenu) with lucide-react icons.
Tailwind v4 and shadcn/ui are already present; to reproduce a fresh setup:
# Tailwind v4
pnpm add -D tailwindcss@latest @tailwindcss/vite
# shadcn/ui
pnpm dlx shadcn-ui@latest init
pnpm dlx shadcn-ui@latest add button card badge tabs separator progress input select textarea table switch dropdown-menupnpm install
pnpm dev # http://localhost:3000pnpm buildpnpm testsrc/routes/– Current router/pages (to be migrated into/appApp Router shell).src/components/ui/– shadcn/ui primitives.src/db/– Drizzle schema and client; only needed if you later turn on persistence (DATABASE_URL).pacepal-mastra/– Optional Mastra workspace; currently a weather demo you can replace with Pacepal agents.
- Migrate pages into
/appwith the shared sidebar + header layout. - Implement the onboarding 3-step flow with shadcn components and local state.
- Mock data for Dashboard, Plan, History, and Settings toggles; keep logic local.
- (Optional) Swap the Mastra demo for a Pacepal agent that persists onboarding answers and regenerates plans.