A general purpose todo app has several requirements.
- It must be frictionless to create a new task
- It must have an uncluttered interface where I can see today’s tasks
- It must allow tags or folders or both
- It must have a good search function
- It must be flexible in how it reminds you of tasks
- It must allow prioritization of tasks
- It must have an offline mobile app
- It must be available on all of your computing platforms
There are also some softer requirements (but I can live without them)
- It should integrate well with other productivity tools (calendar, notes, etc)
- It should allow collaboration with other people
- It should support various project management workflows (kanban, GTD, bug tracking)