Hi there! I’ve been working on a new open-source, web-based version of TagTime, called TagTime Web (my demo instance, but you can and should run your own instance) (source code). It’s basically just TagTime, but online. It supports the Web Notifications API, so you can get a push notification when a ping occurs (Web Notifications aren’t supported by iOS Safari yet, though). You can also have it play a sound when it is ping time. On devices that support it the device will vibrate when it is ping time (untested, since my phone doesn’t support it and I can’t feel vibration on emulators (if your phone supports it: is the vibration too long?)).
You can import or export from a TagTime log file, and export (but not easily import) the internal SQLite database used to represent your pings.
Some other neat features include
- Fast loading times (it doesn’t need to sync your entire ping history to the browser)
- Tag autocomplete
- Custom interval/seed
- Each tag gets a unique colour based on the hash of it’s name
- Tags are converted to lowercase
- Dark mode and light mode
- Edit pings without needing to load your entire ping history in the Pings tab (you can view pings in a time range, and thanks to server-side pagination you don’t need to download everything at once) (currently the Pings tab might have a few size issues on mobile, I’m working on improving tag input on smaller screens)
- It works on most modern browsers on both desktop and mobile
- It works offline (although if you answer pings differently on different devices one answer will overwrite the other)
- You can add it to the homescreen and use it like an app (it’s a PWA)
It uses a new ping algorithm that determines the seeded FNV-1A hash of the current Unix time in seconds as a 0-1 fraction, and pings on a second if that second’s fraction is less than reciprocal of the interval in seconds. (source code for this is in the taglogic
directory)
The frontend and backend logic is written in JavaScript and TypeScript, the frontend UI is written in Svelte, the ping algorithm is written in Rust and compiled to WASM. The source code is on Github. (be warned: the code is a bit messy in some places for now).
There are currently a few important issues:
- It doesn’t support older browsers. (If this causes problems tell me what browser version you are trying with and I might be able to add support for it.)
- It silently fails if you use more than 40 MiB (if you host it yourself you can change the limit in the
config.json
file)
I intend to add more features to TagTime Web over time, including adding some graphs and more features.
Thanks for reading, let me know what you think of this!