I think this is great, especially because it's OSS.
But if you want to really outshine Strong and Heavy, I'd look into "auto progression" of exercises. Too often, people just... log the same thing for years. Some RIR / RPE / linear progression would keep people motivated.
I was thinking of adding in workout templates and maybe even figure out progressive overload or routines like 5-3-1.
Someone earlier made a reference to another app that lets you write/share scripts that can be used to design custom programs - which is very interesting. Being web based, custom programs could be written in JavaScript and `eval`'d in a sandbox - allowing for a similar experience.
This doesn't really seem like a competitor to OP? I think it might solve different needs. One looks like a straightforward tracking app and yours looks like some kind of training/lifestyle program.
Nothing on the python side for templating will ever come close to React or things like that. I built https://www.reactivated.io specifically to let python do what it does best (business logic / backend) and render using React. But all still server side without the downsides of a SPA.
Every developer I know who has adopted Blazor never wants to go back and touch JavaScript. If you do it right, it will sell itself, your market isn't people who use React exclusively, but people using Python and possibly react, but also any other web framework. IMHO the key thing would be a standard similar to WSGI for this system, so it can be implemented and supported by any web framework. ... the more I think about it, the more I am going to have to look at writing a draft PEP...
thanks for sharing! The server side story is definitely a consideration why I'm not hyped on Inertia.js for now, this seems to solve it. My current nitpick is my personal preference for Svelte/SvelteKit. I hope you don't mind me taking a look at the repo and try to have Svelte as an option.
Big fan of typing improvements in Python. Any chance you can elaborate on the "if let" pattern in Rust and how it would look in Python now? Not sure I follow how it translates.