The main idea is to make a weight lifting tracker app, that is flexible enough to implement pretty much any weight lifting routine. It should automati

astashov / liftosaur Public

submited by
Style Pass
2022-01-15 18:00:06

The main idea is to make a weight lifting tracker app, that is flexible enough to implement pretty much any weight lifting routine. It should automatically handle progressive overloads and deloads based on the logic you define. Any program should be possible to implement - Stronglifts 5x5, GZCLP, any 5/3/1s, any PPL, you name it.

To describe the logic, there's a built-in scripting language called Liftoscript, which is a very simple programming language with JavaScript-like syntax. It has some built-in variables and some custom number types (e.g. kg and lb), but other than that it's pretty simple. E.g. Stronglifts 5x5 logic could look like this if written in Liftoscript:

It's a regular Preact/TypeScript app. State manager is custom, similar to Redux + Thunks, but with using lens-shmens to avoid Redux-like boilerplate. It's a PWA, so there's a simple service worker, that caches the network calls. The setup is similar to what's described in this blog post.

I try to be efficient with the JavaScript size, and avoid heavy third-party libraries. As a result, the whole app weights ~200kb, where ~100kb are various third-party libs. The major third-party libs are:

Leave a Comment
Related Posts