18
30 Comments

Underhead: I made an app that turns your to-do list into a life coach

To-do lists suck. This quote captures why. From The Distracted Mind by neuroscientist Adam Gazzalley and psychologist Larry D. Rosen:

The conflict is between our goal-setting abilities, which are so highly evolved, driving us to interact in high-interference environments to accomplish our goals, and our goal-enactment abilities, which have not evolved much at all from our primitive ancestors, representing fundamental limitations in our ability to process information. It is this conflict that results in… a tension between what we want to do and what we can do.

To-do lists are all about planning. But what I ultimately care about is doing. Stuffing a bunch of tasks into a long and complicated list doesn't make me want to do them. It makes me want to open a new tab and watch YouTube videos.

I'm supposed to keep these posts short, but I realized I couldn't make this one work without sharing a true story:

More than a decade ago I discovered an app that somewhat solved the to-do list problem. It was called NowDoThis. Here's how it worked:

  1. You wrote your big hairy to-do list in a text box and clicked "Ready." Then…
  2. Your to-dos got displayed one task at a time on distraction-free pages as you checked them off. This allowed you to focus on the current task and removed the cognitive overhead of worrying about the whole list.
  3. If you included units of time in the text of your to-dos (e.g. "Spend 30 minutes reading The Distracted Mind") a countdown timer would get added to the pages for those to-dos. When the timer expired, NowDoThis would make a pleasant "ding" sound.

I loved NowDoThis. I conquered a lot of projects with it. Then one day, about 10 years ago, the site just went offline. I panicked for about ten minutes until I remembered I could code. A few days later, I was using my own functionally complete version of the app. I called it Underhead because, just like working memory which lies under your head, this app reduced cognitive overhead.

In the months that followed I tweaked and refined the app, making it incrementally better. But one of those refinements became a small revolution which transformed Underhead into a fundamentally new kind of tool: I implemented a text-to-speech feature which read the tasks aloud. This meant that after writing the to-dos in the box and pressing "start," I no longer had to even look at it anymore; the software voice would "coach" me through the tasks and even prompt me with spoken reminders about how much time was remaining on a given task. Now I could minimize the Underhead window and let it guide me in the background. I could even use it from the smartphone in my pocket and listen to the instructions through my earbuds. Underhead became a central pillar in the way I worked, and I became the most effortlessly productive person I know.

Fast forward 10 years to the present. I still use Underhead every day. I never intended to release it publicly. [1] But I think the time has come: Underhead is one of the secret weapons behind many of the productivity approaches I write about in my newsletters. It helps power things like plan-do-learn loops, procedures, TEA management, warm-ups, timeboxed reading, and more.

Importantly, Underhead doesn't replace to-do lists and more sophisticated project-management systems. It complements them. In my own case, I use Notion to plan my projects and write/prioritize my to-dos. Then I paste them into Underhead to take action on them. But I'll save further nuances for future posts.

Here it is if you want to kick the tires, suggest new features, or tell me how much you can't stand text-to-speech voice technology: https://underhead.io.


The Adjacent Possible is where I share my most useful insights in bite-sized posts. One email per week. Many insights per email:

Go here for more posts in the series.


Footnote:

[1] For years I've actually resisted releasing Underhead to avoid the pressure it will place on me to spend time adding features, fixing bugs, offering support, writing documentation, and improving the design, even after factoring in the vanishingly small niche of folks — e.g. people like me with ADHD — who might find this app valuable.

posted to
Icon for series Spare Parts
Spare Parts
on February 4, 2023
  1. 2

    This is really cool Channing! And it solves the one gripe that I have with my favorite app ToDoist. It's sometimes a little overwhelming to see all of the items for "Today" and then decide where to start. ToDoist strikes a perfect balance between just enough of what I need without feature bloat.

    Is this / are there plans for this to be open source? I would love help with creating a ToDoist integration where you can import your tasks from ToDoist "Today" sorted by priority and then automatically marking the ToDoist task as done when completing on Underhead. I can manually copy / paste for now 😅

  2. 2
    1. Do you keep separate todo lists and then just paste them in here throughout the day?

    2. Initial reaction is super interested. Will try this out this week.

    3. Might be useful to default the voice to Daniel or another understandable voice. For a minute I thought you were trolling us with the voices (still wondering a bit to be honest).

    1. 2

      Do you keep separate todo lists and then just paste them in here throughout the day?

      Yep, you nailed it. I use Notion for planning and scheduling, so that's where I create and prioritize my to-do lists. Then when it's time to take action on a given list, I paste it into Underhead and press "Start."

      Sometimes I'll "freestyle" and go straight to Underhead to both write my to-dos and take action on them, but this is rare. I'll share more nuances of how I use it in an upcoming post.

      Might be useful to default the voice to Daniel or another understandable voice. For a minute I thought you were trolling us with the voices (still wondering a bit to be honest).

      Ha, not trolling! Web speech synthesis is notoriously tricky because, among many other inconsistencies, a) each operating system uses different system voices and b) each browser has its own opinion on how to handle the speech synthesis API's default voice option.

      Now that people are actually using the app I'll probably upgrade the speech API to Google speech synthesis since it has standardized high-performance across all operating systems.

      Meanwhile I'll look into a shorter-term solution like the one you suggested — defaulting to "Daniel" in those cases where users have not already set their OS system voices to acceptable options.

      (Other bearable voices on Mac include Karen, Rishi, Samantha, and Tessa.)

      1. 2

        I use Notion for planning and scheduling, so that's where I create and prioritize my to-do lists. Then when it's time to take action on a given list, I paste it into Underhead and press "Start."

        I keep hearing people talk about Notion. I feel stuck/ingrained with Evernote that I don't even particularly like -- but you know, it's there at it works. Test drives of new tools can be dangerous time sinks 😀.

        Web speech synthesis is notoriously tricky

        Whoa, I had no idea -- although I guess I should be surprised. Never developed anything with text to speech. Thanks for the link, very interesting.

        I'll probably upgrade the speech API to Google speech synthesis

        Obviously that'd be great, but might take non-trival time. I'm always quoting Ben Orenstein in my head and saying "how about if I didn't do that"? In this case I think you could solve most of the problem with a hint:
        "Voice terrible? Try Susan or Daniel. Still bad? Check out this link (https://talkrapp.com/speechSynthesis.html) for more suggestions. That might be the 5 minute version vs the 5 hour version.

        1. 2

          Obviously that'd be great, but might take non-trival time.

          Fixed.

          I looked under the hood and it turns out browsers like Safari set every voice option in the array to "default." 🤦‍♂️ So for these browsers I'm now just hardcoding Daniel as the original default initially, then the user can manually change voices through the voice-select menu afterwards.

          I keep hearing people talk about Notion. I feel stuck/ingrained with Evernote that I don't even particularly like -- but you know, it's there at it works. Test drives of new tools can be dangerous time sinks 😀.

          Understandable. I'm at the far left side of the adoption spectrum so I happily waste hours and hours every year toying around with new apps. I did Evernote and Google Docs for a while, then Trello, Dynalist, Asana, and now Notion. To Notion's credit, it's the only app that's been able to keep me around for more than 4 years…

          1. 1

            Understandable. I'm at the far left side of the adoption spectrum so I happily waste hours and hours every year toying around with new apps.

            Yeah, for sure -- I am too as it for apps and tools, love playing with new ones. It's the balance of time, priorities, and money that gets me -- been working on balancing that out. Only so many hours in the day!

            I did Evernote and Google Docs for a while, then Trello, Dynalist, Asana, and now Notion. To Notion's credit, it's the only app that's been able to keep me around for more than 4 years…

            Previous statement notwithstanding -- I have been seriously considering trying out something new, this might be just the nudge.

  3. 2

    Interesting & useful. I think you could stack it with some some other tasks to create a “fuller” product if you want…e.g a hybrid with Chatgpt prompts to speed up drafting or design tasks.

    I can’t get it to speak in English though…it’s pronouncing things in a phonetic type of language :)

    1. 3

      Daniel was the only reasonably understandable voice a stumbled across.

      1. 2

        👆

        Other tolerable voice options on Mac include Karen, Rishi, Samantha, and Tessa. I'm working on better voice defaults for the app as we speak.

    2. 2

      Edit: I just fixed the default text-to-speech voice. Now the app should always default to a good voice.

      Interesting & useful.

      Appreciate the feedback!

      I think you could stack it with some some other tasks to create a “fuller” product if you want…e.g a hybrid with Chatgpt prompts to speed up drafting or design tasks.

      Yep, you're probably right. Sadly I've only got limited resources to devote to Underhead so for now I'm going to work on getting the core functionality in a better place (e.g. better text-to-speech tech, user authentication for saving to-do lists, mobile and desktop versions of the app, etc.).

  4. 2

    I haven't used this properly yet, just took it for a quick test. Just wanted to say I love the simplicity and directness of the UI. Very nicely done minimalism.

    In my experience putting a tool like this directly on the internet (rather than behind a landing page or sign up or whatever) is a good way to get to traffic quickly. I think it is because end-users users love this. At least, that has worked for me in the past. I hope it works for you in the coming months. Will give this a proper shot on Monday.

    1. 1

      Just wanted to say I love the simplicity and directness of the UI. Very nicely done minimalism.

      Thanks Chris!

      In my experience putting a tool like this directly on the internet (rather than behind a landing page or sign up or whatever) is a good way to get to traffic quickly. I think it is because end-users users love this. At least, that has worked for me in the past. I hope it works for you in the coming months.

      Bingo. It's conceivable that I'll eventually add premium features (e.g. user authentication for saving to-dos) but I'll stay away from paywalls and landing pages. Weird apps like this need as little friction as possible. And if it actually gains real traction (unlikely!), I'll probably leverage that attention to advertise other products.

  5. 2

    Sounds great. I also tried many different TODOs applications, but no one helped me. However, I am afraid that this tool is too simple to me. In my daily works, I usually need to handle different tasks and it is common that I need to suspend some of them and then resume later. Your tool shows that I have to finish tasks one by one and it has no way to return to a specific task.

    1. 1

      In my daily works, I usually need to handle different tasks and it is common that I need to suspend some of them and then resume later. Your tool shows that I have to finish tasks one by one and it has no way to return to a specific task.

      Yep, makes sense. Underhead's definitely not the best tool if you need to change the order of your tasks many times while working on them.

      That being said, there is a way to return to specific tasks by pressing the "Previous Task" button multiple times.

  6. 1

    Very cool i like that it is intended to remove distractions and increase increase focus on 1 task at a time. Personally for me my tasks, projects and goals are much more complex so I use Jira to plan EVERYTHING that I want to get done and I saw massive improvement in the execution of tasks in my personal life. And I have tried literally any productivity tool jeg can Imagine. Plus I use Jira at work so it is a win win situation and even people I know have implemented using Jira for personal task management and said it worked nicely. However now I am stuck with the difficult tasks that require hard decisions. Also I have yet to find a good way to create a prioritized kanban board on jira for mobile. So that it in self is a task.

  7. 1

    Channing, I noticed you have an interest in productivity apps. Would love to get your opinion on what Im thinking.

    Considering to build a simple suite of Productivity/Efficiency Tools that can be used directly within WhatsApp.

    Currently considering 2 main capabilities.

    Set Reminders in WhatsApp with a text
    Website: https://yep.so/p/whatsapp-reminders

    Receive and respond to messages from FB, IG, Twitter, Linkedin etc within WhatsApp itself
    Website: https://all-in-whtsapp.earlybird.rocks/

    Thanks and have a lovely week :)

    P.S I tried running ads for validation, but didnt quite get me clear indications.. so now posting in blogs/getting specific people's feedback!

  8. 1

    Wow, I like it, although I'd still work on the design. I like it anyway. Maybe I'll ask our designer later, if I don't forget. But I'll throw in a link to the article. Maybe you'll find it useful https://androidcure.com/how-to-avoid-common-mistakes-in-mobile-app-design/. In general it is about simple things, but maybe it will be useful for you. Although you probably know this, so do not think that I'm trying to insult you

  9. 1

    Nicely done. I've been promoting a concept for the past few years called Task Stacks, which are a list of tasks, sorted in execution order, where all the tasks are hidden except for the next one.

    The idea is to separate your "planning time" from your "doing time", and avoid getting overwhelmed or distracted during your doing time. If you can't see your entire list, it's harder to get overwhelmed by it, and harder to get distracted by lower priority items.

    The idea is that you create a task stack for a facet of your work or life and sort the tasks in execution order (which is often priority order), then you schedule a time block to do those tasks. During that time block, you just work down the list of tasks until your time runs out.

    I can see Underhead being a nice way to execute a task stack. It's similar in some ways to how I envision implementing task stacks in Day Optimizer eventually.

    Anyway, if you're interested in the concept, you can check out the talk I did last year at the Task Management & Time Blocking Summit, which was on how to use task stacks to make time blocking more effective. It might trigger some other ideas for Underhead.

    1. 1

      if you're interested in the concept, you can check out the talk I did last year at the Task Management & Time Blocking Summit, which was on how to use task stacks to make time blocking more effective. It might trigger some other ideas for Underhead.

      Nice. Definitely interested. I'll check this stuff out over the weekend.

  10. 1

    Very cool i like that it is intended to remove distractions and increase increase focus on 1 task at a time. Personally for me my tasks, projects and goals are much more complex so I use Jira to plan EVERYTHING that I want to get done and I saw massive improvement in the execution of tasks in my personal life. And I have tried literally any productivity tool jeg can Imagine. Plus I use Jira at work so it is a win win situation and even people I know have implemented using Jira for personal task management and said it worked nicely. However now I am stuck with the difficult tasks that require hard decisions. Also I have yet to find a good way to create a prioritized kanban board on jira for mobile. So that it in self is a task.

    1. 1

      This method also seems quite interesting to increase productivity https://www.instagram.com/p/CnwqJPFtOcz/?igshid=MDJmNzVkMjY=

  11. 1

    How is your publishing going? I also created a productivity app but couldn’t get anyone to use it.

    1. 1

      How is your publishing going?

      Seems ~100 people have visited the site in the 12 hours since I published this post. I expect an additional 100 or so will click through when I send this to the email list.

      I also created a productivity app but couldn’t get anyone to use it.

      To be very honest, productivity apps are generally bad business ideas because the market is so overcrowded.

      My main motivation for publicly releasing Underhead isn't to make money or stand out in the market (not going to happen) but rather to complement the productivity theories and tactics I share in my newsletters.

      Ultimately, if even 10–50 people end up finding the tool valuable, I'll consider it to have been worth the time to write about it. Otherwise, all I've lost is a couple hours.

  12. 1

    Hey, I'm working on something similar in the sense of reducing the friction between a person and their tasks. I call it "personal process tracking". The app is located here: https://clew.app. The website is very non-informative yet. So I'll just describe the idea in a few words. Instead of working on the tasks/todos I work on processes. A process is something that can be started but is not finished in one attempt. I work on a process for a bit, update the context of the process, and switch to another process. So, the app helps me track these processes and automatically prioritizes them by lifting up the most "neglected" ones.
    I'm interested in feedback from people that are into personal productivity.

    1. 1

      I signed up and kicked the tires for a few minutes 👍

      Instead of working on the tasks/todos I work on processes. A process is something that can be started but is not finished in one attempt. I work on a process for a bit, update the context of the process, and switch to another process. So, the app helps me track these processes and automatically prioritizes them by lifting up the most "neglected" ones.

      I like this idea. In fact, I implement a similar workflow in Notion for my long-term projects.

      But Clew also feels a bit… too opinionated on not letting me finish a process? That is, suppose I begin a process that I expect will take me several hours. But then, unexpectedly, I finish it much more quickly than expected (e.g. "in one attempt," as you put it). My brain really yearns for the closure of marking the process complete by clicking a checkbox and having the user interface acknowledge this new milestone.

      Does that make sense? Or am I using it wrong?

      1. 1

        Hey, thank you so much for tire kicking :)
        There are 2 ways of finishing a process. You can delete it or you can snooze it forever. I discovered that often I think the process is finished and then it resurrects itself. I definitely need to outline all typical patterns in some kind of documentation, I know. That's my current priority. ChatGPT to the rescue, lol.
        Yes, a lot of people report that checking a checkbox gives them physical satisfaction. But I think this coin has a second side. Not checking that checkbox stresses you out. And one of the clew's ideas is to reduce stress to a minimum.

        1. 1

          I too like the satisfaction of "completing" a process, however, I understand your idea here. I really like this. In using it for a few minutes, I outlined 4 projects I have going on right now with subprocesses and I love the idea of updating the process. At first I found that not having a way to "complete" a process to be jarring, but thinking of things as a process rather than a task it makes more sense to not have the "done" option. However, sometimes subtasks can be completed as part of the main process and I think there may be a way to have two different types of processes. Some would be traditional tasks that can be completed but others would be processes that don't have an end. Perhaps Main Processes can't be completed, but subtasks can if they are marked as such. Subprocesses can't be completed. This would add more flexibility to the tool while still keeping with the philosophy. I'm gonna play around with it more in my workflow.

          1. 1

            Thank you so much for your review! It's awesome that you figured out how to use the app, kudos! So, a process can have comments (that build up the context around that process) and tasks (that are just a special case of a comment). These tasks have checkboxes and can be completed as usual. Subprocesses are not meant to be tasks. One of the examples of how to use subprocesses is Job Search. Within your Job Search process you would have all the companies you applied to and you would treat them the same.

            1. 1

              So, I didn't try the task option before. This is exactly what I was trying to describe in my comment, but you already have it in there. So, great job! The only other things would be a way to add subprocesses in bulk and to have a dropdown on the Main processes list so I could see subprocesses without going into the main process. But, even without it you've made a really great app here. Thanks.

              1. 1

                Thank you for this insight, I'll think about bulk operations and an expanded view. Right now I'm really trying not to over-complicate the UI as it's both desktop and mobile-ready. And on mobile all these additional UI features make the app fall apart so quickly. I could make the expanded view feature available only on desktop, I guess.

  13. 1

    This comment was deleted 2 years ago.

Trending on Indie Hackers
From Ideas to a Content Factory: The Rise of SuperMaker AI User Avatar 27 comments Why Early-Stage Founders Should Consider Skipping Prior Art Searches for Their Patent Applications User Avatar 21 comments Codenhack Beta — Full Access + Referral User Avatar 17 comments I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍 User Avatar 15 comments Building something...? User Avatar 12 comments Do Patents Really Help Startups Raise Funding? Evidence from the U.S. and Europe User Avatar 11 comments