Skip to content

Latest commit

 

History

History
143 lines (113 loc) · 4.38 KB

README.md

File metadata and controls

143 lines (113 loc) · 4.38 KB

Web5 Tabata Timer

No ads. Open source. Personal use. No tracking. Free. No paywall. Own and share your workout data with a web5 based tabata timer.

Tabata timers are used for HIT excrcises. They give you short increments of exercies and rest. I use it quite a bit, but the one I use has a paywall after 2 routines and has a ton of ads. I don't want any of that.

This is a web5 based tabata timer.

What does web5 mean? Well, you'll own your data. Entirely. This means that you don't need to worry about us looking at it ever. This was mostly a fun project for myself, but I'll try to release it out the play store in the near future.

Status

In Progress. Early Version Works

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Screenshots

Encrypt your data with your own DWN

Encrypt your data

Create a Routine

Create a Routine

Choose your routine

Choose your routine

Play Screen. See your cycles.

Play Screen

Toolbar to see your workout on the home page

Toolbar

See your work history

Work History

Demo

See demo in Web5 Tabata Timer Demo v0.0.2

Work in Progress

  • Features
  • Play View
  • Workout Selection View
  • Configure Routine View
  • Sound
  • PWA
  • Run in background
  • Header for current workout
  • Edit Routines
  • Delete Routines
  • Settings
  • Save Sessions
  • Done Screen
  • Vibrate on 3 seconds
  • Activity Screen
    • Delete Session
    • Edit Session
    • Search
    • Overview / Heatmap
  • Launch on Google Play store <- Internal Testing
  • Service Workers
    • Wake Lock
    • Background Workout
    • Notifications
  • Lock Screen Preview
  • Sync
  • Share sessions
  • Add friends
  • Better password management
  • Bug Fixes
  • Fix Build
  • Fix Pause/Play
  • Fix Inputs For Form
  • Fix component size for steps on Play View
  • Maskable Logo
  • Multiple sessions for a single workout
  • Timer stops on sleep
  • Code
  • Change state mangaement to redux
  • First Major Refactor.
  • Too many ts-ignores. Cleanup
  • Remove old files
  • Second Major Refactor
  • Integrations
  • Google Fit
  • Strava

Disclosures

This was also a project for me to get to learn more about how front end works. The way react manages state, redux, etc, required me to come up the learning curve.

I'm sure that those more comfortable with front end might gouge out their eyes at some of the patterns. I will try to fix them.

Limitations

If you check out existing solutions, some of them have some toolbar that sits on the lockscreen. Unfortunately, due to the limits of a pwa, that's not possible for this app. We might be using the MediaSession API or I can toss notifications/push events, but that's where it falls short. I could make this react-native, but maybe another time.

Alternatives

  • Tabata Timer: Interval Timer -- The main app on the app store. 5M+ downloads. This is hidden behind a paywall, has ads, is not open source. We can do better. It's farther along, and has been worked on longer, but I hope that in time this app is going to clearly be better than that app.