In today's digital age, many people turn to popular tools like Evernote, Notion, and others for managing their personal knowledge. While these tools offer convenience and a wide range of features, they often fall short in helping users build a true second brain. The main issues with these tools are:
- Lack of Structure: They encourage dumping information without proper organization, leading to clutter and difficulty in retrieval.
- Passive Consumption: Users tend to collect information without processing or internalizing it, resulting in knowledge that remains superficial.
- Overwhelm: The sheer volume of features and possibilities can be paralyzing, making it hard to maintain a consistent practice.
- Remote Dependency: These tools often rely on cloud services, creating dependency on external platforms with potential privacy concerns.
This system addresses these issues by implementing the Domain-Note-Reflection-Summary (DNRS) model, which promotes active engagement with information and structured knowledge building.
Unlike cloud-based solutions, Bashnote operates only locally, giving you full control over your data while maintaining simplicity and effectiveness.
The DNRS model is designed to help you process and internalize information effectively. Here's how it works:
- Domains: Broad categories that represent areas of interest or expertise.
- Notes: Individual pieces of information, ideas, or insights related to a specific domain.
- Reflections: Reflections about a subject or within a domain.
- Summaries: Summaries or synthesis of notes about a subject or within a domain.
This model ensures that you actively engage with your knowledge, transforming raw information into meaningful insights.
To use this system effectively, you'll need:
-
A Unix-like shell environment with Bash:
- Linux (any distribution)
- macOS
- Windows Subsystem for Linux (WSL) on Windows 10/11
-
A text editor of your choice:
- Recommended: Visual Studio Code or VSCodium (lightweight, open-source alternative to VS Code)
- Install from code.visualstudio.com or vscodium.com
- Other options: Nano, Vim, Emacs
- Recommended: Visual Studio Code or VSCodium (lightweight, open-source alternative to VS Code)
-
Basic command line familiarity:
- Navigating directories
- Running shell scripts
Dowload Bashnotes from Github, either by downloading a zip file or by cloning the repository:
$ git clone https://github.com/korbinus/bashnotes.gitMove then to the directory bashnotes:
$ cd bashnotesBefore using the system, you can customize it by editing the config.txt file in your bashnote directory:
# Folder names configuration (change these to your preference)
notes_folder=1_notes
reflections_folder=2_reflections
summaries_folder=3_summaries
# Editor configuration (recommended: vscode or codium)
editor=vscode # Options: vscode, codium, nano, vim, emacs...To create a new domain:
$ new/domain.sh <Domain name>This will automatically:
- Create a new folder named after your domain (e.g.,
Programming,Health) - Set up the basic directory structure with subfolders for notes, reflections, and summaries
- Create a
refsdirectory for storing reference documents
The created directory structure will look like this:
<Domain name>/
├── 1_notes/ # Notes folder (customizable in config.txt)
├── 2_reflections/ # Reflections folder (customizable)
├── 3_summaries/ # Summaries folder (customizable)
└── refs/ # For storing reference documents
You might initially name your first domain General until you think of more specific alternatives.
To create a new note from the bashnote directory:
$ new/note.sh <Domain name> <Note title>This will:
- Create a new markdown file in the appropriate domain's notes folder
- Open the file in your configured text editor (default: VS Code)
To create a new reflection from the bashnote directory:
$ new/reflection.sh <Domain name> <Reflection title>This will:
- Create a new markdown file in the appropriate domain's reflections folder
- Open the file in your configured text editor
To create a new summary from the bashnote directory:
$ new/summary.sh <Domain name> <Summary title>This will:
- Create or update a markdown file in the appropriate domain's summaries folder
- Open the file in your configured text editor
Tags help you organize and retrieve information more effectively:
- After creating a note, reflection, or summary, open the generated markdown file
- Add tags at the top of the file using this format:
tags: #tag1 #tag2 #tag3
To create an index of all your tags with links to corresponding notes:
$ new/tags.shThis command will:
- Scan all your domains for tagged content
- Create a
tagsdirectory in your root folder if it doesn't exist - Generate a markdown file for each tag containing links to all notes that use that tag
The generated structure will look like this:
tags/
├── tag1.md
├── tag2.md
└── ...
Each tag file will contain:
- The tag name as a header
- A list of all notes using that tag with relative paths
- Links to each note for easy navigation
NOTE You'll need to run it as often as necessary
Here's what your complete knowledge base might look like:
knowledge_base/
├── config.txt # Configuration file
├── tags/ # Auto-generated tag indexes
│ ├── programming.md
│ └── research.md
└── domains/
├── Programming/
│ ├── 1_notes/
│ │ ├── 2023-07-15_algorithm_concepts.md
│ │ └── ...
│ ├── 2_reflections/
│ │ ├── 2023-08-01_code_review_thoughts.md
│ │ └── ...
│ ├── 3_summaries/
│ │ └── programming_summary_2023.md
│ └── refs/
│ ├── design_patterns.pdf
│ └── ...
└── Health/
├── 1_notes/
│ ├── 2023-07-20_nutrition_tips.md
│ └── ...
├── 2_reflections/
│ └── ...
├── 3_summaries/
│ └── health_summary_2023.md
└── refs/
└── ...
You can simply backup your data by copying the bashnotesdirectory (or even only domains) in a safe place.
You can copy your files into you mobile device using for instance localsend if you absolutely need your bashnotes with you.
Don't forget to install a markdown reader app on your mobile device!
By adopting the DNRS model and following these guidelines, you'll transform how you manage and internalize knowledge. This system encourages active engagement, structured organization, and meaningful synthesis of information, helping you build a true second brain.
With this plain-text based approach:
- Your knowledge remains portable across systems
- You can easily search and manipulate your notes with standard tools
- The structure supports both quick note-taking and deep reflection
The system is designed to be simple yet powerful, giving you full control over your knowledge management process while providing helpful organization patterns.