Inspiration

Campus flyers pile up in camera rolls. For students with ADHD, the bottleneck isn't finding events, it's deciding if one is worth the switching cost. We wanted a tool that respects that cognitive load instead of papering over it with another "let AI plan your week" pitch. Grounded in the Ottawa Decision Support Framework (decisional conflict drops when users get information and agency) and cognitive offloading theory (externalizing time lowers working-memory load). Our mantra: inform, don't decide.

What it does

Snap a flyer → Claude extracts the event → conflict-checks your Google Calendar → surfaces trade-offs as "worth noticing" chips (12-min walk · conflicts with your 3pm) → one tap to .ics or Google/Outlook.

How we built it

Stack: Next.js 16 · TypeScript · Tailwind 4 · Claude Haiku 4.5 via Vercel AI SDK · Zod 4 · localStorage only.

  • Extraction: generateObject with a Zod schema — the schema is the contract; Sonnet fallback on validation failure.
  • Goldy: 120 hand-authored lines across 8 context buckets, picked deterministically by event-ID hash. Zero runtime LLM, fully offline, calendar data never leaves the browser.
  • 166 Vitest tests covering schema, conflict math, UTC-safe calendar grids, and the leave-by clock.

Challenges we ran into

  • DST / timezone math broke the month grid until we moved to UTC internally.
  • Multi-event flyers (club semester schedules) collapsed into one event until the schema forced an array.
  • Resisting scope creep — auto-decline and streaks were tempting and wrong.

What we learned

  • Structured output (Zod + generateObject) beats prompt engineering for reliability.
  • Deterministic banks beat LLMs for character voice — cheaper, faster, more coherent.
  • Cognitive offloading is a UX discipline, not a feature: the hard part is not adding helpful-seeming auto-decisions.

What's next for ShowUp

ShowUp App: Collaborate with the UMN to have it free for students Class Schedule Upload Co-design sessions with ADHD/autistic students before any accessibility claims, Outlook + Apple Calendar parity via Oauth and expanding beyond UMN.

ShowUppie Watch: Voice to AI feature to manage events without getting distracted with your phone

Built With

  • anthropic
  • app-router
  • claude
  • css3
  • github
  • google-calendar-api
  • html5
  • ics
  • javascript
  • lighthouse
  • livewhale
  • localstorage
  • next.js
  • node.js
  • react
  • shadcn-ui
  • tailwindcss
  • turbopack
  • turbopack)-typescript-tailwindcss-(v4)-shadcn-ui-claude-(haiku-4.5-+-sonnet-4.5-fallback)-anthropic-api-vercel-ai-sdk-(@ai-sdk/anthropic
  • typescript
  • vercel
  • vercel-ai-sdk
  • vitest
  • zod
Share this project:

Updates