Hacker News new | comments | ask | show | jobs | submit login
Show HN: A workout logger written using React/Redux (ewolo.fitness)
58 points by wheresvic1 on July 16, 2017 | hide | past | web | favorite | 50 comments

You may want to change the wording on the "Why Ewolo?" page. At a glance, it looks like you are saying it is: platform specific, not user friendly, and not flexible.

That may just be for users like me who see the title, then go straight to reading the bullet points.

Reworked the text - hope it reads better now: https://ewolo.fitness/why-ewolo

That's good advice - I will think about how to redo the text then. Thank you!

A couple of other cool features in the works are

- Add goals and ability to track weight

- CSV export, take your data and use excel to make your own charts if you're looking for something specific

- Youtube links to videos for exercises for proper form.

A really cool long term feature would be to use some ML to allow exercise discovery / make workout recommendations based on goals.

All feedback is welcome!

(Edit: formatting)


A way to rearrange exercises

A way to change the exercises I do in a workout over time (common practical point many gym trackers miss)

Tracking a down or up set (weight starts at 100lb but next set you do 90lbs)

These are all things you'll run into once you start using tracking/logging apps substantially.

I've worked on my own tracker for these reasons and more, but can definitely attest that features for a logger come best by using it yourself for months to years before committing to new (potentially unimportant) features. Some of the features you mentioned (YouTube vid links for example) are not things you really want or need (and can clutter) a tracker- whose point is to TRACK not TEACH.

Hi! Thank you very much for the feedback and I already have moving exercises around in the pipeline.

This is a very useful feature and but mostly useful for post workout logging and I decided to defer it to the next release which should be in a month or so :)

An easy way to increase/decrease weight is also a great idea.


Personally : I don't really care about any of those features, what I'd need to use this service everiday is simply a more polished UX (unnecessary no-timeout notifications, the kg-lb thing, etc).

Excellent, these notifications are starting to annoy me as well and a few people have mentioned the kg-lb thing so I'm definitely going to prioritize that.

I think a sensible approach would be to set an account default but still provide the button to allow data input in whatever unit. Or is the button then totally unnecessary? What do you think?

I personally think button is unnecessary. The most people will decide if they want to use lbs or kgs just once in the beginning (maybe it would be ok to create view for choosing right after registration) and this decision is based on metric system which is used in their region. If they want to change it at some point, it'd be still possible to do so in their profile settings.

Workout logging is an interesting product/User Interface problem. There are a lot of workout logger apps, but not a single one has emerged as a clear leader in the space. Why is that? Also, a lot of tech savvy people that go to gym, still use the trusted pen'n'paper approach. Why is that?

One reason is that training regimes differ a lot - a single app is unlikely to be a good for strength training (training is build around 3-5 big movements with a few auxiliary exercises), body-building (more movements) and crossfitting.

Other reason is that convenience of pen and paper input is still hard to beat, and for reason or another, people don't get enough value from the digital views to their training history and performance.

Exactly this. Using a phone/website/app while I'm lifting weights in the gym is the last thing I want to do. So, I use pen-and-paper and copy over to Google Sheets weekly. That way I have the raw historical data: I can track progress, derive metrics, and create graphs with ease.

But that's not to say I don't want a better solution!

Workout logging is primarily an exercise (pun not intended) in intense user experience design. The designer must understand the task context.

There's one killer input modality in my mind -- an Apple Watch.

I have no issue wearing a watch while I'm working out. And it'd be fantastic if an app could:

- Track my daily exercise ordering (i.e. it knows what I'm supposed to do next)

- Show my rep/weight history for the current exercise and allow input of results after sets

- Monitor and record my HR throughout my workout and estimate my rest intervals/vibrate when my rest interval is up

- Offer alternative exercises when requested

- Etc.

There's so much you could do with a watch as the primary mode of input.

The watch is what you use in the gym. And the computer/tablet is what you use for analysis later.

If someone were to execute this properly, I'd be all over it.

> Also, a lot of tech savvy people that go to gym, still use the trusted pen'n'paper approach. Why is that?

Speaking for me: I need to track partial sets, shady reps, circle training setups and posture/alignment/speed reminders/observations to myself. Free text works best; the last thing I want to do when I'm shaking and sweating profusely is diddle around with how to enter something in a convoluted app setup. (To be fair, I do my "creative", i.e. SW design/architecture notetaking mostly on paper, too.)

Honestly the only two things I need from a workout logger are:

1) A timer - tracks rest periods (1.5 mins, 3 mins, 5 mins) and alerts when rest is over

2) set/rep tracking - I just want to know which set I am on and how many are left

everything else is icing on the cake. Would love a smart watch app that can track rests and sets/reps and upload to spreadsheet/db, which I could access from my phone or laptop once I'm home.

The biggest annoyance to me currently is having to take phone out of pocket, unlock it, tap to log.

One thing is that if your usual machine/stand is occupied you have to improvise with other exercise which for paper is trivial to do where in app you usually end up going through loads of menus to add custom exercise. I do not want to spend time waiting for stand or fiddling with app, I want to do my workout in 1 hour or less and go home do something more interesting.

For me, its about not unlocking the phone everytime (i am used to screen locks) after minute (typical set duration) and log my stats. So I prefer pen and paper. What would be cool though is the ability to log my stats using voice input and that would be easier and more convenient as I am almost always with my headphones (with mic support). So, then I can simply say something like "exercise 1..set 2.. 12 reps.. 80 pounds" and it should log it. This will save lot of efforts to take out my phone and log workouts manually..

I'm assuming you have a home gym because I can think of nothing more silly than being the guy sitting on a bench in my crowded commercial gym speaking his stats into a phone.

No. I don't have home gym. But, my gym is nearly empty during my workout times (6 am mornings). But, I wouldn't care and use mic even in crowded gym if its more convenient. :P

THIS! I have been working out for the past 13 years and I've had exactly the same problem.

I still leave my phone in the locker, take my iPod from 2007 for music and log my workouts on pen/paper.

Recently, I've been hitting some plateaus and I desperately wanted to see what my progress has been over the years as a motivator and that's what lead me to make Ewolo.

I'm starting to use it to log workouts directly in the gym but old habits die hard, haha.

Can you upload a demo of the sheet you are using ( the paper one)?

Sure you can just email me vic@ewolo.fitness and I'll be happy to send you a scanned sheet.


There is also /r/bodyweightfitness excellent recommended routine app on https://github.com/mazurio iOS and Android - compiled versions in http://www.bodyweightfitness.co.uk

Looks pretty cool. I also recently developed an app to track strength training workouts. I also used React/Redux for the web app. The iOS app is native though (supports offline mode and offers Watch app) and Android is in-progress.


Good luck with your app!

Hey, I just checked out your app and a few quick notes:

- the web version costs money after 90 days but the app is free. Why the differences?

- it seems that I cannot add any other exercises apart from the ones provided, would be nice to be able to quickly log what I wanna do.

- the records list view on mobile is a bit squished (i.e. I find it difficult to horizontally scroll)

- no support for super-sets: I do a lot of circuit training and I somehow managed to add this feature to Ewolo using a rest parameter. I'm still not sure what the best way to model this data would be without making it cumbersome.

Anyways, nice work though that you got a web and a native iOS app out there. It seems that making a nice, simple workout logger is not the easiest job.

Good luck to you as well!

Thanks for checking it out - really appreciate the feedback. Some responses:

"the web version costs money after 90 days but the app is free. Why the differences?"

Because the web version stores your data on my server (and thus making it syncable to all your devices) - and so for that capability (and to cover my server operational costs), it's a paid feature. But if just using the iOS app, all of your data is by default stored locally on the device (I'm using Sqlite for that), and so that's free (since I don't incur any operational costs for that).

"it seems that I cannot add any other exercises apart from the ones provided, would be nice to be able to quickly log what I wanna do."

I thought about that in the beginning, and ultimately decided against it for simplicity; and would instead go the route of incrementally adding more and more exercises myself to the app. But will perhaps re-think this.

"the records list view on mobile is a bit squished (i.e. I find it difficult to horizontally scroll)"

Will look into this. I'm currently using an OSS library for the records display, and so I'll see if there are params I can tweak.

"no support for super-sets: I do a lot of circuit training and I somehow managed to add this feature to Ewolo using a rest parameter. I'm still not sure what the best way to model this data would be without making it cumbersome."

I also struggle with how to model supersets - more so from a UX standpoint. You're totally right - you'd think a rep tracker would be easy, but as you get into it, there's quite a bit of complexity that emerges. I think I have a good way to handle supersets, but that will have to be for a future release...currently trying to get the Android app (and Gear app) done.

Thanks again for the comments.

[edit - typos etc]

I actually built something similar using React/Redux, but I've been moving away in favor of plain old Javascript. Usually I'm working out at home and using my laptop, but if I'm out at a friend's house, I'm using an old iPad. There was a noticeable lag, doing certain things on the React/Redux stack, that disappeared when switching to plain JS.


Iphone - Safari (incognito):

- if I switch from kg to lbs via button I will see lbs only for new/re-added exercises with the same kg->lbs button (I can still convert but the label says lbs instead of kg)

- if I register I get error with registration (maybe because of 2letters as full name?) however I hit register again with same data and now account already exists error.

Nice work and nice idea, a clean and functional UI can be motivating in and of itself. But definitely rework this part:

> To convert from kilograms to pounds, enter the weight in kgs and hit the convert button. To re-enable the button delete and re-add the exercise.

Thank you very much! Yes, it seems that the units are a real pain point. This will be customizable in the next release.

Would you believe it if I told you that I myself use Kgs and need to convert every time? I had to make some decisions for an alpha release and this was one of them (I just picked the lower unit as default)!

It's more that functional buttons shouldn't just disappear like that. Why not have it change to "Convert to Kgs" when the input is in pounds?

What if I want to work in kgs?

Doesn't render anything at all if cookies are blocked. So many times but it's not getting to me.

Ruh ROH - you shouldn't really need cookies at all, I'll have a look asap and see what's wrong!

This is now fixed!

I have looked a while for a good app to log strength training workouts. I'd invite you guys to check out Progression App http://www.progression-app.com/. I honestly don't think there can be much better than that.

It's only Android so admittedly doesn't solve the multi-platform issue.

why is it's only merit that it's built with react/redux? Is it not enough to solve a particular problem of workout tracking, that you must do so using the development framework of the day?


> Account only required if you wish to save your workouts.

this is a WORKOUT LOGGER. What am I doing, as a user, if not logging my workouts? There is no other value proposition. Users do not benefit from entering their workout histories and NOT hitting save - and this site only does one thing. It would be like seeing in a food store "checkout only required if you wish to purchase your items".

As an effort to launch a product, it's commendable. Lots of checkboxes to hit, and not nothing to hit them. But if you're ACTUALLY trying to launch this as a real service... There is much to be desired - and it has nothing to do with CSV exports or using react to do it.

Hello and thanks for your feedback!

Part of making this service was to learn React/Redux and see how different it is to Angular. I've read quite a bit but there's nothing quite like learning by doing something bigger than a todo app - the front-end is open sourced on Github and I plan on writing a few blog posts on what I've learnt building Ewolo, hence the title.

Regarding the text, I wanted to let people know that they can try out the interface without needing an account. I agree with you that it sounds a bit dumb and I'll try to word this better :)

If you have any more ideas on what it would take to really hit it out of the park, I'm all ears!

Good to know. If it's more of a technical exploration of implementation, i would prefer you lead with that. This, as the end result of a series of blog posts, would make a lot more sense to me.

But it, in itself, has some glaring product design and marketing issues. In that - it's an afterthought. Which, given that this was a learning experiment, is more palatable for me, than as a service I'm actually expected to signup for and use.

Regarding the current try before signup behavior: i'm not actually trying the app before signing up, when i fill in a form. I'm, filling in a form and then being forced to signup after. Instead, it would be better for users to explore an existing (demo) account's data and tinker with entering results and exploring charts, and then decide to signup if it's good.

If this was a food delivery service, where an account signup could impede potential users from using and where it may not even be required, this approach would make more sense - just let them start using right away. But because it is a collection of data, you would be better off showcasing dummy data.

I'm trying to learn React/Redux - do you have any tips/guides on learning how to get register/login working?

Yes I can definitely try and help you to the best of my ability. Feel free to email me: vic@ewolo.fitness

Also, just to let you know that my timezone is CET :)

> Users do not benefit from entering their workout histories and NOT hitting save

Allowing people to try out the product without requiring a signup is an extremely frequent piece of feedback here. Very appreciated.

filling out a form does not allow one to try the product without signup. To deliver on that concept, would require something more akin to a demo account, with preexisting data, that they could add to or explore the existing entires for.

Framework of the day? What world do you live in? React and redux aren't new and they're the standard for almost every frontend job I saw when I was interviewing a few months back.

I didn't say they were new, and I won't deny their penetration. They're great if you're into resume driven development. (I am not)

Vue.js is apparently the framework of the day.

I am seriously considering making a vue.js clone and document the differences!

I need to polish up the current app first though :)

Always nice to be able to log your bodyweight when you exercised

Yes, this is a crucial feature that is coming verrrry soon! It's especially motivating to see how well you have done compared to how much effort you put in.

This plus some neat graphs on what your personal records are :)

Was it necessary to mention React/Redux in the title? What value does it bring?

I've been reading and doing tutorials but I wanted to build something useful to really be able to compare it with angular/jQuery (where most of my experience has been).

I plan on writing a couple of blog posts on what I learnt as well plus the front-end is open-sourced on Github :)

I've been using Ewolo heavily myself and thought that it might be useful for others as well.

React and redux have nothing to do with the product usability. No one gives a fig about what technology is being used under the hood if you only provide the link to the final product.

Oh, it seems that react fanatics are not happy.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact