
Show HN: Tdo – keyboard driven, hackable todo list - mstijak
https://mstijak.github.io/tdo/
======
diggan
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!

~~~
mstijak
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.

~~~
diggan
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.

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

------
zokier
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?

------
rememberlenny
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.

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

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

------
triskweline
Nice work!

I built something similar a few years ago:
[https://hollyapp.com/](https://hollyapp.com/)

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

------
tymarats
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 :)

------
criddell
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.

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

------
anovas
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

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

------
lcall
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](http://onemodel.org) .

------
zichy
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.

------
anonymuse
Neat, I like organizational apps. Any
[https://taskwarrior.org/](https://taskwarrior.org/) users here comment on
what they think of Tdo?

~~~
iheartmemcache
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.

------
warp
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.

~~~
mstijak
Or switch to the Help tab. Note taken.

------
rhickey
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.

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

~~~
nxrabl
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!

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

[http://todolist.site](http://todolist.site)

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

------
mstijak
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.

------
peller
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? :)

~~~
mstijak
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.

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

------
CJefferson
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?

~~~
mstijak
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.

------
Lord_Zero
What libraries did you use for this?

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

------
jhasse
Can you add monospace as a fallback for Consolas?

~~~
mstijak
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.

------
davexunit
>keyboard drive, hackable todo list

org-mode?

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

------
iamleppert
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.

~~~
warp
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.

