It depends how complex you want to get. First, you have tasks and there a few different types, time-bound (do by friday) and ongoing (do every friday), then your tasks have to prioritized, then they have tobe linked to related tasks, often you need to manage dependencies, which can basically be a directed acyclical graph (or worse, a directed cyclical graph). Of course you often also want to be able to get various retrospective views on what tasks have or have not been completed.
A sufficiently complex to do list is more like jira than like a text file.
A sufficiently complex to do list is more like jira than like a text file.