Noah Cordle logo markCase Study · Designed & Built

Emphiciency

An AI planning app that takes a big goal and breaks it into doable daily steps, and quietly re-plans when you miss a day. I designed it in Figma and built the real app with Claude Code.

RoleDesigned & Built
ToolsFigma · Claude Code
Year2025 – 2026
StatusIn development
Emphiciency UI on a phone, held in hand
01 · Overview

Emphiciency is an app that takes a big goal, finish a thesis, learn a language, train for something, and turns it into small daily steps. When you miss a day, it quietly re-plans instead of piling missed tasks on top of you.

I did the whole thing myself, designed in Figma, built in Claude Code. Along the way: user interviews, the flow, the AI prompts, and real users to see what broke. The sections below walk through each part in the order I did it.

Walkthrough, the core loop end-to-end.
02 · Research

It started with my roommate.

My roommate has severe ADHD. I watched him try every productivity tool I’d ever heard of, adopt it, love it for a week, then watch it turn into another thing he was failing at. Emphiciency started with a question I couldn’t answer: why does every tool designed to help him end up making things worse?

Before I designed anything, I went deep on executive dysfunction itself, the cognitive mechanics, not the productivity-blog version. The audience isn’t a niche. Students, early-career workers, and people with ADHD adopt these apps to cope, then watch them become another thing they fail at.

11.4%of U.S. adults now report a current ADHD diagnosis, nearly double the 2020 figure (CDC, 2024).
~70%of college students report chronic procrastination severe enough to interfere with academic performance.
22%of installed productivity apps are still in active use 90 days after download.
$12Bannual personal-productivity market, yet reported user satisfaction has trended downward since 2019.

The framing the research produced: productivity tools aren’t broken, they’re built for a user whose life never has bad weeks. Most people have bad weeks. That mismatch set the whole project: build a tool that assumes inconsistency is the baseline.

Handwritten research notes in a notebook
Field notes from the first pass of interviews, transcripts and margin annotations.

Research

I interviewed a variety of people with executive-functioning challenges, and, deliberately, people who support them: teachers and therapists. The goal wasn’t a statistically clean cohort. It was to hear the same problem from different vantage points. A teacher describing what a student does differently the week after a bad Monday turned out to be more useful than another person describing their own bad Monday.

A few things came up in every conversation:

Missed daysdon’t recover on their own. The plan keeps the weight of what was missed, and the user opens the app to yesterday’s failures.
Startingcosts more than choosing. Most apps optimize the wrong side of that, they help you rank tasks, not begin them.
Streaksand ranked lists punish inconsistency. Every interviewee who’d abandoned a productivity tool named one of the two.

Synthesizing into a conversation partner.

Interview transcripts and supporter notes, cleaned and anonymized, went into a custom GPT on ChatGPT. Not as a persona to roleplay, but as a synthesis I could interrogate. I used it to pressure-test why current solutions fail: why streaks backfire, why “just one small step” isn’t small for someone with EF challenges, why planning tools become an avoidance surface.

Why existing tools failSynthesis output
Streaks & rankingPunish inconsistency. Missing once is a reset; missing twice is a reason to delete the app.
Yesterday’s debtMissed tasks pile up in today’s list. The user opens the app to a to-do made of failures.
Choose, don’t startMost tools optimize prioritization. For EF challenges, the cost is in starting, not choosing.
Rigid reschedulingAuto-rescheduling moves blocks without changing the plan. The weight of the goal stays the same.

The thesis that came out of that synthesis is what the product is built around: adaptive planning, a plan that bends with the user instead of breaking. Missed days get quietly absorbed. Plans fit into life, not the other way around. No streaks to reset, no ranked priorities to negotiate.

I also used the GPT as a sanity-check partner while designing, pressure-testing a flow against the synthesized pattern and asking it where a real user with EF challenges would fall off. Tap an attribute below to see the signal behind it.

P.01 · Synthesized PersonaChatGPT Synthesis
Synthesized persona: Mara
Mara, 23Senior-year student · diagnosed ADHD · works two part-time jobs. Has tried and abandoned four productivity apps in the last year.
Custom GPT · Interview & Supporter SynthesisConversation Partner

The GPT didn’t replace judgment, it let me hold more data at once. I could ask it “would this user abandon this flow” and get a shaped-by-the-transcripts answer in seconds, then go back and fix the flow before anyone sat in front of it.

03 · Flow & Wireframes

Journey map and the questions I held the design to.

Before drawing anything on a phone, I built a journey map and wrote a list of design questions to hold every screen against, parameters that kept the product cohesive as the surface area grew. A few of them:

Does the user ever see yesterday’s failures?
Does the plan feel like it’s listening, or just running?
Is there any surface where a missed block generates guilt?
If the user opens the app tired, is there still one small thing to do?

Every screen that went into Figma had to answer these the same way. When two screens answered differently, the design was wrong, not the question.

Mapping the system before drawing a single screen.

With the journey map and parameters in hand, I mapped the whole loop end-to-end, intake, decomposition, daily view, reprompting, weekly check-in, archive. The flow’s job was to let me argue with the system before drawing a single screen. Cheaper to fix here than in Figma.

Figure 01, User flowEmphiciency user flow diagram, overwhelmed user to goal intake to daily blocks to weekly check-in to archived goals.
User flow, v1, drawn immediately after the journey map. Covers intake, backward planning, the adaptive daily block, weekly recalibration, and the achieved-goal archive. Orange edges mark the adaptive recovery paths, the places the plan listens and rewrites itself instead of punishing a miss.

Two decisions locked in here. One: the user only ever sees today. The week is available on request, never by default, visible future load is the #1 trigger for abandonment. Two: missed blocks don’t carry over. The AI rewrites the downstream plan so you never open the app to yesterday’s failures.

From flow to low-fi screens.

With the flow agreed on, every node became a wireframe. The goal wasn’t aesthetics, it was to check whether the interactions would actually fit on a phone. I drew deliberately ugly so feedback stayed on structure, not type.

Figure 02, Wireframes, 10 screensEmphiciency wireframes, ten low-fidelity screens covering goal intake, question sequencing, daily view, calendar, check-in, reprompting, and goal catalog.
Wireframes, v1, ten screens covering intake, question sequencing, Today View, week-at-a-glance, month calendar, the reprompting overlay (“why is this step important”), the regenerate-solution loop, and the goal catalog. Sketched immediately after the flow and reviewed against the five rules before moving to high fidelity.

Three things changed between the flow and the wireframes. Intake grew a free-response field, multiple choice alone couldn’t catch every goal shape. The Today View got a “why is this step important” prompt to lower friction without adding a screen. And regenerate split in two: suggestions on the left, your own reprompt on the right. Each correction cost an eraser, not a Figma re-flow.

9:41●●●
Step 01 of 03What do you want to get done?
Write
Learn
Train
Build
Continue →
Frame 01Intake · describe the goal
9:41●●●
This week
MTWTF
14 blocks~6h 30m
Accept plan
Frame 02Plan · week at a glance
9:41●●●
Today · Tue
Draft outline35m
Why it matters
Skip
Start 35m
Frame 03Today · one step, one prompt
9:41●●●
Regenerate tomorrowSuggestions
Shorter blocks, earlier start
Pull writing forward 1 day
Replace with review pass
Or tell it
Regenerate
Frame 04Reprompt · regenerate tomorrow
04 · Synthesis & Principles

From what I heard to rules I design by.

I grouped the research into five rules the product actually holds, not principles on a slide. Every interaction gets tested against them. Break a rule, don’t ship.

Principle · P.01

Treat variability as default

Design assumes inconsistent effort. Missed days are states, not failures.

Don'tStreak broken · 0 daysStart over. You lost your 14-day streak.
DoWelcome backOne small re-entry block today. That’s it.
"I missed one Tuesday and the streak died. I never opened the app again."P.04 · Student, ADHD
05 · Planning System

Goals → Blocks → Schedule.

A big goal gets broken into small verb-first Blocks, and the Blocks get dropped onto your week. Tap a goal below to watch it happen.

Step 1 · Pick a goal
Step 2 · Break it into Blocks
Pick topic· 25m
Skim sources· 45m
Draft outline· 35m
Write intro· 45m
Write body· 60m
Edit pass· 30m
Step 3 · Drop into the week
Mon
Pick topic25m
Skim sources45m
Tue
Draft outline35m
Wed
Write intro45m
Thu
Write body60m
Fri
Edit pass30m

Every Block is phrased as a verb-first action, sized to fit one session, and re-shuffled whenever your inputs change.

06 · The Adaptive Loop

Today View, reprompting, and the cost of friction.

Each day you see a Today View, only the Blocks for today, nothing else. Tap reprompt if a task feels too big, unclear, or just wrong for your state: simplify, postpone, or get help starting. The plan shifts live, and the rest of the week shifts with it.

Before · modal edit flow4m 12sMedian initiation time. Felt like punishment, users edited, then bailed.
After · conversational reprompt38sSystem acknowledges friction, restates the goal, offers options.
07 · AI Process

From wireframes to a real, working app.

With the wireframes and journey map settled, I moved the whole thing into Claude Code and built it as a real app, not a clickable prototype. Two integrations made it behave like a product instead of a demo: the Google Calendar API, so plans read the user’s actual schedule, and the Anthropic API, powering the planning logic, breaking goals down, fitting blocks around real commitments, re-planning after a miss.

BuildClaude CodeWorking app, not a clickable mock, every flow tested against real user sessions.
ScheduleGoogle Calendar APIPlans read the user’s actual calendar, not a mock. Nothing gets scheduled on top of a class or a shift.
Planning logicAnthropic APIGoal decomposition, day-level fit, recovery re-planning, the four jobs below run through here.

How the AI actually works.

Four small jobs, one at a time. Tap a stage to see what the AI actually does and says.

Write a research paper due in 2 weeks.
Pick a topic, 25m
Skim 5 sources, 45m
Draft outline, 35m
Write intro, 45m
Write body, 60m
Edit pass, 30m
Big goal in, small verb-first steps out. Each one is sized for a single session.

The tone mattered as much as the output. The AI never lectures, never mentions streaks, and never tells you to “try harder.” It’s there to help you start, not to judge you.

08 · Behavioral Learning

A quiet model, not a scoreboard.

A daily check-in quietly captures energy, stress, sleep, and blockers. You never see a score, the data feeds a local model that notices your peak hours, how you recover from misses, and what Block size you actually finish.

The model is cautious on purpose. It waits for ten data points before shifting defaults, and every change says why, in plain English. No silent nudges.

09 · Key Features

What the app actually does.

Four moments that make the app feel different from the productivity apps I grew up abandoning.

Visual Direction · Before → AfterDark purple SaaS → analog paper
Earlier iteration of Emphiciency, dark purple screens with circular progress rings.
First direction, dark theme, progress rings, SaaS dashboard energy. It looked serious. It also looked like every app users had already quit.
Current Emphiciency direction, sticky notes on a soft paper background.
Where it landed, soft paper, sticky notes, handwriting warmth. The app feels more like a notebook than a scoreboard, which was the whole point.
01 · Thought MapBrain-dump, then plan.Throw your goal and everything around it onto sticky notes. The AI reads the mess and turns it into a plan.
02 · Day AssistantOne tap to re-plan.Stuck? Tap “feeling overwhelmed” or “these steps feel wrong” and the day rewrites itself. No streak guilt.
Open and type.
03 · Start AnywhereOpen and type.No categories, no setup. Big goal or small task, same entry. The app figures out which one it is.
Not alone, and always synced.
04 · Supporters + CalendarNot alone, and always synced.Invite people who care about your progress. Your plan also syncs to Google Calendar automatically.
10 · Reflection

What the process taught me.

The biggest shift was realizing AI isn’t a replacement for design thinking, it’s a tool that makes me faster at it. Synthesizing a stack of transcripts into something I could interrogate would’ve taken a week; with a custom GPT as a thinking partner it took a day, and I still made every call. Prototyping in Claude Code let me test real flows with users instead of clickable mocks. The craft didn’t go away, it got amplified.

Second lesson: research never stops. Conversations shape a product. Watching people use it changes it. Every section of this case study is a belief I held before testing and a correction I made after.

Third: the hardest part wasn’t the AI. It was resisting the urge to let the AI solve problems a sorted list could handle. Treating AI as one material among many, not the material, made the product quieter and more honest.