2023.10.23.

Append-only storage and developing ideas

There are multiple ways to develop ideas. Sometimes the best one is where you can’t change the history of an idea. It’s there as breadcrumbs to go back in time and see how an idea was developed.


Other people use email as an append-only note-taking tool and storage medium. From How I use append-only log to store information:

Choose any email client you like and basically dump all your PDFs, notes, digitized papers, files into it as it arrives from various sources. Just write a meaningful subject that you can search for later. You can use labels or folders to organize, but mostly just send it to an email address of your choice and archive it. Usually, you will not even read it again after you have saved it.

The E-mail format itself is well understood and has many features. The max attachment size of most service providers is around 20 MB. It’s more than enough. Try to use plain text for just taking short notes and messages to yourself. If you want to dump more than 20mb of files, just archive it or split into many emails or upload it to cloud storage and copy and paste the link to email.

When you need the information. It’s there. Always.

No more fiddling with the file managers, renaming. It is saved as it is.

Even if you would like to edit, you can just forward the message again to yourself with the edit and delete the original one.

You can also use it to schedule mails and track future tasks, TV shows, anime, movies or Reminder to yourself in the future. If you are working on a piece of text for a long time, you can just keep it as a draft and keep working. It will be auto-saved.

I am a fan of the bullet journal method. Handwritten text is immutable. The same goes for emails. Once you send it, it becomes immutable.

I don’t know if other use emails to store all their digital content in emails like me. But it’s a pretty neat trick.


Here’s how Steve Jobs used email to write his Stanford commencement speech:

In January 2005, John Hennessy, the president of Stanford, asked Steve to give the commencement address to that spring’s graduating class. Steve agreed.

On and off for the next six months, Steve took stabs at writing his talk. He emailed stories and memories to himself. He asked friends, Apple colleagues, and the screenwriter Aaron Sorkin for their thoughts. In the end, however, he wrote the speech on his own. Even three days before the event, Steve was unsatisfied with his talk. He sent it to a friend, warning, “I’ll send it to you, but please don’t puke. I never do stuff like this.” He was still refining the speech the morning that he gave it. Uncharacteristically, Steve read from the lectern, rather than memorizing his text (as he did with Apple keynotes) or speaking extemporaneously from a few scrawled notes (as he did in nearly every other talk).

Steve was happy with the speech—he emailed himself a copy a few days after giving it—but he generally deflected the praise that he received for it. “I bought it on CommencementSpeeches.com,” he joked to one person. The commencement address has been viewed millions of times online and is included[…]


These use cases are similar to how I use email threads to develop ideas in the GTD capture phase, where I’m leaving notes for myself within an email thread. All I have to do is send a reply to my own address by replying to an email, so Apple Mail keeps the message in the same thread.

One of the benefits of using this method is that I can still see the email as part of the thread, but my notes will be kept private.

This is helpful for various purposes, such as making code review comments or jotting down ideas by replying to email notifications but changing the recipient to my own address, which acts a bit like the poor men’s version of HEY’s sticky notes

I also have another app where I keep journal entries called Everlog. I’m thinking about applying the same append-only storage idea there and never editing my Everlog entries after I added them. It is also an append-only app, where entries shouldn’t be changed afterward, only deleted. I can always add a follow-up to an entry but I should never change it, so I can see how something was developed over time.

This is why I like to use Drafts for capturing and drafting ideas. I can easily edit them while I’m working on the idea, but I shouldn’t change them too much after I share them with their destination app (except when I continue working on them).


Related posts

Zettelkasten Note

2022.07.02.

Reduce context switches in the OmniFocus Inbox using a Process perspective

I watched a video from Cal Newport on how he uses a simple text file for the sense-making of a bunch of new information. He mentioned that instead of processing his emails one by one, he captures the essence of every email into his text file, then starts to categorize it, organize it by projects, etc. This gave me an idea about solving a similar problem I had with my GTD inbox for a while now.

GTD recommends that we process our stuff in the inbox sequentially, without grouping beforehand. The problem with this approach is that many items related to different projects are scattered in our inbox, so we’re jumping in and out of projects while processing our inbox. This constant context switching drains energy from our brain.

If we want to spare our attention, it is a good idea to group our unprocessed inbox items by project, so we can reduce the context switching when we process them. Using this approach for the GTD Process and Organize steps will ensure that we clean things related to each project in one go, not randomly.

I will show you how to do this inside OmniFocus, but you can also steal this approach for Things using a similar “Process” tag.

Why is this a problem?

The point is to add a temporary structure to information in the inbox. I usually do some form of project planning and next action creation when I’m emptying my inbox. The problem is that I constantly switch thoughts about many different things as I go through each item. It would be nice to have them batched and grouped by their project. This can reduce the attention switching to different topics/projects.

Let’s say we have an inbox like this:

  • Item 1 (could be about Project X)
  • Item 2 (could be about Project Y)
  • Item 3 (could be about Project Z)
  • Item 4 (could be about Project X) ← This is where I will have to return to “Project X” again. This item can even be connected to “Item 1” somehow.

I hate when I have to switch my current context (not my GTD context, but the current mindset that I’m in) and go back to a project I already thought about and assigned a next action to; possibly, I even closed its support material since then.

Having new information pre-organized by projects (or topics) can reduce the load of thinking about a project twice or more in an inbox processing session.

Using the Process workflow

  1. The first step is to create a new perspective in OmniFocus called Process with the rules shown on the screenshot above. You’ll use this perspective to process things instead of the standard OmniFocus Inbox.
  2. It’s essential to have everything corralled into the OmniFocus Inbox, so you can stop jumping around different inboxes, but more importantly, have everything pre-organized by the project. Go through your inboxes (email, Slack, DEVONthink, etc.) and link a new action to all unprocessed items in OmniFocus. The Hook app can help a lot with this step.
  3. Open the Process perspective, where you’ll see your unorganized stuff sitting in the Inbox waiting to be pre-organized. You must quickly go through each item and assign it to an existing or new project (don’t assign tags). You don’t have to come up with the final name for a new project. Set whatever comes to your mind; the important thing is to pre-organize unprocessed items in this step. If you don’t know where to assign it, just skip it, or move it into a singular action list related to an area.
  4. When you have pre-organized everything, you can click the clean-up button (or press Command-K) to see all of your unprocessed items grouped by project. Now you can go through each item and deal with them in the context of its project instead of having them all over the place.

Why having a pre-organized inbox is better than a flat list of unknown stuff

I always get annoyed when I deal with something related to a big project in my inbox, and then 5 minutes later, another thing pops into my view about the same subject. I have to open the project and its support material again, get into the same mindset, and maybe even reconsider everything I figured out 5 minutes ago. It is a dumb way to plan things.

I’ve been pre-organizing inbox actions by the project for about a month now, and I can assure you that having unprocessed stuff grouped by the project can make a big difference. I can process my OmniFocus Inbox about 15-20% faster than before, but more importantly, I don’t feel tired after doing it. I stopped switching contexts for every item; instead, I’m spending more time at the project level and dealing with new things from this perspective.


I wrote a follow-up post to this one answering reader questions about this workflow.

2021.11.08.