8 ms·
Show HN: Intention – DAG Todo App
- DaveWM 7y agoHey HN! I've just launched my latest side-project, Intention. Intention's an app to help you achieve your goals. The idea is that you create a graph of goals/tasks (intentions), with your high-level goals at the top and actionable tasks at the bottom. That allows you to create a collection of actionable tasks you can work on, and to visualise how they relate to your high-level goals. Any feedback would be much appreciated!
- jmiskovic 7y agoCongratulations on launch. I was initially interested in idea. I installed the app to try it out, but gave up on registration. I would use it offline and don't like the need for account. You might reconsider it as unnecessary barrier. I also avoid apps with ads. Also, why call it DAG when it is a tree? It has a root and cannot have more than one path between nodes.
- DaveWM 7y agoHey, sorry the sign-up put you off. I am planning to make the app open source at some point, so you'll be able to run it yourself without any user authentication. While the mobile app does have ads, the web app (https://i.ntention.app https://i.ntention.app) is ad-free and has all the same functionality. Each node can actually have multiple parents, so as I understand it they do form a DAG rather than a tree.
- thanatropism 7y agoA tree is defined constructively, and here some definitions have further constraints (N children, often 2, per parent). A DAG is a restriction on general graphs.
- Mattwmaster58 7y agoNot gonna lie, having an Android screenshot inside of an iPhone on the landing a page really threw me off.
- ToJans 7y agoI would suggest having a sensible DAG example in your flows on your homepage. Right now, you are not showing off your USP.
- DaveWM 7y agoThat's a good idea, I'll try to think of a nice example. I went with a tree, rather than a DAG, because I wanted to make the examples as simple as possible so as to not scare people off.
- ta999999171 7y agoWhat's a DAG? Also, do a "simple" example, and a "intricate" example, to show the range of possibilities. Let the user put their imagination in the middle. Also-also, publish on F-Droid!
- capableweb 7y ago> What's a DAG? Directed acyclic graph - https://en.wikipedia.org/wiki/Directed_acyclic_graph https://en.wikipedia.org/wiki/Directed_acyclic_graph
- h3ctic 7y agoLooks really cool, congrats! What's your stack for the App + Webapp?
- DaveWM 7y agoThe web app uses Elm for the frontend, and Clojure + Datomic for the backend. The mobile app is basically just a webview that points at the web app.
- toyg 7y agoInteresting. Some feedback (i only tried the webapp, from ios): - i’d find more intuitive to have “the big prize” at the bottom, so i can work my way down by priority. Maybe an option? - i should be able to delete the root node, which would scrap the entire hierarchy. Give us a big warning but have the feature. - i should be able to edit nodes from the graph - even just by clicking an icon that sends me to the list-item view - this approach is good for one-off tasks but doesn’t seem to fit recurring tasks. For example, if i want to lose weight, i have to meal-plan once every week. Either i keep adding the task manually (bleh) or i cannot deal with it here. - maybe have a bit of song & dance when you tick off the root node.
- DaveWM 7y agoThanks very much for the feedback. To respond: - Is this in the list view or the graph view? I did originally have the list order reversed (i.e. root node at the bottom), but I found it very confusing. I could potentially add a setting to control the order. - I've tried to avoid deleting nodes where possible. If you delete a parent node, its children will be automatically re-arranged rather than deleted. Could you re-name the root node instead of deleting it? - Agreed, the graph view is very basic at the moment. I'm looking to make it much more powerful in future. - I've intentionally ignored recurring tasks for now, because I want to get them right when I do implement them. I'm aware it'd be a nice feature, so I am looking to add it asap. - Good idea
- toyg 7y ago1 - graph view. Maybe have something to flip the graph only. 2 - yeah, I grasped that you can just rename it, but it's a bit annoying because I might also have to manually delete a bunch of nodes below.
- timwis 7y agoIt’s always amazes me how few of the task management tools out there have the concept of task dependencies (the core feature of this app). I use OmniFocus but even there I had to setup a custom view. Good luck with the app!
- DaveWM 7y agoSame here, when I doing the initial research for Intention I found that a lot of people had had the same idea, but nobody had implemented it.
- dksidana 7y agoTo me, task management can be represented as tree and thats what most popular tools have it as well
- andrey_utkin 7y agoMost of the time, but not always. It is somewhat typical for certain activities to "feed into" multiple high-level goals or needs. Trees can't express that, so you get into activity categorization problem. Trivial example: are you cycling your way to work because it contributes to your health, is fun or because it enables you to do your job duties? Obviously it's all of that. None of that matters until you try to introduce some "time budget" for different spheres of your life, and with the tree concept you realize that the results don't make much sense.
- nh2 7y agoA friend of mine built SMOS, an open-source terminal UI task manager similar to TaskWarrior, fully based on a tree editor (but IIRC not a DAG -- no merging): https://smos.cs-syd.eu/features.html https://smos.cs-syd.eu/features.html In general I think that tree/DAG based task managers will become a lot more popular as more people need to organise more tasks.
- pandatigox 7y agoThis sounds interesting. What kind of custom perspective did you create?
- AbuAssar 7y agoDo you plan for an ios release anytime soon?
- DaveWM 7y agoI'm not sorry. The Android app is basically just a webview, and Apple's app store policies forbid webview apps unfortunately. I just don't have the expertise or time to write an IOS app, and even if I did it wouldn't be worth it for me financially. The good news is that the web app, https://i.ntention.app https://i.ntention.app, has all the same features of the Android app. If Apple ever properly support PWAs, it'll behave very similarly to an app.
- tudorizer 7y agojust curious, why even release it as an app if the web version is good enough?
- DaveWM 7y agoThe main reason is they're easier to market. I've tried to advertise web apps before, and had very little success. People seem to much prefer mobile apps over web apps, even if they have exactly the same functionality. At a guess, I'd say it's because they're more familiar, and there's a sense of security in downloading them from the app store.
- splitbrain 7y agoSigning in with Google fails in the app: 403. That’s an error. Error: disallowed_useragent Google can’t sign you in safely inside this app. You can use Google sign-in by visiting this app’s website in a browser like Safari or Chrome.
- tim-- 7y agoWhat's your useragent?
- splitbrain 7y agoWhatever the app uses to do the login flow. Probably a standard webview?
- DaveWM 7y agoI've looked into it, it appears to be because Google is blocking oauth requests from webview apps. Sorry about that, I'd recommend either using the web app (https://i.ntention.app https://i.ntention.app) or using a different provider to sign in.
- mywacaday 7y agoWhen I use the web app I get the warning: Intention is requesting access to your dwmartin41 account. Doesn't inspire confidence in the amount of testing done.
- stewbrew 7y agoA DAG isn't a tree. It's acyclical wrt the direction of the edges. Since this basically is an outliner, the name (or title of the submission) is misleading.
- zeckalpha 7y agoI’m not seeing how DAGs are distinct from forests (sets of trees) or outlines. They seem topologically equivalent.
- wolfgang42 7y agoDAGs can have things that would form cycles if they weren't directed, like diamond shapes.
- seanhunter 7y agoWhich this can also have. One concrete action could contribute to two intermediate goals which in turn could both contribute to one parent high-level goal (giving a diamond).
- DaveWM 7y agoThat's exactly right. Each intention can have multiple parents, which I believe makes the topology a DAG. The only constraints are that you must have exactly 1 root node, each node must have at least 1 parent (apart from the root node), and that you can't have cycles.
- stewbrew 7y agoOk, I missed that.
- tejtm 7y agodags are trees that can share non-root nodes
- 7y ago
- godwhoa 7y agoI'm just looping in the auth flow when using Github to sign in.
- DaveWM 7y agoI'm using Auth0 for the user login, and it relies on 3rd party cookies. Safari and Brave block these by default, if you enable them it should let you log in.
- cormacrelf 7y agoWhat about when my tasks are cyclic? 1. can’t get up because haven’t eaten and too hungry 2. can’t cook because can’t get up 3. can’t eat because can’t cook Didn’t think of that did ya buddy! Day 2 of quarantine is going very well.
- data_ders 7y agoDoes the DAG use k8 as an orchestrator? /s
- JoshTriplett 7y agoOdd prompt when I try to sign up for an account in the web (i.ntention.app): after filling in an email and password, I get a prompt "Intention is requesting access to your dwmartin41 account."
- DaveWM 7y agoI'm using Auth0 for the user login, and my domain on there is "dwmartin41". That's a very odd message, but it's basically saying you're registering an account on my domain. I'll see if there's a way to override the message with something more sensible.
- JoshTriplett 7y agoI understand where the message comes from, but it's an unusual message to get when registering what seems like a "first-party" account. If it's your domain and your app, they're in the same trust domain, so you could reasonably just trust it automatically. (Google doesn't prompt when you log into YouTube using your Google account, for instance.)
- DaveWM 7y agoI've disabled the message now, it shouldn't show up any more
- bdg 7y agoReally cool, it would be nice if I could add costs for each edge on the graph too.
- DaveWM 7y agoGood idea, I'd considered adding costs to the nodes but not to the edges. Do you have a particular use case in mind? I'll have a think about it and maybe add it to the roadmap, thanks!
- juliend2 7y agoIf the parent node shows the SUM of all its child's cost, you can better visualize the cost. And for the edge nodes, let's say I use the "cost" field to determine the cognitive cost for any given task, I can more easily see which sub-task (edge) to prioritize if I want to get into "the zone" more quickly in an "intention"/project (parent node).
- teekert 7y agoI love DAGs. I first came into contact with them through Snakemake [0]. Pretty soon after starting to use it (as a Next Generation Sequencing data analysis framework), I noticed that if a task that is not in some way linked to an end goal, that task does not get started/executed. It sort of blew my mind and I felt strongly that my projects, perhaps even my life should be run and build exactly like that. [0] https://github.com/snakemake/snakemake https://github.com/snakemake/snakemake
- kelseydh 7y agoWhen I tried to log in to use this app on Safari I got stuck in a endless log in loop.
- DaveWM 7y agoSorry about that, I am aware of the issue and I'll try to implement a workaround asap. It's because Safari doesn't allow 3rd party cookies, which Auth0 relies on, by default. You can fix it by allowing 3rd party cookies.
- subaru_shoe 7y agohow about no. why would you design it that way?
- DaveWM 7y agoIt's not my design, it's Auth0's. I'm the only dev working on Intention, so I have a limited amount of time to spend on things like user authentication, which is why I rely on auth0 to handle it for me.
- k_ 7y agoSurely you can allow specific third party cookies for a specific domain, right? (I don't use safari so I don't know for sure)
- thanatropism 7y agoAmusingly enough the login flow for Safari isn't acyclic it seems.
- h0h0h0h0111 7y agoLove this! Had a similar idea a while ago but never executed on it - DAGs make so much sense for goals/todos, but the existing todo apps make it sorta fiddly to organise things in such a way. Will be sure to check this out
- lhdj 7y agoLooks really good! Here is an open-source version I made called TaskGraph [1], a fork from uber/react-digraph[2]. I made it for my startup [3] because I didn't really like Jira in the context of 3 people. We have been using it for a couple of months and it works really well. Apologies in advance for the lack of documentation. If you have any questions by all means. TaskGraph has: - Task status (todo/in-progress/done) - Task completion estimation (admittedly it assumes you can work perfectly in parallel which is a bit of a stretch.) [1] https://github.com/openquery-io/taskgraph/ https://github.com/openquery-io/taskgraph/ [2] https://github.com/uber/react-digraph https://github.com/uber/react-digraph [3] https://www.openquery.io/ https://www.openquery.io/
- DaveWM 7y agoNice! I got TaskGraph running locally, but couldn't figure out how to create a node. Seems like it's built on the same basic idea as Intention though - tasks structured into a graph. I'd be very interested to hear how you get on with TaskGraph.
- lhdj 7y agoShift-Click to create a node. Then click on the node to modify it's attributes. Shift click and drag to other nodes to create dependencies. The dependencies should auto-snap into place. The algorithm used for this works most of the time. Our current taskgraph at openquery has ~50 nodes and it works quite well. I don't have cycle-checking so be careful or your browser tab will blow up.
- DaveWM 7y agoGot it, the app works well. I did consider using `react-digraph` for Intention, but the UX seems very focused on desktop (lots of clicking and dragging) and I wanted something more mobile focused.
- Phil-bitplex 7y agoI made something similar - GamePlan [1] (not open source though It's a visual task/planning tool. Does estimates, task grouping, resources, a bunch of different constraints, critical paths, and lots of other stuff. I'm in the process of adding costing to it, and its a lot of fun to use. I use it for all my pre-planning of projects, just to get a feel of feasibility [1] - https://www.gameplan.global/ https://www.gameplan.global/
- andrey_utkin 7y agoThe concept of viewing activities as DAG is going to be huge and ubiquitous, I think. This applies to any activities of humans, organizations and computer systems, and hybrids of those three. One of the most fascinating epiphanies I've had recently is exactly that the purposeful behavior of these three kinds of actors can be decomposed as DAG with a relationship meaning "contributes to fulfillment of a need". So congrats on the launch to the author, and expect a lot of competition, including me :) I am working on a FOSS tool storing TODO actions and activities in an SQL table, and enabling DAG relations between entries. https://github.com/andrey-utkin/taskdb/wiki https://github.com/andrey-utkin/taskdb/wiki I have actually built my DAG (or, as I like to call it, a semilattice) going all the way up to fundamental categories of needs as described by Maslow. Sorry that I have no live demo container or juicy screenshots yet, that will be in place in a week or two, please email me at (my HN username) at fastmail.com if you want an update when I publish the containerized demo system.
- DaveWM 7y agoHaha looking forward to the competition ;). TaskDB sounds good, I'll keep an eye on it. Your approach to keeping the entire history of the graph is a good one, I'm using Datomic in Intention mainly for this reason. I do hope DAGs become more commonplace, I think a lot of areas (e.g. project management) could benefit from using them.
- andrey_utkin 7y agoTrue, I don't see why Intention and taskdb couldn't grow into enterprise, or groupware project management systems. Sometimes I'm even thinking about peer to peer exchange protocols for this kind of data (e.g. if your spouse or collaborator uses it too).
- skrebbel 7y agowhy acyclic though? like, if i want to "feel better" and "lose weight", then "run a marathon" might contribute to both of those.
- 7y ago
- foolinaround 7y agothis is really nice... Can a few pre-made templates be shared? Folks can then then 'fork' it out github-style. Eg, financial independence - it has a couple of sub-topics - like understand current state, identify goals, etc... and then finally an actionable set of tasks.
- DaveWM 7y agoThat's a really good idea, I'll add it to the roadmap. If you have any suggestions for specific templates, please send them over to me (my email's on my profile).
- layoutIfNeeded 7y ago"Get it on Google Play" meanwhile the screenshot shows an iPhone 6
- thanatropism 7y agoI've never used Todo graphs, but I've spent hours using Yed, a free (but not Free if you're into that kind of thing) point-and-click graph editor with various layout algorithms. I've found many times that the visual outcome of laying out my concept graphs in say, hierarchical or force-directed layouts. Mainly to show me that I was missing certain links. This is not formal concept analysis (which uses formal lattices), mind you, it's just using the visual realization of graphs as Gestalt. I actually should be doing that a lot more... --- That said, we should always be wary of the "A" in "DAG". That's a deep ontological assumption that restricts the universe we are able to think about. Sometimes, like in the Judea Pearl approach, this enables maths to get done. Sometimes we should just cope with cycles or resolve them at the appropriate time when enough information and wisdom is available.
- rozap 7y agoThe ads block buttons in the UI, on a pixel 3a. Is there a paid version without ads?
- DaveWM 7y agoSorry about that, it should be fixed now. There isn't a paid version at the moment, but there's a web app at https://i.ntention.app https://i.ntention.app . If you're on android, it should ask you if you want to add it to your home screen - if you do, it behaves very like an app.
- dalore 7y agoI use https://zenkit.com/ https://zenkit.com/ to create a mind map and then turn it into tasks.