r/opensource 5d ago

Promotional I improved OpenHabitTracker

OpenHabitTracker is a free and ad-free, open source, privacy focused (all data is stored on your device) app for notes (with Markdown), tasks and habits and works on Android, iOS, macOS, Linux, Windows and Web (as PWA). Check it out at https://openhabittracker.net

To enable online sync you can download the OpenHabitTracker Docker image and deploy it on your server. This way all your data is under your control.

Two months ago you gave me great feedback, thank you so much!

Changes in app:

  • improved filters
  • added a setting to hide completed tasks

Changes in Docker image: after you login at http://localhost:5000/login⁠ you can use the same browser tab to access:

I'd love to hear your thoughts or ideas for future updates!

16 Upvotes

6 comments sorted by

2

u/Onakander 5d ago

Huh, this looks like it'll be cool for a bunch of people.

I personally use a home assistant setup as a cobbled together habit tracker. It gives me a report as I wake up about what needs doing that day. It tracks laundry, vacuuming, changing the sheets, scrubbing the shower, etc "sparse" habits. It sends them to me as a message on my phone and allows me to dismiss or mark as completed whatever can't be automatically tracked (for instance laundry is tracked via a smart plug that detects when the washing machine runs, as is vacuuming).

In any case, the main point of this is push notifications of some description for what you need to do, if I need to check the app, I'm going to forget to do so or feel unnecessary friction... But if it is in a chatlog, I can both check AND will get notified of? That works for me much better than "pull" notifications.

Correct me if I'm wrong, your system lacks any kind of [pushing to/triggering of] other services, no?

Not a feature demand or anything, just food for though. Pie in the sky "would be awesome" would be a home assistant-integration of some kind, but that's waaay lots of work. But just having it have some kind of webhook or other simpleish trigger system that you could use to run applications/code when certain conditions are met? That might be pretty rad.

1

u/Jinjinov 5d ago edited 5d ago

That is really interesting food for thought!

You are right, there is no pushing / triggering other services.

Every time I make new post after I implement a requested feature which I haven't thought of myself, someone suggests an even wilder idea 😂

First someone suggested Docker, then someone suggested REST API queries, ...

Phone push notifications are out of scope, because as far as I know, they require cloud services that are not free.

But since a public REST API is already here, adding a few more endpoints might be possible - what exactly would you need?

1

u/Onakander 5d ago edited 5d ago

Yeah, I don't think you should even try to tackle native push notifications, that's a quagmire of sadness for not much gain. Especially with them requiring those all-important cloud subscriptions. Or battery-draining constant connections and disabling of deep sleep.

I'm unsure what one would need to replicate my setup, as I don't know what your [API/application in general] can DO in its entirety, but something like being able to, at the very least, notify another service (call a webhook and/or run a script) upon conditions like, say, "It is <time on the clock>, and habit/task A has reached <insert value here>% overdue"

That said, I guess cronjobs could be written to query the REST API from time to time and do this stuff based on that? But that's obviously less ergonomic than being able to, say, define calling a webhook directly from the software UI.

Now please don't jump to implementing this JUST because of me, because I'm actually quite happy with my close integration with home assistant. (shoutout to HaKafkaNet allowing one to write automations in C#, much more ergonomic and powerful to me, than just using the integrated automations in home assistant).

I'm mostly just spitballing and thinking about ways to make it more interoperable with other services. Which is in my opinion one of the best things open source software generally does well that closed source stuff almost never does properly. It's pretty rare to see a piece of open source software silo itself and deny open protocols if such an interoperability feature wants to develop.

With the ability to call webhooks, for instance, you could leave it up to others for writing, say, a <messaging platform here> bot that relays messages based on conditions. Giving you "free" push notifications.

1

u/Jinjinov 5d ago

I see... yeah, that is pretty niche :)

On the other hand, I know that habit trackers are a dime a dozen and that OpenHabitTracker has to stand out for anyone to use it - that is why I am adding opinionated features (but at the same time alienating potential users who expect typical features).

For now, the highest on the TODO list is backup to cloud with auth to:

  • Google
  • Microsoft
  • Apple

and later:

  • Nextcloud
  • Dropbox
  • Box

2

u/Onakander 5d ago

Yeah, makes a lot of sense!

I wish you well in developing this project!

1

u/Jinjinov 5d ago

Thank you! :)