Pseudo-Pomodoro Timer - a work/break timer that changes its duration based on your motivation level

Pomodoros are great but sometimes you don’t feel like doing the typical 25/5 cycle.

I was toying with the idea of a pomodoro timer that changes duration based on how I feel right now.

For example, if my motivation is not high (numerically, 1 for example), the timer will set the work duration to 2.5 minutes instead of 25 minutes. And when I work, I might realize I’m enjoying the work and I can then set a new motivation level. I can set it to 10 and work the normal 25 minutes for my next pomodoro.

The lowest motivation level is 0 which is equivalent to “not feeling like doing anything at all” and the corresponding duration is 1 minute. Anyone can do 1 minute of work. And more often than not, when you start working even if it’s for a short time, most likely you’ll realise that you feel much better about the work and want to work longer.

At least, that’s my justification. Maybe the fundamental idea is wrong so feel free to criticize and point out my mistakes.

Here’s the app: App.

And the repo:

Built with React.

I haven’t fully tested the app but from my limited use, it works okay even on mobile. There’s definitely bugs that I haven’t seen; I appreciate it if you can tell me about them. The app is also limited in features eg no way to set custom work and break duration and the timer doesn’t run when the tab is in the background; I’ll see if I can add more improvements in the future.

Any feedback, critical or not, is highly appreciated.

Improvements made based on great feedback from the community

  1. Made the work-break flow continuous. It can be tedious to start the break manually.
  2. 1 minute is too little time to do anything worthwhile. I increased the minimum duration to 5 minutes.
  3. And if you feel up to the task aka greatly motivated, the highest setting is now set to 90 minutes.
  4. Display the work-break cycle after motivation level is selected
  5. Add a “skip” button to skip work or break.
  6. Now the break duration increases as the work duration increases.
  1. Are you trying to pass the FCC project challenge?
  2. Everything you want your pomodoro clock to do, it will do if you follow the FCC project requirements.
  3. Your app crashes at the end of countdown. It does not switch between “work” and “break” time.
  4. I would argue your app is not a “pomodoro clock”, but that is my opinion.
1 Like

Nice twist on pomodoro. I don’t think you can do anything meaningful in 1 minute though. I’d change the shortest work interval to like 10 or 15 minutes, and have the longest one be longer than 25 min pomodoro. Maybe 1 hour.

1 Like
  1. Nah, it’s just something simple I would like to built for myself.
  2. As outlined above.
  3. I see. It works on my end; the break needs to be triggered automatically. I’ll look into it.
  4. True, maybe it’s more of a work-break timer rather than the normal pomodoro timer. Or are you pointing out that the break timer doesn’t start on its own? I was thinking of making that the default behaviour instead. Though in many pomodoro apps, normally you can choose between continuous or manual work/break flow; I might add that in the future.

Anyhow, thanks for the feedback.


I think 5 minutes is best for the lowest setting as a warm up to work of some sort. 10 minutes is 2 digits long and that can trigger some resistance in people.

Great idea on making it longer for higher motivation! I’ll see how I can change it.

I looked at it again.
It starts at 5 minutes, but if I change my motivation level I can’t set it to anything less than 25 minutes and it goes as high as 450 minutes.
At the end of work time it switched to break time of 25 minutes. That seems like a long break. I tried to set it shorter but it switched back to work time. I don’t see a way to change break time based on motivation.
Also, if I was feeling really unmotivated and wanted to take a break it would be nice to just put it on break time.

1 Like

Ah, I see. Thank you for the detailed description and flow. The break shouldn’t be anything other than 5 minutes; additionally, break time is currently static at 5 minutes and not based on motivation level.

And I’ll think of adding a “take a break” button. Though, you can just click “I feel different” and that’ll start the plan mode; still, there’s no timer when you’re in that mode.

I’ll definitely look into it. It seems like a huge bug.

Thank you for the feedback, you’re a great help.

Edit: Alright, found the culprit. I changed the wrong variable when I tried to modify the timer duration.