Problem Solver & Builder

Identify the friction. Build the fix.

I find real problems, understand why they persist, then build targeted solutions that actually get used. Every project here started with friction I couldn't ignore—and ended with something that changed daily behavior.

7Production Systems
15+API Integrations
DailyActive Usage
Overview of connected project systems

Every system talks to every other system. Shared data layers, reusable classification logic, and APIs that compose. Build once, leverage everywhere.

What I've Built

Zero-Friction Capture

GiftStash

Text a gift idea. It's saved, parsed, and organized automatically.

GiftStash visualization
The Friction

Gift ideas strike at random—overhearing "I've been wanting that book," spotting something perfect while browsing. By the time birthdays arrive, those ideas are gone. Every gift app requires opening, logging in, navigating. That friction kills capture.

The Insight

The fastest input device is already in your hand. Texting is instant, universal, and requires zero context switching. If capturing a gift idea took the same effort as texting a friend, you'd never lose another one.

The Solution
  • SMS-first capture: Text "mom would love those blue earrings from Nordstrom" → Claude parses recipient, item, and source automatically
  • Multi-channel access: PWA for browsing lists, Chrome extension for one-click web capture
  • A2P 10DLC compliance for carrier-grade SMS delivery
  • AI-generated avatars make family profiles feel personal and fun
The Outcome

50+ gift ideas captured that would have been lost. Family actively uses it for birthdays and holidays. The insight: meeting users where they already are (SMS) beats building a better app.

AI-Generated Assets

Custom avatars and illustrations created with Gemini for user profiles and marketing.

Avatar Avatar Avatar Avatar Illustration
Tech Stack
Twilio SMSClaude APISupabaseNext.jsPWAChrome ExtensionGemini
Platform Integration

Focus Hub

Productivity sidekick that connects your tools and holds you accountable

Focus Hub visualization
The Friction

Mornings start by checking three apps: Calendar for time reality, Todoist for tasks, Gmail for fires. By the time you've context-switched through all of them, momentum is gone. And projects without due dates quietly slip because nothing screams at you about them.

The Insight

Productivity tools fail when they're passive dashboards you glance at occasionally. What works is a partner you're in constant dialogue with—one that knows your calendar, your tasks, your priorities, and isn't afraid to call out when you're drifting.

The Solution
  • Chat-first interface: Always-on sidekick, not another dashboard to check
  • Big 3 commitments: Each morning, declare what WILL get done (not what could)
  • Focus sessions: Tracked deep work with energy logging and interruption counts
  • Smart email triage: Gmail integration with VIP detection, school sender recognition, AI urgency scoring
  • Platform integration: Connects Todoist + Calendar + Gmail + shared Supabase with Family HQ
  • Proactive accountability: "That's twice you've pushed the PRD. Want to break it into smaller pieces?"
The Outcome

Daily use for morning standups and focus tracking. Surfaced three slipping projects in the first week. The cross-platform integration means one conversation has full context of calendar, tasks, email, and weekly priorities.

Tech Stack
Next.jsClaude APISupabaseGmail APITodoist APINextAuthVercel
Platform Synergy

Focus Hub shares infrastructure with Family HQ—same Supabase database, same calendar sync, same weekly priorities table. This means focus sessions can link to family calendar events, and priority progress is visible across both systems. One backend, multiple specialized interfaces.

Foundation System

Family HQ

The data layer that powers everything else

Family HQ visualization
The Friction

Running a household with three kids means hundreds of recurring decisions, contacts, and schedules—scattered across texts, emails, different apps, and people's heads. Every "where's that info?" moment adds friction. Every missed detail adds stress.

The Insight

Household operations need infrastructure, not just apps. A central data layer that other systems can read from and write to. Build the foundation first, then build specialized interfaces on top.

The Solution
  • Supabase + Notion hybrid: Structured data in Supabase, documents and SOPs in Notion
  • Relational model: Kids → activities → schedules → contacts all linked
  • Calendar aggregation: Multiple school calendars synced to one cached source
  • Weekly priorities: Shared table that Focus Hub reads for accountability
  • API-first design: Every piece of data accessible to other systems
The Outcome

Single source of truth for family logistics. New babysitters find emergency contacts in seconds. But more importantly: this became the foundation that Focus Hub, Morning Rundown, and Email Priority all build on. One data layer, multiple specialized interfaces.

Tech Stack
SupabaseNotionNext.jsNotion APIiCal SyncVercel
Platform Synergy

Family HQ's Supabase instance is shared with Focus Hub. Calendar events cached here feed into Morning Rundown. Weekly priorities defined here drive Focus Hub's accountability features. This is the infrastructure layer.

Multi-System Synthesis

Morning Rundown

Three apps, one briefing, 15 seconds to clarity

Morning Rundown visualization
The Friction

Morning starts with three app checks: Calendar (what's my time reality?), Todoist (what's due?), Notion (what projects need attention?). By the time you've context-switched through all of them, you've lost 10 minutes and your momentum. Worse: projects without due dates quietly slip because nothing screams about them.

The Insight

The question isn't "what's in each app?" It's "what should today look like?" That requires synthesizing information across systems, not just displaying it. And it should be accessible from anywhere—voice-first, device-agnostic.

The Solution
  • Single API endpoint: Pulls from Calendar, Todoist, and Notion simultaneously
  • Claude synthesis: Custom system prompt that prioritizes, flags stale projects, and recommends focus
  • Siri integration: "Hey Siri, morning rundown" from any Apple device
  • "Last Worked" tracking: Notion field flags projects untouched for 7+ days
  • Mode recommendation: Task day, builder day, or mix—based on calendar shape
The Outcome

15 seconds from "Hey Siri" to knowing exactly what today should look like. Surfaced three slipping projects in week one. The synthesis is the value—no single app could provide this view.

Tech Stack
Claude APITodoist APINotion APIApple ShortcutsPythonVercel
AI Classification

Email Priority Inbox

AI triage that knows who matters and what's actually urgent

Email Priority visualization
The Friction

Email volume makes everything feel equally urgent. Important messages from schools, time-sensitive requests, and actual human correspondence get buried under newsletters, notifications, and automated noise. Filters help, but they're brittle and require constant maintenance.

The Insight

Priority isn't about rules—it's about context. A message from a teacher matters more than a message from a vendor. An email mentioning "tomorrow" needs attention today. AI can understand these nuances in ways rule-based systems can't.

The Solution
  • Context-aware classification: VIPs from Notion contacts, school domain detection, personal vs. automated
  • AI urgency scoring: Claude analyzes content for time sensitivity and action items
  • School sender recognition: District, principal, teacher, PTA—each handled appropriately
  • Digest generation: Low-priority items batched into a single daily summary
The Outcome

Critical school communications now surface immediately. Marketing and low-priority items auto-sorted. Email processing time cut significantly. The classification logic is now shared with Focus Hub's email tools.

Tech Stack
Claude APIGmail APIPythonSupabaseVercel
AI Adaptation

Study Buddy

Flashcards that adapt to how each kid actually learns

Study Buddy visualization
The Friction

Traditional flashcard apps are static, boring, and one-size-fits-all. Kids lose interest quickly. Parents spend time creating cards that don't adapt to what the child actually knows. And when a kid gets stuck, the app can't explain—just repeat.

The Insight

Learning is personal. The same concept needs different explanations for different kids. And engagement matters as much as content—a bored kid isn't learning. AI can adapt both the difficulty and the encouragement in real-time.

The Solution
  • AI-generated content: Create flashcards from any topic, age-appropriate automatically
  • Adaptive difficulty: Performance tracking adjusts what comes next
  • Encouraging feedback: Claude provides kid-friendly explanations when wrong
  • Voice input: Younger kids can speak answers instead of typing
  • Character mascot: CottleCub (25+ expressions) keeps it fun and engaging
The Outcome

Used weekly for spelling, math facts, and science vocabulary. Kids actually ask to use it. The AI encouragement and adaptive difficulty transformed study time from a chore into something they engage with.

AI-Generated Mascot: CottleCub

Created a friendly bear mascot with 25+ expressions for different subjects, moods, and break activities.

CottleCub CottleCub CottleCub CottleCub CottleCub CottleCub
Tech Stack
Claude APINext.jsSupabaseWeb Speech APIGeminiVercel
Data Aggregation

School District Dashboard

Three kids, multiple schools, one unified view

School Dashboard visualization
The Friction

Three kids across multiple schools means information comes from a dozen sources: school emails, parent apps, websites, paper handouts, text chains. Critical dates get missed because there's no single place to see what's coming.

The Insight

Schools won't consolidate their communication—that's not happening. But we can aggregate on our end. Pull from every source, normalize the data, and present it in a way that answers the only question that matters: "What do I need to know about today?"

The Solution
  • Email parsing: Extract events and deadlines from school newsletters
  • Calendar aggregation: Multiple school platforms synced to one source
  • Child-specific views: Filter by kid for quick daily reference
  • DAKboard integration: Ambient display in kitchen shows today's schedule
The Outcome

Single source of truth for school logistics. "I didn't know about that" moments dramatically reduced. The calendar sync feeds into Family HQ, which feeds into Morning Rundown. Data flows downstream.

Tech Stack
PythonGmail APIiCalSupabaseDAKboard
About

The approach matters

Every project above started the same way: noticing friction that shouldn't exist. Not "what would be cool to build" but "why does this still suck?"

My 15 years in measurement and analytics taught me to focus on outcomes, not outputs. A system isn't done when it's built—it's done when it changes behavior. Every project here gets iterated based on actual usage.

The pattern that emerged: platforms work better together than alone. Family HQ became the data layer. Focus Hub reads from it. Morning Rundown synthesizes across systems. Email Priority's classification logic gets reused. Building modular, API-first means each new tool makes the others more valuable.

  • Problem Identification

    Finding the friction that matters, understanding why it persists, defining what "solved" looks like

  • AI Integration

    Claude API, prompt engineering, tool use, multi-model architectures, agentic loops

  • Platform Integration

    Connecting APIs (Gmail, Todoist, Notion, Twilio), shared data layers, systems that talk to each other

  • Full-Stack Development

    Next.js, Python, Supabase, Vercel, API design, database architecture

  • Outcome-Driven Iteration

    Shipping fast, measuring usage, iterating based on what actually happens, not assumptions