10s10 seconds
5m5 minute
1h1 hour
3d3 * 8 hours
2w2 * 7 * 6 hours
1y1 * 240 * 5 hours
waiting until:
2020-01-02 12:00:00
 2nd Jan. 2020, noon
2020-01-022nd Jan., 4:00 AM
13:00next 1 PM (today or tomorrow)
next tuesday... at 4:00 AM
wednext wednesday, 4:00 AM
10hten hours from now
01-02 12:00:00
 every 2nd Jan., noon
01-02every 2nd Jan., 4:00 AM
14th 19:00every 14th, 7:00 PM
1st & 15thtwice monthly, on the 1st + 15th
13:00daily at 1 PM
each tuesday... at 4:00 AM
workdayeach monday-friday, 4:00 AM
12htwelve hours after being done
Show account ID: a
Main password: p
This account/password is new on this device. Type the new password again to switch accounts.
The two entered passwords do not match!

Repeat password: q
Default wait interval: w
Currency unit: u
Button style on device: b
Don't list completed tasks: h
Pomodoro interval: i
Ring bell on notifications: n
Log time spent into tasks: l
A todo list is too long. quuxTodo shows you the most important task only, so you can focus on what is relevant. Works the same on desktop + mobile with an efficient UI on both. Free to use, but respects your privacy.

Javascript code failed to execute.

quuxTodo is implemented in modern JavaScript. If you see this text and believe your JS engine is standards conforming, please let us know at quuxtodo@quuxlogic.com and include your browser version and the text below or browser console errors.

Welcome to quuxTodo

quuxTodo will help you handle hundreds of open tasks with ease. It will show you only the most urgent task at any time, keeping all others out of your mind. This keeps your stress level low and preserves attention for what actually matters.

While this might seem a bit extreme at times, this ensures the time you spend managing your tasks will not increase if your backlog grows. Rather each task is ideally seen only twice: Once while you create it and once during execution.

quuxTodo is under active development, if you miss anything or just want to leave general feedback, please click the feedback link at the bottom.

Account security

Please check the URL bar at the top of your browser. Some random digits and letters were added after a # sign. That's your account secret. Anyone you share that URL with can access the same account, so maybe don't.

Unless you share it, only your personal device knows your secret and can read your data. Your browser has cached your secret, but to be 100% safe back it up somewhere (e.g. bookmark this page).

quuxTodo will cache your tasks in the browser local storage to enable offline access and faster startup.

Enter a task title above

This should be something which prompts you to action, and concisely tells you what the task is about.

You can put #tags into the title to categorize or group your tasks.

Try "Explore quuxTodo" for now.

How much is this task worth to you?

It might seem hard at first to estimate the value for tasks with immaterial value.

If in doubt, ask yourself how much you would pay a good fairy to complete that task for you instantly (with the same diligence you would apply).

For now, let's assume you'd be willing to pay $2 to instantly understand all the quuxTodo things you would have learned by exploring it.

Enter "2".

How long will it take?

Exploring quuxTodo might take around 10 minutes, just put "10m" as the estimate.

Task priorities

quuxTodo prioritizes tasks by the current rate of utility to you.

Your exploration task is worth $2, and takes 10 minutes. The hourly rate comes out as $12 per hour. If you had another task for $20 which takes 2 hours, you would expect $10 per hour and it would get lower priority.

Ok, create the task

At the bottom of the screen, you find all available actions.

Either click the "ok" button or press the alt-key and "o" on your keyboard.

Go on exploring

You have created your first task. This will be the default screen in the future, showing you the current task and various actions available on it as well as other tasks. Please look around and try the various actions.

The "more" button on the bottom will show less common actions, including access to a FAQ-style help and a QR-code to share this account across devices.

Some suggestions for your first tasks:

Scan to share account

Your data will be erased and be replaced by the newly imported data (even on failure). If you haven't exported your data yet, it might be a good idea to do it now.

Disable automatic scheduling for: d
Always schedule: a

Bug reports, feedback, questions: Click here

Classically, todo systems require you to priorize your tasks regularly. This is suboptimal: If you review your task priorities in regular intervals, you'll spent O(n^2) shuffling your work instead of doing it. If your task durations are short compared to your remaining life expectancy, you should always work on the task with the largest utility per time. To remove incentives to game the system or waste time manually scheduling tasks, we artificially split task priority input into estimated duration and estimated utility (measured in $ you'd be willing to spent to have your task completed instantly). As progress on a task increases, the remaining time to completion shrinks, thereby increasing the effective utility per second (this assumes all utility comes from task completion, which is a slight simplification).

But what about deadlines?

A typical use-case will be external parties "requiring" you to complete a task before a specific date. If you don't do it, there'll be damages (or lost opportunity) of a certain amount. If it's an actual deadline, your task will have zero utility after the deadline has passed (you can update the task when it resurfaces). Please make sure to enter at least the expected damages (this will usually be quite high due to reputation loss) into the utility field. If you can really spent your time before the deadline doing more important things, your total "profit" will be higher if you just drop the deadlined task.

Planned feature: It's usually good to schedule a task a bit, but not too much, before required completion in case it turns out not to be necessary at all. We'll probably be adding an explicit deadline support to that end.

How to model employment / time-based remuneration?

In case you truly have a task with a known utility per time, e.g. because your employer pays you by the hour, you can switch the task to "fixed rate" and enter the utility per time directly. The task will have that constant utility per time regardless of how much time is spent on the task.

How to sync my phone?

You can easily convert your account URL to QR-code and scan it on your phone.

What about privacy?

We encrypt (128bit AES) all data before it gets stored on the servers using a key derived from the private URL part after the # sign (and your password if you set any). Unless you share your URL with other people, no one (not even we) can read your tasks. This also implies we cannot "reset your password" or "restore your account"; if you are worried, please create a bookmark to your account. If you are worried about people stealing your browser history (or using the same browser as you), you can also set an additional password. Remember it well, we don't know it and cannot reset it.

We also store all your data into your browser's local storage (encrypted if you set a password) to ensure you can always access and edit your tasks, even if offline.

What does the start/stop do?

It starts a Pomodoro timer and allows to track the time actually spent on a task. It will also automatically update the task's progress while time passes. If enabled in the settings, it will also log the time intervals spent on the task into its description.

Planned feature: The task editor should give you an indication of total time actually tracked on a task, what progress for the given duration this implies and vice versa. Also we will give you some reporting on how much you underestimate your task timings. Also, there will be ways to collect logged work intervals into statistics and export them.

Why are some letters highlighted?

So you don't have to click so much. Just press the letter to activate the respective button or input field. If you are currently entering text, use the Alt-key (Command-key on Mac) to trigger hotkeys regardless (this also works when you don't enter text, actually).

How can I share tasks within a group?

Without a password, the URL is sufficient to access an account. We support multiple devices accessing the same account anyway, just share. Please don't try to use multiple accounts in different tabs for now.

Planned feature: When you are using multiple tabs, we should ask you which account you'd like to have synced to your browser's local storage. Then you could use them in parallel.

How can I have larger buttons on mobile?

The button style can be configured per-device. Icon (instead of text) buttons are more square and might be easier to use on mobile.

How can I separate work and private tasks?

Add some tag (e.g. #work, #fun) to your tasks. When you are at work, search (in the task list or via /-key) for #work and schedule the result. This will prefer the work tasks above all others for the next few hours. You can schedule the full task list again to clear this filter. You can also add your work tags into the list of tags to not schedule automatically, then they'll not bother your during your private time, but only be shown when explicitly scheduled.

How to handle recurring tasks?

Tasks can be configured to repeat in the task edit screen. If such a task is marked done, it is instead reset to zero completion and its wait time configured according to the repeat rule. If the task contains a checklist, all completed items are also reset.

How to handle subtasks?

If the task description contains lines looking like a checklist, those lines will be rendered as checkable items. This is particularly good for trivial substeps in recurring tasks.

If you have a more complex set of tasks which depend on each other, you can add a precondition to the current task via "more", "new precondition". You can set existing tasks as preconditions via the task edit screen. Or you can convert a checklist en-masse to preconditions if you put a time estimate after each item. Utility will flow automatically from a dependent task to its preconditions.

How to use this from the shell?

Please download the slightly experimental (tested on Linux) nodejs-based command-line client.

Details of timestamp specifications

Various inputs (e.g. task waiting, task repetitions, pomodoro intervals) accept a timestamp description. A description can either be relative (with the same format as durations), specifically <number><unit> where valid units are s, m, h, d, w, y for seconds, minutes, hours, days, weeks and years respectively. Or it can specify the next timestamp matching a given pattern containing either a date, a time, or both. A date can be <year>-<month>-<day>, <month>-<day>, <day-in-month>th (e.g. 25th), or mon, tue, wed, thu, fri, sat, sun, work for day of week matching (or workday which matches monday to friday). A time can be <hour>:<minute> or <hour>:<minute>:<second> and defaults to 4 AM if none is given.

Multiple descriptions can be combined with & and the earliest specified time will be used. Some examples: mon & wed & fri (repeat on mondays, wednesdays and fridays); work 09:30 & work 18:00 & sat 10:00 (default wait will delay a task until 09:30 or 18:00 on the next workday, or to saturday 10:00 if it's already friday evening); 90m & 17:30 (pomodoro runs for 90 minutes, or until 17:30 if that's earlier).

Currently, no preconditions are selected. Filter the list of all tasks below and then add the preconditions here.

Anything goes, just write above and press ok below.

Your feedback won't be encrypted and will be associated with your account, so please only enter personal information if you want to tell us who you are.

Alternatively, contact us at quuxtodo@quuxlogic.com