Daily notes in plain markdown
How to run daily notes in plain markdown: file naming, folders, a small template, and command-line appends that keep a journal you can read anywhere.
A daily note is one markdown file per day, named after the date, sitting in a folder on your disk. That is the whole format. Name the file 2026-08-30.md, keep it in a folder such as daily/, and open it in any editor. Because the name starts with the year, the files sort chronologically on their own, and they stay readable without Jotura or anything else installed.
A daily note workflow is what makes the file useful. Four things do most of the work. The note should exist before you go looking for it, and a short template stops the page being blank. Links point out to the projects you touched, and one command appends a line mid-task.
Each section below gives the plain-markdown version first and the Jotura version after.
Name the file after the date
Use YYYY-MM-DD.md. It sorts correctly in every file browser, and it reads the same in the US and Europe. Avoid 30-08-2026.md and Aug 30 2026.md. Both scatter your journal into alphabetical nonsense.
You have two reasonable folder choices. Everything flat in one daily/ directory is simplest, and it stays readable up to a few hundred files. Nesting by year and month keeps each directory listing short, which matters after a few years of writing.
Jotura takes the nested approach, so today’s note lands at daily/2026/08/2026-08-30.md. That layout is fixed: --folder renames the top level, but the year and month levels are not. Move the files into a flat folder and they are still valid markdown, but Jotura will not find them, because it always looks under <folder>/YYYY/MM/.
Keep the note a landing pad, not a filing cabinet
The daily note works best as the place things arrive, not the place they live. Write the log of what happened, the tasks that came up, and links to the notes that own each topic. When something grows past a few lines, move it into its own note and leave a link behind.
That habit is what stops a markdown journal turning into a swamp. A line like Fixed the connection pool bug on [[Project Atlas]] keeps the detail where it belongs and the date where it happened. Backlinks then make each project note show every day it was mentioned, and there is a full guide on wikilinks and backlinks in plain markdown.
Make today’s note appear, already started
Keep the template short. Four headings is plenty, and a template long enough to feel like a form will kill the habit.
# {{filename}}
## Log
## Tasks
- [ ]
## Notes
Jotura’s templates are markdown files too, stored under .jotura/templates/ inside the vault. That folder belongs to the app, so a template is the one part of this workflow you cannot browse to alongside your notes. Save the block above as daily-template.md, then pipe it in:
jotura templates create daily < daily-template.md
jotura templates list
jotura today --template daily
Jotura substitutes four variables when it applies a template: {{filename}}, {{title}}, {{date}}, and {{datetime}}. Use {{filename}} for the heading, because a daily note’s filename is its date. The other two stamp the moment of creation, which is a different thing when you backfill with --date. Templates apply only when the note is created.
In the desktop app, turn on daily notes in Settings. Jotura pre-creates notes for a window of upcoming days, configurable from 1 to 60, and shows a calendar in the right sidebar. Without any of that, a shell alias does the same job:
alias today='mkdir -p ~/notes/daily && ${EDITOR:-nano} ~/notes/daily/$(date +%F).md'
That is sufficient. Plain markdown daily notes do not require an app.
Append a line without stopping what you are doing
Most entries are one sentence, and opening an editor is the cost that stops people writing them. The shell answer is one line:
echo "Shipped the search fix" >> ~/notes/daily/$(date +%F).md
For a flat daily/ folder, that may be all you ever need. It also fails when the folder does not exist, writes to whatever path you typed, and has no idea whether another program is editing the file.
The jotura command-line tool, which ships inside the desktop app, covers those cases:
jotura today # print the path, creating the note if needed
jotura today --read # print the body (also creates the note if absent)
jotura today --append "Shipped it" # appends, then prints JSON with the new hash
jotura today --date 2026-08-29 --read # yesterday
Passing --append with no value reads standard input, so it composes with the rest of your shell:
git log --oneline --since=midnight | jotura today --append
Two details matter. The append is a compare-and-swap write: Jotura reads the note, then writes only if the file on disk still matches that read. A change underneath it is rejected, not overwritten.
A note open in the desktop app with unsaved edits is a different case, because the file on disk has not changed yet. The append lands, and the app’s next save is what has to reconcile.
Dates are the second detail. The command-line tool resolves today in UTC, while the desktop app resolves it in your local timezone. In a timezone behind UTC, a late-evening append writes into tomorrow’s file while the app still shows today, and your evening ends up split across two notes. Pin the date to your local one:
jotura today --date $(date +%F) --append "Shipped the search fix"
The same command is what lets an AI coding agent leave a line in your journal at the end of a session. That is a side effect of the format being plain and the tool being scriptable, not a separate feature. The CLI reference covers the rest.
Tasks written on a Tuesday, found on a Friday
Checklist markdown, - [ ] and - [x], is the standard way to put a task in a daily note. Retrieval is the hard part: a task written eleven days ago is invisible unless you reopen that day. Grep gets most of the way there:
grep -rn "^- \[ \]" ~/notes/daily/
That lists every open item with its file and line number. It misses indented subtasks, gives no ordering by date, and offers no way to tick anything off.
Jotura reads checklist markdown across the whole vault and collects the open items into one list you can act on. The lookback window runs from 1 to 365 days, measured on the note’s date for daily notes and on last-modified time for everything else. An old project note you edited this morning therefore contributes its old checkboxes. Future-dated tasks always show, whatever the window.
Jotura writes nothing into your files to make this work, so the same notes open cleanly in any other editor. The mechanics are in tasks in plain markdown.
Find the entry you half remember
Grep is the baseline, and for a journal it is often enough:
grep -rn "postgres" ~/notes/daily/
jotura grep "postgres"
Jotura’s --include flag scopes a search to a glob such as daily/**. That glob is case-sensitive, and jotura today adopts an existing Daily/ folder when it finds one, so match the case on disk or leave the scope off.
When you remember the meaning but not the words, keyword search fails. Jotura can build a semantic index on your own machine, using a local embedding model downloaded once, with no API key and nothing sent anywhere. You enable it in desktop Settings, and there is a longer explanation in semantic search your notes offline.
Read your journal on more than one machine
Daily notes are the most personal thing in a vault, so answer the sync question deliberately. Any file-sync tool moves markdown fine, because these are ordinary files.
Jotura Sync is the paid option at 4 pounds per month or 40 pounds per year, with no free trial. It encrypts notes on your device before upload, and the server never sees your plaintext, your filenames, or your keys. Details are on the sync page.
Two limitations, stated plainly. Jotura runs on Mac, Windows, Linux, and Android, and there is no iOS app. An iPhone is not part of this workflow today.
The Android app reaches your notes through Jotura Sync rather than by reading a folder on the phone. Adding a line from a phone therefore means paying for sync.
Jotura itself is closed source. Your journal is not. It stays a folder of markdown files that any editor can open, with or without this app.
Frequently asked questions
Should I use one file per day or one file per month? One per day. Monthly files are tidier on disk but much worse to link to, because a wikilink can point at a date but not at a heading inside a long file.
What about frontmatter in daily notes?
Optional. A tags: block helps if you tag entries by project. Jotura’s body edits never touch the frontmatter block, so adding one later is safe.
Can I keep my existing journal? Yes, if it is already markdown files in a folder. Jotura opens an existing folder as-is, including an Obsidian vault, and a save with no edits produces a byte-identical file.
Related guides
How to manage tasks in plain markdown
How to manage tasks in plain markdown: the checkbox syntax, where to file a todo, how to find every open item in a folder, and what text files cannot do.
How wikilinks and backlinks work in plain markdown
A plain-English guide to how wikilinks and backlinks work in ordinary markdown files: the syntax you type, how a link finds its note, and how to list them.
Semantic search your notes offline, with no cloud and no API key
A practical guide to semantic search your notes offline: how local embeddings work, what to turn on in Jotura, and the exact commands to search by meaning.
More in How to.
Free. Plain markdown files, yours forever.