Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Tdo – keyboard driven, hackable todo list (mstijak.github.io)
78 points by mstijak on Oct 19, 2016 | hide | past | web | favorite | 51 comments

Wow, really neat. I like how simple it is but for non-HN users, the onboarding could probably be a bit better. As another user mentioned, if the user visits for the first time, prefill with some tutorial content for the user to learn how to use it.

How can I be sure this is stored? There is nothing in the UI indicating that the stuff I write in the app will stay until the next reload or next time I open my browser, neither is there a Save button somewhere. You should ensure the user that the stuff is saved somehow, maybe with a "Saving" indicator or similar.

Also something I couldn't figure out (or maybe this is a feature request), how can I move items across the list? Tried dragging it to another list, but doesn't seem to work.

In general, love the simplicity, keep doing great work!

That's a really good idea. I'll add it to my list :)

It seems that you have missed the Settings and Help tabs :)

Tasks are saved in localStorage. Alternatively, you may create a GitHub Gist access token and save it there. Just follow the instructions on the Settings page. It's easy.

You can move tasks by selecting them and pressing Ctrl + Left/Right/Up/Down.

I'm not sure if drag/drop is really needed, once you get used to it.

Ah, indeed I did! But I was also hinting on that there is a reason I missed those.

By making it easier for people to discover these features, you make it a better app :)

So instead of writing in the settings that it's saved in localStorage, show that it's actually saved somehow.

Also, if someone tries to drag a task, give them a hint to use ctrl+arrows instead of just having it in the help.

Valid points. For starters, maybe just show the Help section by default for new users?

Oh, also something I kind of expected (not sure why) but it's not there. Offline mode! There is a couple of different ways of achieving that, take a look here: https://www.html5rocks.com/en/features/offline

I agree, that would be cool.

ctrl + left arrow or right arrow. Its in the "help" menu.

This matches really well on what I think when I imagine what I would like to see the application landscape to trend towards. So, good job!

Some background: I do not like terminal (curses) applications, and renaissance around them. But I understand why they they are attractive to some; they provide simple, focused, efficient, keyboard driven UIs. The reason why I'm not attracted to them is that I think that the same can be achieved more elegantly (and simply better) without the limitations of 80s character video terminals. And tdo is a demonstration of that idea; an UI that is not too far removed from something that you could imagine finding in a terminal (admittedly the inverted colorscheme might have influenced my initial impression), but still with benefits of more modern tech.

Sadly the modern tech in this case (and in many others) comes with huge amount of baggage; html5+browser stack can't really be described as lightweight, if compared to something like ncurses+rxvt stack. This is the one thing I really would like to see; a native UI toolkit aimed squarely for making applications like this with weight more comparable to ncurses than anything else. Sure, it wouldn't be replacing things like Qt or HTML5 for everything, and probably tons of people will hold on to ncurses anyways (for better or worse reasons), but a man can still dream?

This is really nice. It would be good to check for a first time visitor, ala localstorage or cookie, and show quick instructions. Overall, very slick and could see as a great electron application that gets pulled up via keyboard shortcut. Similar to Notational Velocity, but as a to do list.

What would Electron get you other than an additional 400 MB of memory consumption?

It would get us another go at beating the already very dead horse.

I'll add that to my tdo list :)

I was thinking about Electron already. I don't like how even the simplest Electron apps get really big (50 MB or so), so maybe a Chrome extension would be a better choice.

Chiming in, a browser extension seems like the perfect place for this kind of thing. I would almost definitely make use of it.

Acknowledged, I'll add #priority to the task :)

I'm already using this for all my project notes. IMHO, this is the most user-friendly TODO app I've ever encountered. And behind the covers it allows me to have heavily personalized lists with important tasks jumping at me out of the screen.

Marko, I hope you'll keep this one up, I'd really hate to have to export my lists to another app...not that I have an alternative on my mind :)

Nice work!

I built something similar a few years ago: https://hollyapp.com/

Cool! Does it support markdown? Markdown support is a very important feature as it allows you to easily format tasks, put links inside, etc.

This is pretty neat. It feels a little like a distilled version of Trello.

I think you did a great job of using the space that I have. I made my browser full screen on a 4k monitor and I was happy to see it use all the space without sacrificing space or readability. I restored my window size and everything repositioned itself perfectly. Really nice work.

Thanks. It like keeping things minimal as my lists tend to become very busy.

Would be neat to have the Help Tab as a slide-in window of sorts, so as we're getting started it's very easy to just glance at the shortcuts instead of having two tabs open

Another to-do list, keyboard-driven, more flexible and complete in some ways, lacking in others (desktop-only right now), also hackable: http://onemodel.org .

With boards, lists, and tasks you're already up to three levels of nesting. I really like http://www.workflowy.com for its simplicity and unlimited nesting ability.

This is really great, I love the simplistic design.

The thing is, it is keyboard driven, but not necessarily accessible for visually impaired users. I would like to see ARIA attributes, a more semantic interface and better color contrast.

Neat, I like organizational apps. Any https://taskwarrior.org/ users here comment on what they think of Tdo?

They're two entirely different classes of programs. In my mind, a good to-do lists has the feature set of being able to manage both 'evergreen' (i.e., informational stores) or ephemeral (i.e., time-logging / task completion) with ease.

The first thing that stuck out at me was it was browser only. I want my information close at hand. I use a tiling window-manager, so I can just keep Chrome open 24/7 and within a day or two be a key-stroke away from Tdo, so that's not too much of an issue, I suppose, but being able to `tmux attach` from any console and hit `1 (my leader key is `) to get to my main emacs instance is far more convenient. (In fact, I've xmodmap'd my Windows key to swap to that screen with a permanent instance of my terminal with my pane containing nothing but org-mode, so I'm never more than a keystroke away from reading my notes/adding a task/jotting something down, but I digress)

Second, it claims to be 'keyboard driven' but none of the GNU Readline (standard bash/emacs bindings) or vim hkjl's work. The second I have to leave my homerow, my workflow is broken. The arrow keys along with F5 through F8 on my laptop are keys which immediate "no gos"* I can't muscle-memory-hit.

Thirdly, it's not nearly as feature rich as TaskWarrior (which, despite being a time-tracking tool in name, has enough functionality re: tags and search, that I consider it to be an information store).

Not that it's trying to be as far as I can tell. To use an analogy from a bygone era, its functionality is oriented more towards what you'd put onto Post-its rather than what you'd write on your legal pad.

* Pro-tip, map R_alt + hkjl to the arrow keys and you won't ever have to use the arrow keys again.

If it's keyboard driven, probably "?" should bring up a modal with a summary of keyboard shortcuts. Many apps (gmail, trello, intercom, twitter, facebook, etc..) do this.

Or switch to the Help tab. Note taken.

I wrote something similar - a command-line based task management system with an integrated web view.


I would love to add command line interface, but in the current API-less architecture that's not possible.

I have added some of the features that were suggested in this thread. Most notably, I added a new board - Tutorial which explains key things. Thanks to everyone.

I like it. Have you considered increasing the contrast between the text and the background? Or perhaps my monitor isn't as good as yours? :)

This color scheme works well for me. If you don't like it you can try a different body color. Just go to Settings and put `body { color: white; }` in the Custom CSS field.

Yes, thanks. For what it's worth, I was (obliquely) referring to this: https://news.ycombinator.com/item?id=12743628

This is really nice!

Before I dive too deeply, how does it do with sync? If I access it from multiple computers, will they play nicely together?

Tasks can be saved to a GitHub gist. This works well across multiple computers if you're not using the app on two computers at the same time. There's no server here, GitHub API is called directly from the application.

What libraries did you use for this?

I'm glad you asked. tdo is based on the Cx front-end framework - https://github.com/codaxy/cx

Can you add monospace as a fallback for Consolas?

Sure. I missed that. It's getting late so I'll do it tomorrow. Meanwhile you can add custom css rule in settings and override the default font.

Second this. It showed up as Times and I almost dismissed it entirely.

May I suggest 'Menlo' as a backup?

>keyboard drive, hackable todo list


nice, I love it. If I used todo lists, I'd use this.

Slightly OT, but...

No idea why people are so obsessed with making lists. I've never needed lists in my life.

If something is important, I'll get to it. If not, I'll forget it and to hell with it.

A list allows you to forget things even if they're important, because you learn to trust the list to bring it back to you when you're ready for it.

It's a way to clear your mind and allow you to focus on what's important right now without being distracted by thoughts of other things which are also important but not relevant to the task at hand.

I keep a list of interesting plays, films, conferences, exhibitons etc. that I want to see. I can't go to all of them at once. At uni I'm given homeworks, I keep a list of them, I can't remember them all, they all have different deadlines, pages in books, etc. When I need to go shopping, I usually make a list, so that I don't forget anything and don't buy stuff I already have. I keep a list of things to buy or to research or whatnot later, some more important, some less, but I don't want to think about them at that moment, but later. Sometimes there are books that I wait to get published, I simply can't do anything for them ATM, don't even know when they'll be published. All this and much more is kept in lists and fit into 8-10 A6 pages of my agenda, with room for new stuff. I'm not obsessed, but without these lists, I've forgotten many things that I'd rather not. I review about 10 A6 pages 2-3 times-a-week, and check today's page in the agenda. Adds up to 'bout 30mins per week, I spend at least twenty times that in the bathroom.

For everyday life stuff, I agree. Even in school I never wrote down test dates, or what I had to work on. For projects at work, kind of impossible to remember every little tick box to check off.

I read this recently, in a (rather interesting) interview/discussion between the economist Tyler Cowen and media wunderkind Ezra Klein [0]:

"COWEN: What’s your best time management tip?

KLEIN: To-do listing. The thing that honestly decides whether or not I have a good, effective day, where I feel like I got things, or whether I just wasted a bunch of time, was whether in the morning, I wrote down what I thought I had to get done that day, and throughout the day, was rigorous about putting the little tasks that come up onto that same list and then checking them off.

I keep that list going, and I keep it updated, and I keep referring back to it, I am able to be pretty efficient. If I don’t, I get lost and overwhelmed and anxious. I don’t find the big tasks to be the hard thing there. The thing that is really hard to do is the tasks that take between 3 and 15 or 20 minutes. You keep in your head, when you probably have 30 minutes where you can knock out a couple of them. They don’t feel like a big enough deal. You don’t remember them. You didn’t write them down in a clear place.

They just sit there causing you, or at least me, endless anxiety. When I actually have them in front of me, I will stay on top of them. Actually staying on top of them is more important, certainly, than I gave it credit for a year ago. "

[0]: https://medium.com/conversations-with-tyler/ezra-klein-tyler...

I write down ideas for my framework while working on other projects. If I don't take note, it's very hard to recover later and this way my backlog is always full.

This is really well done! Feature request: would love to see a VIM mode. I think VIM semantics would be really intuitive here. Obviously more of a "power" user feature.

Great idea, I'd love this one, too. "hjkl" is a given, "x" to complete, "D" to delete. Any additional suggestions?

I was going to suggest "o" and "O" to add new task below/above selected task, but nope, that's already there! The only other vimmy thing I can think of is "/" to jump into the search box. I'm trying to think of reasonable shortcuts for switching boards, closest Vim has is "gt" & "gT" for next/previous.

Also, there doesn't seem to be any way of selecting the first task item with the keyboard. Once you've got one selected, you can move around easily with hjkl, but there's always at least one initial mouse click.

I've been putting off adopting Trello for a while, but this seems like a great opportunity to dive in. Thanks!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact