[HN Gopher] Vikunja - The open-source, self-hostable to-do app
       ___________________________________________________________________
        
       Vikunja - The open-source, self-hostable to-do app
        
       Author : fgrsnau
       Score  : 111 points
       Date   : 2023-01-21 18:53 UTC (4 hours ago)
        
 (HTM) web link (vikunja.io)
 (TXT) w3m dump (vikunja.io)
        
       | bioemerl wrote:
       | I'm biased.
       | 
       | I'm making a tool that's kind of like this one. Please keep that
       | in mind, because I'm about to give a whole bunch of criticism
       | here.
       | 
       | First things first, the UX and UI is really neat and there's lots
       | of really good design and thought put into how fast the app is
       | and how well it is handling a whole bunch of users. I was sitting
       | in there with everyone in hacker news creating tasks and it was
       | keeping up amazingly.
       | 
       | But my first impression using this is that it's going to need a
       | lot more work on the depth of the features rather than the
       | breath.
       | 
       | It looks sleek and it's got lots of options on a task, but when
       | you click through one of the options they are very bare bones.
       | There is a depth of interaction that is missing.
       | 
       | One example, I click on the time to task option, and it gives me
       | an option for repetition, but repetition comes in the form of day
       | month or year. What happens if I want something to repeat every
       | Tuesday, or every second month on the 5th? You just can't do it.
       | You can repeat tasks, but because it's not powerful enough it's a
       | system that's not going to be useful in a lot of cases.
       | 
       | Taking my trash out happens every Tuesday. If I were to want to
       | abandon my current system to use this app I would no longer be
       | able to do that.
       | 
       | Another thing that struck me was the percentage/progress option.
       | When I click the progress box I got a drop down list with
       | increments of 10 which i could pick from. That was way less than
       | I was expecting from a feature like that.
       | 
       | There are two criticisms here.
       | 
       | The first is that I expected a progress system to be something of
       | a system. Imagine having progress that is tied to the number of
       | check boxes I've checked off, something that's not another manual
       | thing that I have to click and keep track of.
       | 
       | But if it's going to just be a number entry, why is it only a
       | number entry for progress? This could have been part of a bigger
       | more powerful system that I can use to fit my needs.
       | 
       | I'm not thinking "oh hey look I can keep it percentage", I'm more
       | thinking "oh hey look I can't keep track of the amount of money I
       | spent this week".
       | 
       | Something as plain as a drop down with a bunch of numbers should
       | never be a dedicated feature.
       | 
       | Percentage option doesn't hurt, but when you add little features
       | like that instead of bigger systems, you're going to find that
       | you get lots of people wanting to add new little features to fit
       | their use cases. This will especially be true when the app is
       | open source and everyone has the ability to go in and add that on
       | their own.
       | 
       | Final criticism. There's a little bit of a disconnect in how you
       | add a lot of stuff to a task.
       | 
       | Take relations as an example. I click add relation, and nothing
       | happens. I sit confused for a while, until I notice that the
       | related tasks has already appeared in the main task window and
       | now I need to click the plus in order to start creating a
       | relationship.
       | 
       | All of those options in the right side bar which open items in
       | the left sidebar could be in the left side bar from the start.
       | When I click that button that starts the addition of relations to
       | a task the app should start a process where I am now creating a
       | relation, not popping up a new section. This way you have a
       | direct connection between where I clicked to add a new thing, and
       | the process for adding that new thing.
       | 
       | Everything I say here is easily fixed, so it's not at all the end
       | of the world. I'm sure the developers of this system can easily
       | fix every single issue I mentioned. Don't take this as me saying
       | the app is bad, but there are a lot of flaws here that make me
       | hesitant to throw away what I've worked on.
        
       | malermeister wrote:
       | Looks promising! Does it have mobile apps or even better, support
       | for standard protocols like CalDAV or Etesync?
        
         | kolaente wrote:
         | CalDAV works but not with all tools. Check out the docs for
         | more: https://vikunja.io/docs/caldav/
        
         | fgrsnau wrote:
         | A mobile app is work in progress[1]. I am currently using the
         | web interface which is quite usable on a mobile phone. Lists
         | work quite nicely, also on smaller screens. I was using
         | Kanboard previously and mobile usage was a bit too complicated.
         | 
         | CalDAV seems to be supported[2]. I have not tried it (yet).
         | 
         | [1]: https://github.com/go-vikunja/app
         | 
         | [2]: https://vikunja.io/docs/caldav/
        
       | [deleted]
        
       | halfdan wrote:
       | Funny. I just stumbled upon this yesterday. The only thing that I
       | wish to see improved is having the backend serve the frontend
       | from the same docker container. It's a bit of a hassle to use
       | nginx as a proxy in the docker compose setup (or in fact set all
       | of that up on my Synology NAS).
        
         | fgrsnau wrote:
         | Initially I was also interested in this. There is the
         | staticpath option in the backend config. You can point it to
         | the directory of the frontend files. Theoretically, both the
         | backend and the frontend could be served by the builtin
         | webserver. Unfortunately, for this to work most frontend URLs
         | must get rewritten/rerouted to /index.html and this does not
         | seem to be implemented. Shouldn't be too complicated though.
        
       | darkteflon wrote:
       | I've been a paying Todoist customer for many years. For some
       | reason, they steadfastly refuse to introduce blocking/blocked by
       | flags.
       | 
       | It seems so strange to me to do all the hard work of allowing
       | arbitrarily nested projects and tasks, sub-tasks, labels, complex
       | filters and collaboration, but then not do dependencies. Imo
       | dependencies is the big difference between something you can use
       | on complex projects, and a "mere" to-do list - even one with
       | nested projects, labels, filters, whatever.
       | 
       | I thought that perhaps I wanted a Gantt chart tool and spent a
       | couple of months going down that route. At least in my
       | experience, though, what I actually wanted was just some way to
       | establish a DAG - I didn't even necessarily need a way to
       | visualise it, just the ability to group and filter on it.
       | 
       | Vikunja looks interesting - open source, self-hosted and supports
       | dependencies/relations. No iOS mobile client at this time,
       | though.
        
         | TeMPOraL wrote:
         | This. To me, it seems like a weird market blind spot. Most of
         | the tools in this space can't even do a proper tree - typically
         | they limit you to 2-4 levels, like "project", "task", "subtask"
         | and "checklist". The few that don't, stick to the tree model,
         | even though work naturally structures itself into a DAG.
         | 
         | From the other end, I know MS Project has pretty much all the
         | things you need, but has questionable UX, is quite buggy (I've
         | personally managed to brick it after running auto-scheduling on
         | a project with ~20 tasks...). There probably exist tools with
         | the correct representation, perhaps even better UX - but I've
         | never heard of any. Neither did a project manager I know, in a
         | decades-old company with well established "classical
         | engineering" culture, which includes all the PMBOK-related
         | concept space.
         | 
         | And if I'm doing my semi-regular project management rant once
         | again (a subset of more general ranting that, on Mastodon, I
         | started to tag as #ItsAGraph, #NotATree), let me pile on some
         | extra wishlist items: counterfactual modelling, conditionals,
         | probabilities. That is, expressing the idea that there are
         | alternative strategies to pursue, and which one to take depends
         | on information available only partway through the project.
        
       | dmje wrote:
       | I miss the days where app installation was just "unzip, edit the
       | config file, upload to your web server and hit up the install
       | page". Now it's all Docker and gulp and build and urgh soooo
       | complicated.
        
         | layer8 wrote:
         | I miss the days when you could install most things via apt-get
         | and thus have security updates automated, documentation in a
         | standard location, and so on.
        
         | smlacy wrote:
         | Couldn't agree more! The real irony is that usually it's sold
         | as "Docker makes installing, upgrading and maintaining easier."
        
           | Kwpolska wrote:
           | Running an arbitrary thing in Docker is far easier than
           | without it. If I want to run the PHP/MySQL-based Matomo, I
           | can just grab the ready-made docker-compose.yml [0] and tell
           | my main nginx to proxy_pass onto it. I don't need to figure
           | out how to configure MySQL/MariaDB/PHP-FPM and what hacks did
           | my distro introduce to it (at least I'm not using
           | Debian/Ubuntu, so there shouldn't be that many). Similarly, I
           | can get Zulip in Docker [1] (even if it's apparently in alpha
           | state) and not mess with the Python packaging trainwreck, and
           | also setting up all of Redis, PostgreSQL, RabbitMQ and
           | memcached.
           | 
           | [0]: https://github.com/matomo-
           | org/docker/tree/master/.examples/n...
           | 
           | [1]: https://github.com/zulip/docker-zulip
        
           | daedric7 wrote:
           | I'm sorry, but it does. Docker compose at least.
        
         | tryfinally wrote:
         | I host tens of self-hosted apps for various purposes, including
         | ones similar to this one, all via docker-compose. Setting up
         | new ones is a breeze (thanks to Traefik), backing up the
         | configuration and data is trivial, upgrading to the latest
         | version takes a few minutes at most. I'm confident my workflow
         | is simpler and more convenient than yours. Granted, the initial
         | investment to learn and understand the tools is pretty large.
        
           | schemescape wrote:
           | Any chance you could outline your process? E.g. if you had to
           | start from a new VM, what all would you need to do?
           | 
           | I've always just set everything up via the command line, and
           | it's tedious/not repeatable (and there's also no isolation).
           | I'm sure there's a better way, but usually the solutions I
           | see involve gluing together a bunch of different tools--
           | possibly even more work than I'm already doing (although
           | there are benefits!).
        
         | feanaro wrote:
         | I miss the days when app installation had nothing to do with
         | web servers.
        
         | [deleted]
        
         | bioemerl wrote:
         | Docker is crazy simple, I love it.
        
           | anthropodie wrote:
           | What I don't like about Docker is it does not respect the
           | firewall rules that I setup using something like ufw.
        
           | DrewADesign wrote:
           | Docker is crazy simple _if everything works as it should._
           | Otherwise it can be crazy not-simple.
        
         | fgrsnau wrote:
         | In this specific case it is not very complicated and actually
         | pretty close to unzip, edit config and run. I have deployed it
         | on a Raspberry running FreeBSD, so Docker is not an option.
         | 
         | The backend server is written in Go and after building it only
         | a single binary has to be deployed. A second repository
         | contains the frontend (HTML, JS) which you copy to a path that
         | you make available via your webserver. That's basically it.
        
         | flo123456 wrote:
         | If you run NixOS you get a similar experience because it's
         | often just services.foo.enable = true; edit a couple options to
         | your needs and you're good to go. :-)
        
         | aaviator42 wrote:
         | Some of us still write code like that :P
         | 
         | https://github.com/aaviator42/izi
        
       | dkarter wrote:
       | I love vikunja. I set it up on my raspberry pi and been using it
       | daily
        
         | princevegeta89 wrote:
         | Is it only for todos or can we take regular notes on it as
         | well?
        
       | layer8 wrote:
       | The good thing is it has an API so you can write your own client
       | for it.
        
       | margarina72 wrote:
       | This looks brilliant, seriously. All oss trello/todoist
       | alternatives are either hard to use, or missing features, this
       | looks like it has it all. Even a backend in go. On my todo list
       | of things to try.
        
       ___________________________________________________________________
       (page generated 2023-01-21 23:00 UTC)