When I was 7 years old my parents purchased a Mac LC. I was instantly hooked. Not just hooked on computers in general though. I was hooked on the Mac. I had played with a DOS machine at a friend's house a few times, but always felt it was unappealing. Yes, even as a 7 year old. The Mac felt magical. I listened to national anthems from countries around the world using MacGlobe, I created wild graphics using KidPix, and I played shuffleboard in Shufflepuck Café.
Creating documents and art became intuitive as I experimented with more software and faster machines. Creating software, however, was a foreign concept until I purchased a TI-85 in middle school. I quickly embraced TI-BASIC to write tiny applications that could help me complete homework faster. TI calculators included a cable that allowed you to transfer applications (let's be honest it was for games) between calculators. In high school my applications became more advanced and seemingly popular. I recall helping someone use their calculator and stumbling upon one of my apps. I never forgot that feeling.
I studied Economics and Computer Science in college, but I did not enjoy writing code. I always felt that writing code got in the way of the fun part: experiments involving people. I adored my Human Computer Interaction courses which led me to taking independent CS courses as both an undergraduate and graduate student where I built applications that enabled research. For example, I worked with Professor Phoebe Sengers to place cameras and small screens in professors' offices, and augment the video feeds with various algorithms. The goal was to study how the video augmentations impacted the ability to determine moods across offices.
After graduating I was not interested in pursuing a career in software development, and I joined at a small startup named iControl Networks in Palo Alto, CA as a QA engineer. A year(ish) later I started helping the company's first design hire with tasks and that became my career. For years I dabbled with web development using my own websites as playgrounds along with a few General Assembly classes, but I was always intimidated by further complexity.
Enter Claude Code
With the explosion of AI and endless inspiration from peers, it was time to revisit this yearslong intimidation. I attended an event at the Notion headquarters in San Francisco called Brain Dumplings where designers from OpenAI, Anthropic, Cursor and Notion presented how they use AI at work. Michael Wang caught my attention when he mentioned that due to security restrictions he was unable to use his favorite notetaking app: Obsidian. That led him to vibe code his own.
I'm a self-proclaimed notes and tasks app expert. Obsidian, Tana, Things, Wunderlist, Simplenote, Reflect, Linear, etc. I've tried so many and never felt quite at home. They're so heavy and riddled with distracting features. I want simplicity: a list of notes and a list of tasks. If tasks are inside notes like in Notes.app, then one does not have a centralized list of tasks spread across notes. Obsidian solves this, but its interface is inherently unpredictable. I'm always wrestling to get the layout precisely in place before a quick double click breaks it.
The persona I'm aiming for with this app is literally David Klein. Its design, shortcuts, and features align with how I envision notes and tasks should be managed.
Primary experience
Simplicity is my guiding principle when considering features for QuickTake. A list of notes in the left sidebar, edit notes in the main area, and a list of tasks in the right sidebar. While switching between notes, tasks are always present (unless the user closes the tasks sidebar of course). Any new feature cannot interfere with this behavior.
To make a new note the user can:
- Tap ⌘N
- Go to File → New Note
- Click "New Note" at the bottom of the left sidebar
To make a new task the user can:
- Tap ⌘L
- Go to File → New Task
- Click "New Task" at the bottom of the right sidebar
I chose ⌘L for creating a new task because making a cursor appear elsewhere in an app feels similar to navigating a website and invoking the same command in a web browser.
I also thought extensively about the placement of the "New Note" and "New Task" buttons. I prototyped placing them in the header, but after reviewing Mario Guzman's design guidelines I decided to place them at the bottom. Mario writes:
Since Sidebars are now full-height of the window they reside in, their toolbar width can be variable depending on how the user resizes the sidebar. Because of this, it is difficult to know up-front how many toolbar items can be shown. If the developer places more than the automatic Show/Hide Sidebar toggle toolbar button, there is a risk of buttons "hiding" in the overflow menu on the right-end of the window. This may confuse users, especially if these buttons are important to the addition or navigation of content in the application.
I find Mario's guildelines both logical and aesthetically pleasing. In particular I like how both buttons have text labels and do not rely solely on icons.
Markdown: efficient but distracting
Markdown's reach is undeniable as it has been adopted by Microsoft, Google, Apple, and, perhaps most importantly, LLMs. I find it to be an enjoyable method for writing notes, blog posts, website pages, etc. However, my one complaint is I don't enjoy looking at the Markdown characters. They're distracting and aesthetically unpleasing. Some writing apps provide an option to render Markdown automatically and as a result remove the characters. In QuickTake I did not provide that as an option; it's just on.
As the user writes and hits the return key or clicks on another line, the Markdown notation is removed and the formatting is automatically applied. To bring the notation back the user simply clicks on a line they want to edit.
Clearing tasks to remove them
After using Cultured Code's Things for many years, I have grown accustomed to a two step process for completing tasks:
- Click a checkbox to mark a task as complete.
- Click a button to remove the completed task.
I find this helpful because it allows me to divide a large task or small project into several smaller items to complete. I can then keep track of bits of progress by checking the small items before confidently completing the large task and clearing. Also if I'm moving fast and check the wrong task, it doesn't immediately disappear which I find endlessly frustrating in other task tracking apps.
Another way to think about this is as a rudimentary kanban board. Tasks can intially be in the traditional "backlog" column, they are moved into the "waiting" column after becoming checked, and clearing moves them into the "done" column.
Creating tasks when one is in the flow
Taking notes and creating tasks is fundamentally data entry, and I strongly believe that reducing friction is crucial for designing the ideal user experience. In addition to building keyboard shortcuts to reduce mouse clicks, I also considered ways to reduce key clicks. For example, if the user has a sentence, bullet or list item in a note and wants to convert it into a task, they can simply add #task to the line of text instead of copying and pasting it into the tasks sidebar.
To ensure a task that was created in a note has context, the name of a task's corresponding note appears beneath the task in the tasks sidebar. In addition to providing context, the user can also click on the note name to deep link to the task. A subtle background text color appears to draw subtle attention to the task text. The goal was to ensure the user spotted it in a busy note.
Synchronizing data across Macs
Three options for synchronizing data across Macs are available: iCloud, Dropbox, and none. By default syncing is disabled. The goal was to allow users to make the choice in the name of privacy and security.
Synchronizing data with iCloud is self-explanatory, but it relies on iCloud Drive. In some enterprise environments iCloud Drive is disabled on machines whereas Dropbox is not. To use Dropbox, select it from the dropdown menu and then select the destination folder. If restrictions are lifted or the user changes their mind, they can seamlessly switch between sync options without losing data.
Use AI to differentiate notes
With AI the tech industry often imagines sweeping changes to our daily lives and reimagined computing environments. There are also endless opportunities for AI to make subtle improvmeents to existing software. For example, imagine a user works at a company that uses an enterprise task management app and the user is assigned 4 tasks:
- 33104437
- 33588197
- 33874488
- 33752705
The user has meetings to discuss each task, takes notes on progress, copies and pastes Slack messages for guidance, etc. Using the task names as the note names would be a poor experience considering the task names are not at all descriptive. This is where AI can help. QuickTake can use Apple Intelligence to generate short note descriptions in the notes sidebar to help differentiate between notes.
Instead of memorizing task contents or clicking between tasks to understand them, the user can glance at the notes sidebar and see short summaries for each.
Note: This features requires Apple Intelligence to be enabled in macOS System Settings.
Invisible onboarding
Walkthroughs, tooltips, videos, overlays. Designing the ideal onboarding interface or flow depends on the user persona, app goals, and more. In my opinion the ideal onboarding experience conveys the app's capabilities without drawing attention to itself. For QuickTake the obvious design was to have a lightweight note appear on first launch to provide a brief overview.
I built this app because I wanted a note-taking and todo list app that actually behaves the way I expect.
I immediately launch into a strong opinion and introduce a sense of intrigue. I hope readers will become curious about what makes this app different.
QuickTake is built on three principles: (1) Extreme simplicity — no folders or tags, (2) Markdown support — write naturally and watch it render as you go, and (3) A global todo list — one place for everything you need to do
Next I explain the most important features (or lack thereof).
Your notes and tasks can sync automatically via iCloud or Dropbox.
Whenever I install a notes app I immediately seek sync options since I have personal and work machines.
That's it. Nothing more; nothing less.
Ironically there are additional features and enhancements, but they are not important at this moment. The user should feel confident that they have a strong grasp of QuickTake at this point.
An app icon that exist amongst others
It takes a tremendous amount of reflection before permanently adding an app to my dock in macOS. If an app icon is ugly or noisy I will not make the committment. My goals when designing QuickTake's icon were:
- Do not draw attention. The icon should not compete with others in the dock. It should remain on the periphery of the user's attention. Note: I have been thinking about peripherhy in software design for a long, long time.
- Do not feel invisible. The icon should reveal itself after a quick glance.
- Respect the platform. Even though I disagree the with design direction of Liquid Glass and macOS Tahoe, I still believe apps should attempt to align with Apple's guidelines. As a result, I added a subtle amount of specular highlights.
And here is a screenshot of an actual dock.
Avoid Liquid Glass when it interferes
One aspect of Liquid Glass that I decided to override is the header overlay when text scrolls underneath it. As a note-taking app I believe the ability to read text supercedes Apple's current aesthetics. The notes and tasks sidebars have the exepcted behavior since they are secondary in terms of focus.
When the user scrolls a long note, the text is always legible.
Next steps
For the next few versions I am considering:
- Adding an MCP server to enable the user to interact with QuickTake notes while using ChatGPT or Claude.
- Introductiong sections in the tasks sidebar to enable the user to group tasks.
- Providing a formatting bar for users who do not have Markdown syntax memorized.
I would love to hear feedback and feature requests. Please feel free to contact me. Oh and don't forget to download the app on the Mac App Store.