Skip to content

Journaling

Journal

Keeping a journal is easy to do with Markdown files. You can simply write a new note every day.

journal.md
## Note: 2026-01-01
* πŸƒ Ran 10k
* πŸ€” 3h (deep work)

The NoteWriter defines a default type for this use case:

{
DefaultAttributes: {
date: {
name: "date",
type: "string",
format: "yyyy-mm-dd",
inherit: true,
},
},
DefaultNoteTypes: {
Journal: self.Note + {
name: "Journal",
attributes: [
{
name: "date",
required: true,
},
],
processors: ["date-extractor", "list-items"],
},
}
}

The type Journal does a few things:

  • It requires an attribute @date.
  • It automatically extract the date from the title (ex: ## Journal: 2026-01-01 will create an attribute @date: 2026-01-01).
  • It expects a list (to display a list when rendering the journal).

Notes can be declared below a journal entry:

journal/2026/2026-01-01.md
# Journal: 2026-01-01
* βœ… Fixed bug at startup
* πŸ“– Finished reading _The Enchiridion_ by Epictectus
* πŸ₯¦ Eat healthy
## Note: Bug at startup
Some notes to explain how the bug was resolved.
## List: Food
* πŸ₯— Quinoa Salad with chickpeas, cherry tomatoes, cucumber, and a lemon-tahini dressing
* πŸ› Grilled salmon served with steamed broccoli and brown rice
* 🌯 Whole wheat wrap filled with hummus, spinach, shredded carrots, and avocado

The NoteWriter Desktop provides a screen to visualize a diary using a timeline to filter on date range or attributes. Sub-notes are also listed (but not expanded by default).

Routines

Routines plays an important role in journaling. Routines reduce friction. When you have a morning routine and a shutdown routine set up, it becomes an habit. Journaling without routines captures moments. Journaling with routines captures patterns.

Routines can be defined in config.jsonnet:

config.jsonnet
{
journal: [
{
name: 'My Diary',
path: 'journal/{{ year }}/{{ year }}-{{ month }}-{{ day }}.md',
defaultContent: '# Journal: {{ year }}-{{ month }}-{{ day }}',
routines: [
{
name: 'Morning Routine',
template: |||
# πŸ’ͺ Affirmation
{{ affirmation "journaling#List: Affirmations" }}
# 😘 Gratitude Journal
3 things I appreciate:
* {{ input }}
* {{ input }}
* {{ input }}
# πŸ€” Prompt
{{ prompt "journaling#List: Prompts" }}
# 🎯 My BIG thing for today
{{ input }}
|||,
},
{
name: 'Shutdown Routine',
template: |||
# ❓ How was my day? Why?
{{ input }}
# πŸ“‹ 3 tasks to complete tomorrow:
* [ ] {{ input }}
* [ ] {{ input }}
* [ ] {{ input }}
|||,
},
],
},
],
}

Routines will be appended to your journal entry specified using these attributes:

  • path: A template to the path of note containing the daily journal entry. Ex: journal/{{ year }}/{{ year }}-{{ month }}-{{ day }}.md
  • defaultContent: The default content for this note if the file doesn’t exist. Ex: # Journal: {{ year }}-{{ month }}-{{ day }} will define the file title.

Several routines could be defined. For example:

{
name: 'Morning Routine',
template: |||
# πŸ’ͺ Affirmation
{{ affirmation "journaling#List: Affirmations" }}
# 😘 Gratitude Journal
3 things I appreciate:
* {{ input }}
* {{ input }}
* {{ input }}
# πŸ€” Prompt
{{ prompt wikilink="journaling#List: Prompts" }}
# 🎯 My BIG thing for today
{{ input }}
|||,
},

A routine is defined by its name and a template. A template is the text that will be rendered with placeholders for the user to enter:

  • {{ input }}: A text input to answer a question, write a line, etc.
  • {{ affirmation wikilink="journaling#List: Affirmations" }}: Render an affirmation selected in a list note identified by the attribute wikilink.
  • {{ prompt wikilink="journaling#List: Prompts" }}: Render a prompt and a text input to write your reflection on it.
  • {{ morningpages }}: Render an input to fill your morning pages.

Example of notes for affirmations and prompts:

journaling.md
## List: Affirmations
* All I need is within me right now.
* I am not pushed by my problems; I am led by my dreams.
* Today will be a productive day.
* I stand up for what I believe.
* I can do anything I put my mind to.
* I can do better next time.
* Every day is a fresh start.
## List: Prompts
* What's ONE thing you can do today that makes tomorrow easier? `#doing`
* What's the ONE Thing I can do such that by doing it everything else will be easier or unnecessary? `#doing`
* What did you do as a child that made the hours pass like minutes? `#doing`
* If I can only achieve three things over the next three months, what should they be? `#planning`
* In what ways could it actually be an opportunity in disguise? `#reflecting`
* What is the 2-minute version of the task I'm avoiding? `#doing`
* What can I automate? `#doing`

Here is the rendered routine in the desktop application:

TODO screenshot morning routine

After saving, the daily file will be appended like this:

TODO copy based on the screenshot

Stats

The NoteWriter Desktop supports statistics determined on attributes.

Daily Metrics