Haha, the alarm is quite annoying. I have custom alarm sounds as a todo now.
My reasons for using React:
Speed of development: I work with react nearly everyday at work, so a lot of its usage has become muscle memory. React abstracts away the need to think about the DOM, I don't need to write any query selectors, or think about what part of the DOM should be re-rendered when. The end result is that I can code up a simple view, and focus my efforts on the complex/fun stuff - the bit which counts the pushups. If I took the project no further, at least I invested my time on the most rewarding and fun parts of development.
Code reusability for Mobile apps: The alarm uses setInterval to track when to go off. This works well for me on desktop, but when minimising a browser on a mobile phone the javascript code stops executing. I need an app. With this in mind, having a React codebase means I can create a mobile app with react native and reuse code I already have. Also, going forward I'd have parity of web app and mobile features.
I sympathise with those who call for dynamic websites with a sprinkling of Javascript. I think most traditional websites like blogs and simple e-commerce sites are better served by that model. But, in cases where your sites core functionality needs JavaScript anyway, has a lot of state changes, and resemble what would have been a desktop app years ago, React makes sense. Saying that, even with traditional sites I'd be tempted to use react with server side rendering. Just because I love how I can reason about everything in JavaScript, compose my App from the ground up with components (divide and conquer), and group code by responsibility as opposed to arbitrary splitting between business logic and views.