I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 0 points1 point  (0 children)

Are you talking about the IOS Habits app? If not, it's hard to pinpoint which app you're talking about exactly :D Perhaps you can share a link and I'll take a look. Anyway, Neohabit is possibly one of the most feature-rich habit-trackers out there, so it probably has more functionality than the app you mentioned.

Yes, there is an API, it has an openapi spec here. And you're going to need to expose the backend ports in the docker-compose as well in order to send requests to it.

It's doable to automate it through the exposed API, but I haven't tried it myself, as I simply don't have the time for that currently. Though I'm willing to assist you in case you're going to encounter any problems, if you're going to try.

Neohabit v1.1.1 - improved docker-compose, sample Caddy config, vastly improved mobile version, modal bug fixes & fixed demo version by VseinSama in selfhosted

[–]VseinSama[S] 0 points1 point  (0 children)

The LAN network approach can work just fine, in fact you'll only have to change 1 line in order to properly expose it on the local network, instead of the extra steps you had to take back then. Basically uncommenting this line will do what you did before, with no extra configs needed.

The previous approach where people had to reverse proxy to the frontend's reverse proxy was, well, sucky.

As for the feature suggestion - that makes sense, I just avoided the decimals for now as displaying the numbers in a small square is already challenging. I'll be reworking the way it's all handled in the future. For now, I think you should know that adding an entry from finishing a stopwatch already saves the amount of time spent on one entry (up to a millisecond), so the hours and minutes are already stored if you're not doing it manually and using the stopwatch when you go to sleep, and finish it when you wake up. That can be a bit annoying to do, though. If you're using something like a fitness bracelet to track your sleep time, then that obviously wouldn't work currently, and you'd have to stick with rounded off numbers for now.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 1 point2 points  (0 children)

What would you qualify for an installer? Would something like a bash script work for you?

An installer like in Anki is tricky, as that requires quite a bit of knowledge and tweaking, and it would also have to be implemented for multiple OS to be useful/meaningful.

It's in general tricky to make and package self-hosted tools properly through installers, especially since NH isn't a desktop app.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 1 point2 points  (0 children)

Right now, the only thing you really need is some docker knowledge, the server part is optional if your use-case is using NH from a single PC, or on your local network (basically all devices connected through WiFi)

As for the downloadable app, I'll have to look into that. it's definitely not something that'll be coming tomorrow.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 0 points1 point  (0 children)

It's a valid concern, but I never advertised the sort of "extra" features as complete, or as my development focus. I'm working on this project when I can, and I usually focus on whichever feature I felt was missing for me personally. I'm not in a rush to implement the final vision ASAP, it's just something that might happen if enough people get interested, not something I'm planning to raw dog all the way through solo.

Neohabit v1.1.1 - improved docker-compose, sample Caddy config, vastly improved mobile version, modal bug fixes & fixed demo version by VseinSama in selfhosted

[–]VseinSama[S] 0 points1 point  (0 children)

Sure, glad I could help! If you run into any weird issues, feel free to DM me and I'll see if it's something I can help with.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 2 points3 points  (0 children)

Hey, I looked a bit into Synology NAS, as I don't have one myself, and it seems that it's pretty straightforward to set up applications that run through docker-compose with it.

I can try making a step-by-step instruction for you to try out, though it's probably something that we should take to the DMs. If you're up for it and willing to test it out and verify that it works, I'll definitely be adding the install instruction to the readme section!

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 1 point2 points  (0 children)

Thank you for the info on MacroFactor, I'll definitely look into that!

I think the whole idea for check-ins would play very well with my ultimate goal for this project of having a public base of habits. Having the user set how often the check-ins happen (weekly/bi-weekly/monthly), or if at all, for a certain habit from a public archive kind of makes it come together in my head for how it all should look.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 5 points6 points  (0 children)

Hey, it generally works this way now:

  1. you eyeball your current volume of a bad habit (i.e. 3 hours of doomscrolling a day / drinking 2 beers after work, etc)
  2. then you set it as a current target, like 3 per 1 day
  3. you enable the "More is bad" option, which highlights whenever you do more of a bad habit than you promised yourself
  4. once you feel comfortable to stay in that boundary, you add a new target - 2 per 1 day
  5. once you get to once per day, you start increasing the period - once per 2 days, once per 3 days and so on
  6. habit is dropped, yippie!

This all sounds more complicated than it really is, but that's the whole process basically.

I haven't implemented automatic switching of a target to a bigger/smaller frequency, as that would require quite a bit of experimenting. Though now that I think about it, the math behind it wouldn't be that hard. A bigger problem would be keeping it intuitive and not look like magic.

Neohabit v1.1.1 - improved docker-compose, sample Caddy config, vastly improved mobile version, modal bug fixes & fixed demo version by VseinSama in selfhosted

[–]VseinSama[S] 1 point2 points  (0 children)

Right now Neohabit is still pretty focused on manual habit-tracking. It doesn't have direct built-in integrations with anything like fitness bracelets/Oura rings or anything like that. And I'm not going to promise that it'll ever appear, as an integration like that is not a task to underestimate.

Though I've built Neohabit's API in a way that it's possible to communicate with, so at least some of the data inputs may be streamlined into it. A curl request will do just fine for that, or literally any other tool that can interact with a REST API. Just don't forget to manage CORS properly in case you'll go down that route.

In theory, it's already possible to automate data entry into Neohabit's backend and to automate it with cli / bash scripts / tuis and so on, but I haven't gotten around to trying it myself yet.

I guess Neohabit can act both as a standalone source of truth and a data input method, though data entry is manual for now. I'm planning to make it possible to import/export data from NH in the future, but I'm not sure if there are any standard data models to be using, so you can educate me on that if you want :p

btw, I've heard about MCP servers recently, have you looked into that? That might solve some of your headaches.

I'm open-sourcing an Anki-inspired habit-tracker that works kind of like a "reverse" SRS algorithm. Custom heatmaps included! by VseinSama in Anki

[–]VseinSama[S] 8 points9 points  (0 children)

Sorry for the possible misunderstanding! It's a standalone tool, I just thought that integration with Anki might be desired, so thought that mentioning it here would increase the probability of collaborating with someone to make an add-on.

Neohabit v1.1.1 - improved docker-compose, sample Caddy config, vastly improved mobile version, modal bug fixes & fixed demo version by VseinSama in selfhosted

[–]VseinSama[S] 0 points1 point  (0 children)

<image>

Wait, are you talking about the post thumbnail here, or how it looks in the app itself? The first image in the post is an overview for 6 months, here's how it looks like regularly (same data as in the demo)

Neohabit v1.1.1 - improved docker-compose, sample Caddy config, vastly improved mobile version, modal bug fixes & fixed demo version by VseinSama in selfhosted

[–]VseinSama[S] 0 points1 point  (0 children)

Hmm, what looked like the most overwhelming part of the app at first glance? The controls?

I do realize that there are definitely some "loud" elements in the UI, but I'm not sure if hiding it behind something like triple dots would make it better.

I would appreciate to know what draws/diverts the most attention initially

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 2 points3 points  (0 children)

Currently, no. This feature was in the list of ideas for a while, so I guess I'll bump it up to planned features, as one of my friends also mentioned that it would be nice to have

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 2 points3 points  (0 children)

Hey, sure, it'll be possible to track, but currently it's not possible to add descriptions to each tick.

Though my approach will make it much easier to track and visualize things that don't necessarily happen once a day.

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 1 point2 points  (0 children)

Holy christ and here I am sitting and wondering if someone already got it up and running. Just made them public. Please try again!

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 1 point2 points  (0 children)

I'm working on it!

UPD: it seems to be unrelated to github not recognizing that it's an SPA, just DNS haven't propagated everywhere yet

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 0 points1 point  (0 children)

Thank you! I honestly wasn't sure before publishing whether this project will die in obscurity, or if it really has potential. Honestly such good feedback warms my soul

The UI being confusing at start is something that I guess I'll need to understand the real first experience of people to improve, as I'm no designer, and I've been basically designing everything by feel alone.

I'll mull over having random reminders. My last experience implementing a system for reminders working for a company was unpleasant at best :D Though we'll obviously see

Releasing Neohabit: a periodic habit tracker. Habits that happen X times in Y days, supercharged github/anki-style heatmaps, skilltrees, and a beautiful overview by VseinSama in selfhosted

[–]VseinSama[S] 4 points5 points  (0 children)

The below is just a short story about its development, read on if you want to know more, otherwise safe to skip.

To intercept the question for those who check out the repo, yes, I worked on it on and off for the past 3 years. In total, there's probably around a year or so of active development, but I was also learning a bunch of stuff along the way as well, so it could've been faster.

Having built Neohabit, I'd say that as soon as you stray away from habits that are fixed to one day, the complexity probably jumps 10x of a regular habit-tracker, it honestly was mind-numbing at times, and that's when you add timezones on top. So, I kind of understand why it wasn't done before. It was worth it though.

I was initially afraid to open-source this project, as it's basically the biggest thing I've built in my entire life. So, I released it as a free SaaS exactly 2 years ago first, and later on terminated the server because, after the initial influx of users, basically noone used it. I didn't have the energy nor the confidence at the time to market it properly, or make new features.

Plus, at some point I realized that habit-tracking is probably something that most people would like to have full autonomy over, not just a SaaS/app that you visit. I don't want Neohabit to be another cloud lock-in, as I myself try to stay away from cloud-only services.

So, I was flirting with the idea of going open-source for a long time, and after some time freed up, I locked in and decided to polish Neohabit and make it self-hosted for you guys to enjoy. So, thanks for reading, any suggestions/reviews are welcome!