Fini
An accountability companion for the plans no one else is waiting on.
- Role
- Design Engineer
- Tools
- Cursor, SwiftUI, Apple HealthKit, Supabase, Anthropic API, Figma
- Focus
- Agentic Engineering, Bio-adaptive UX, Cognitive Load Management
Overview
Personal plans deserve the same accountability as everything else on your calendar.
Fini is an accountability companion for the plans you make to yourself. The portfolio you keep meaning to update. The skill you wanted to learn. The plans no one else is waiting on.
Product Highlights
Understands your energy.Helps you start.
Fini reads your daily energy using signals from Apple Health. When your energy is low, it breaks tasks into smaller steps to help you get started.


Say everything on your mind.Fini turns it into a plan.
Describe what you need to do in your own words. Fini understands your intent and turns it into a prioritized task plan.

Your next step, on your wrist
Fini brings the right next step to your Apple Watch so you can stay focused and keep moving forward.
The Problem
The plans that shape who you become are always the first to break.
Look at the plans you finished this week. Then look at the ones you didn't. The pattern isn't random. The plans that finished were the ones with external accountability. The 10am meeting. The deadline your manager set.
But the plans that fell through had no deadlines, even though they were the ones that actually grow you.
PLANS THAT FINISHED
External accountability
- Team standup
- Client deadline
- Wednesday class
- Doctor's appointment
→ Completed on schedule
PLANS THAT DIDN'T
Internal accountability
- Update portfolio
- Study Swift
- Side project
- Daily writing
→ Postponed indefinitely
Research
Why does this keep happening, even to people who genuinely want to grow?
I ran a 6-day diary study to see what people actually do when they're alone with their own goals.
Each participant logged energy, mood, intended tasks, and what they actually finished, twice a day. Three findings reframed the entire problem.
The accountability gap is real, and it's binary.
On the same day, with the same available time, participants completed nearly 100% of externally driven tasks (meetings, classes, deadlines) while postponing self-initiated tasks again and again.
Structured, externally driven tasks were consistently completed. Self-initiated tasks were frequently postponed. Users rely heavily on external accountability to maintain consistency.
The pattern is structural. Every work commitment lives inside a system of reminders, calendars, and witnesses. Self-promises live alone.
Starting is the hard part.
Once participants began a task, momentum sustained itself. The breakdown happened at the activation threshold. Vague tasks ("study," "work on portfolio") collapsed first because there was no concrete first step to execute.
The hardest step is starting. Once started, users sustain momentum easily. Vague task descriptions led to avoidance and procrastination.
Capacity is measurable. Intention isn't.
The most consequential finding: participants abandoned plans when their biological capacity ran out, regardless of how much time they had left. Poor sleep, low recovery, and accumulated fatigue predicted abandonment more reliably than mood, motivation, or schedule density.
Recovery quality depended on sleep quality and emotional stability. Anxiety, stress, and sleep deprivation caused procrastination even when energy levels felt high. Users consistently overestimated their daily capacity, leading to over-scheduling and task fatigue.
People plan with their aspirations. They execute with their biology. Biology is the half of that equation already being measured every minute, by the device on their wrist.
Systems Architecture
Let's see the Big Picture!
Fini does two things. It gives self-initiated plans external accountability. It anchors every plan to the biological capacity your body actually has today. Before writing a line of SwiftUI, I mapped how those two promises had to flow through one shared engine.
At the heart of that engine is a single number: how much your body can actually carry today.
The Logic: Quantifying Capacity
Sleep, HRV, and Activity flow into a single function. The output is a personalized energy score that tells the plan what your body can actually carry today.
The Product
Three behaviors. One companion.
Each behavior maps directly to a research finding. Every screen earned its place in the diary study.
ANSWERS INSIGHT 03
Reads what your body can actually do today.
Fini pulls sleep, HRV, and resting heart rate from Apple Health and computes a daily capacity score. On a low-capacity day, the plan adapts: a 90-minute deep work block becomes a 15-minute review. The day still moves forward.

ANSWERS INSIGHT 02
Lowers the activation barrier to nearly zero.
Manual task entry is a tax on people who are already depleted. Speak what's in your head; Fini parses, prioritizes, and breaks vague intentions into concrete first steps. 15 minutes of planning becomes 30 seconds of speaking.
ANSWERS INSIGHT 01
Becomes the witness your self-promises don't have.
Work has Slack, calendar invites, colleagues asking where things stand. Self-initiated work has none of that. Fini surfaces the next step on your wrist in the moments you'd otherwise drift, the way a calendar invite makes a meeting visible.

Build & Iterate
From hypothesis to working system in 24 hours.
Static mockups can't reveal whether a behavioral system actually works. With a clear PRD and the architecture mapped, I shipped a functional V1 in a day and put it in front of users.
24-hour validation loop
I designed in Cursor with the inference layer wired live, so user testing could run on real bio-data the next morning.
PRD & Architecture Planning
Clarified the product hypothesis with ChatGPT, drafted a short PRD, and defined color, font, and system architecture in Cursor Plan Mode.
What broke under real use
User testing surfaced four gaps no Figma file would have caught.
Each gap, addressed
Every change traces back to a specific user-testing finding.
Voice Task Entry
To eliminate the cognitive load of manual entry, I implemented Voice Capture. An Edge Function parses natural language into categorized, energy-weighted tasks, removing the friction of planning.
Making It Easier to Start
Energy-Matched Breakdown turns large, overwhelming tasks into small, doable steps based on real-time energy, so users can take the first step, even on low-energy days.
Making the system visible
I redesigned the Hero Section to surface raw bio-data (HRV, Stress, Sleep). When the system's reasoning is visible, the AI feels trustworthy. Choosing what to surface became the central UX decision.

Optimizing the Bio-Inference Model
The initial energy model was skewed by workout data, leading to inaccurate scheduling. I directed Cursor to re-engineer the data ingestion layer, prioritizing Resting Heart Rate for biological accuracy and adding query caching to cut system latency.
UI latency
840ms → 95ms
Async HealthKit fetch + cached inference reduced the visible wait.
Cache policy
1 hour TTL
Avoids repeated HealthKit reads during navigation and refresh.
Model signal
Resting HR
Prioritizes biological baseline over workout-influenced averages.
Solving the edge cases
User testing keeps running. Each edge case ships back into the model and the UI.


Impact & Vision
Help people keep promises to themselves.
Through structure that adapts to how their body actually works, and accountability that finally exists for the plans no one else is waiting on.
What I gained
Merging design and engineering into one person collapsed the iteration loop from days to hours. The design got better because the engineering kept pushing back.
Recognition
Selected for the Academy of Art University 2026 Spring Show.
What's next
App Store launch. Goal: 500 users and a 4.5★ rating in month one.