Inspiration

It started on an ordinary bad day. My head was so full I could not start anything, and it was not a time problem. There was just too much at once, and the longer I stared at my list the more frozen I got.

I also noticed that asking some AI made it worse. It would hand me back ten neat steps, which is the same wall that froze me in the first place. So I wanted the opposite of a to-do app. Something that takes everything in your head and gives you one small thing to do next. That became Unstuck.

What it does

You open it and just talk. Dump everything on your mind, messy is fine, and instead of a long list it gives you one card: the single smallest next step. It also tells you why that step helps, which comes straight from the psychology of starting small.

There is a slider for how much energy you actually have right now. Slide it down and the step shrinks to something you can barely say no to. Slide it up and it hands you a bigger move. If you mention a time, like a dentist at 5pm, it pulls that out and lets you drop it into your real calendar with one tap. Want the full picture? Flip to Organized mode and the whole list is there, cleaned up. Finish something and you get a small, genuine celebration. No streaks, no points, none of the guilt that other apps pile on.

And it can tell a task from something heavier. If what you wrote sounds like a crisis, it stops and shows real help instead of treating it like a chore.

How we built it

It is a Next.js 16 and React 19 app in TypeScript, styled with Tailwind v4 and deployed on Vercel. No accounts, no backend, nothing leaves your phone. Your session lives in local storage.

The brain is Claude Haiku, running two passes. The first pulls the real tasks out of your dump and shrinks each one to a tiny next step. The second is a skeptic that argues with the first: is this busywork, is the reason actually true, is this really the smallest step. That second pass is what stops it from telling you to "write down a phone number you already have."

Voice input runs in the browser with the Web Speech API, so it costs nothing. The calendar button builds an .ics file on the device and opens your real calendar. The celebration is drawn on a canvas with canvas-confetti so it fires even on Safari. And the whole thing installs to your home screen like a real app.

Challenges we ran into

Safari fought me the whole way. The completion celebration refused to show on real Safari for ages, while Playwright kept swearing it worked. The old version drew it with CSS that got quietly switched off, so I rebuilt it on a canvas. Voice was the same story: Safari ends the mic after every little pause, so I had to make it restart on its own while you are still talking.

The hardest call was keeping the AI honest. A generic assistant will happily give you a step you finished days ago, which is useless and a bit insulting when you are already overwhelmed. The skeptic pass exists entirely to catch that.

There was also a sneaky cross-browser bug where one security header broke the app on Safari and Firefox locally while Chrome hid it completely. I only caught it by testing in the actual browser engine instead of trusting a green checkmark.

Accomplishments that we're proud of

It actually feels calm. That sounds soft, but it was the hardest thing to get right, and I think it landed. The one-step idea holds up in real use - you talk, you get one doable thing, you do it, and the next one feels lighter than it should. I am also proud that it takes safety seriously. If someone is in real trouble, the app does not gamify it. It points them to actual help. For a little productivity tool, that mattered to me more than shipping another feature.

What we learned

Most of the neuroscience held up once I dug in. Finishing a tiny step gives you a small dopamine hit, that hit builds momentum, and momentum is what actually beats procrastination. Starting small is not a motivational poster, it is how the brain gets moving.

What's next for Unstuck

The dream is to make it as instant as Shazam: one tap from the iPhone Control Center, speak, done. That needs a native shell. Real reminders when the app is closed need a service worker. And I want to keep tuning the step sizes so they feel even more matched to where you actually are. For now it is a calm web app that gets you to the first step. That is enough to start.

Built With

  • anthropic-claude-(haiku-4.5)
  • canvas-confetti
  • icalendar-(.ics)
  • localstorage
  • next.js
  • playwright
  • pwa-(web-app-manifest)
  • react
  • tailwind-css
  • typescript
  • vercel
  • web-speech-api
  • zod
Share this project:

Updates