I have tried different approaches over the years. The best seems to be to have a todo.txt file and use my favorite text editor. It is very flexible, I indent to show subtasks, I can make notes anywhere. Use - as a bullet for uncompleted tasks and + for completed tasks.