My Thinking Tool Flow

For a long time, I have been hoping for a suitable software to assist my thinking process. Everyone has different needs for tools, and below is a summary of my previous thoughts and choices.

Traditional tools, such as books, use a linear approach to record content. However, thinking is not linear. If the content of thinking is written on a linear tool, there will be many inconveniences, and much information will be lost.

During my university years, I discovered mind-mapping tools and quickly became fascinated. However, I didn’t stick with them for two reasons: firstly, many mind-mapping tools abstract the basic model of thinking into a tree structure, and secondly, these tools often use a single file to limit the scope of the map. I believe that thinking should be an unordered network structure rather than a tree, and thinking should not be restricted in scope; it should be infinite, interconnected, and expandable.

Coincidentally, my recent work has prompted me to reconsider the ideal form of such a tool.


I often have reflections on problems in certain situations, and these reflections sometimes bring value. These reflections are small individual points of thought. After some time, I naturally move away from that situation. Even if I took notes at that time, I sometimes find it challenging to accurately understand the meaning of those notes. I imagine having a tool that connects these points of thought to each other, providing context to each thought point. Connecting points to form a thinking network can recreate the thought process when maintained properly. A well-maintained network allows me to continuously accumulate the results of my thoughts, with the context of these results not being lost.

Since the constructed network can permanently save the context of thinking (i.e., the network), this offers another possibility. When I have a new idea, I can use search, mapping, and other functions to find the connections between the new idea and the existing network. This often leads to unexpected discoveries, and I can use this tool to link new ideas to the existing network.

Here are my requirements in brief:

Software Tool Selection

Compared to enthusiasts who have used dozens or even hundreds of note-taking software, I have only used a few types of note-taking software available on the market and found some aspects unsatisfactory. I didn’t intend to evaluate various note-taking software; I just compared them based on my own needs.

After careful consideration, I decided to create my own Side Project - perhaps the privilege of a programmer. Currently, the functionality of this project is mostly completed, but there is still much room for improvement. Here is a brief introduction:


The original intention is to help with thinking, so I simply call it ThinkNote. If it conflicts with other note-taking software, I may consider changing the name :).



The smallest container for loading ideas is a card.

Since I rarely use rich text, and to reduce development workload, the current cards only support simple text formatting.

Supports tagging, and a card can have multiple tags. Tags can be understood as indexes for cards of the same type.

Establishing Connections

The way to establish a connection between cards is to write [[Card ID]] inside a card (e.g., [[V50D0H44NM]]), creating a link from the current card to the card with the ID V50D0H44NM.


Currently, the graph can be created based on tag classification, Card ID, and keyword searches.

Retrieve all cards with a specific tag and create a graph based on the connections between cards.

Retrieve cards with a specific Card ID and related cards. A number can be set to determine the distance (i.e., how many steps to connect cards related to the Card ID).

In the graph, you can use cmd + left click to trigger the Card ID search function.

Retrieve cards containing specific keywords. If these cards are interconnected, display the connections in the graph.

In the graph, hovering over each node will display the content of the card.

Review and Ratings

Many times, when recording cards, it’s about quickly documenting an incomplete idea. Subsequently, I need to organize these cards, including associating them with existing cards in the network, comparing them, and revising related cards. Therefore, I need a Review mechanism.

I have designed a rating feature, where each card is divided into 11 rating levels: N, R, C-, C, C+, B-, B, B+, A-, A, A+. A new card is default to N. N (New card) indicates a new card, R (Recycle) indicates a card of little value that has been placed in the recycle bin, and the other 9 levels correspond to the value of the respective ideas.

If a card is marked as N, it means that this card has not been organized. If marked as non-N, then this card has been organized.

Inappropriate Use Cases

The following are known scenarios where ThinkNote is not suitable:



Installation Instructions:

Updated on: Sat February 24, 2024