Jotback

approved

by yniany

Capture short thoughts and bring them back into view over time. - This plugin has not been manually reviewed by Obsidian staff.

260 downloadsUpdated 22d agoMIT

Jotback for Obsidian

Jot down. Look back.

Jotback is a lightweight Obsidian plugin for capturing short thoughts and bringing them back into view over time.

Each memo is stored as an individual timestamped Markdown file. Your notes remain plain text, searchable through Obsidian, and portable without the plugin.

Features

  • Quick capture — open the Jotback view from the ribbon or command palette and save a memo without leaving the view.
  • Markdown rendering — display memo content using Obsidian's Markdown renderer.
  • Search and tag filtering — filter memos by text or YAML tag using Obsidian's standard tags property.
  • Configurable storage folder — choose the vault folder used to save and load memos; the default is memos/.
  • Pinned-first timeline — show pinned memos first, then order the remainder by creation time.
  • Incremental loading — render 50 memos at a time to keep larger collections responsive.
  • Heatmap — browse memo activity by year and filter the list to a selected day.
  • Random review — rediscover shuffled memos in a focused review dialog, launched from the command palette or the sparkle button.
  • Responsive interface — supports desktop and mobile layouts, Obsidian themes, keyboard navigation, and reduced-motion preferences.
  • System-language interface — follows Obsidian's configured language for English and Chinese, with English as the fallback.

Screenshots

Desktop

Main viewRandom review
Jotback desktop main viewJotback desktop random review

Mobile

Jotback mobile main view Jotback mobile random review

Memo format

New memos use timestamped filenames in the following format:

YYYY-MM-DD-HHMMSS-mmm.md

Their Markdown content uses frontmatter for metadata:

---
created: 2026-08-13 20:13:30
pinned: false
tags:
  - research
  - obsidian
---
Turn reading notes into searchable memos.

When a memo is loaded, its creation time is resolved in this order:

  1. A valid frontmatter created value.
  2. A timestamp in the standard filename.
  3. The file creation time reported by the vault.

YAML tags are the single source for card tag chips and tag filtering. Hashtags written in the memo body remain part of the rendered Markdown content, but Jotback does not convert them into metadata or duplicate them in the card footer. New memos start with an empty tags: [] property that can be edited through Obsidian's Properties interface.

Jotback only creates and manages created, pinned, and tags. Obsidian's standard aliases and cssclasses properties are neither added nor modified by the plugin.

Storage folder

The default memo folder is memos/. To use another location, open Settings → Jotback → Memo storage folder and choose or enter a path relative to the vault root, for example Notes/Jotback.

Leading, trailing, repeated, and Windows-style separators are normalized. Changing the setting does not move existing memo files; move them in Obsidian's file explorer if they should appear in the new location.

Language

The interface follows the language configured in Obsidian:

  • Chinese language variants use the Chinese interface.
  • English and all other languages use the English interface.

Reload the plugin or restart Obsidian after changing the application language so that all existing views and commands are rebuilt with the new locale.

Commands

CommandAction
Jotback: Open viewOpen or reveal the Jotback view.
Jotback: Start random reviewStart a shuffled random-review session.

The sparkle button in the Jotback view opens the random-review dialog. Memos are shuffled with Fisher-Yates and shown once per cycle before the next reshuffle. Its desktop keyboard controls are:

KeyAction
SpaceShow another random memo.
EnterOpen the current memo.
EscClose random review.
Tab / Shift+TabMove between controls while keeping focus inside the dialog.

On desktop and mobile, clicking or tapping outside the random-review card also closes it.

The heatmap exposes one date in the Tab order. Use Up / Down to move by one day, Left / Right to move by one week, and Home / End to reach the first or last day of the year. Press Enter or Space to apply the date filter. Memo cards and tag filters are also keyboard accessible.

Privacy

Jotback works entirely inside the local Obsidian vault. It makes no network requests, requires no account or payment, and includes no advertising, analytics, or telemetry.

Development

Requirements

  • Node.js and npm
  • An Obsidian vault for manual testing

Install dependencies

npm install

Run tests

npm test

The test suite covers frontmatter parsing, YAML-only tag handling, folder-path normalization, filename dates, creation-time fallback behaviour, and repository caching.

Run the community-guideline checks

npm run lint

This runs the official eslint-plugin-obsidianmd recommended rules against the plugin source.

Build

npm run build

The production build type-checks the TypeScript source and bundles it with esbuild into main.js. The current build configuration also copies main.js, manifest.json, and styles.css into the bundled test-vault for local testing.

For continuous rebuilds during development:

npm run dev

Manual installation

Copy these files into <your-vault>/.obsidian/plugins/jotback/:

main.js
manifest.json
styles.css

Then enable Jotback under Obsidian's community plugin settings.

Project structure

src/main.ts       Plugin lifecycle, commands, and settings
src/i18n.ts       English and Chinese interface translations
src/view.ts       Jotback view composition, filtering, and card rendering
src/repository.ts Cached, batched memo loading and data aggregation
src/heatmap.ts    Activity heatmap rendering and date selection
src/random-review.ts Random-review dialog and keyboard interaction
src/shuffle-bag.ts Fisher-Yates shuffle and per-session review bag
src/types.ts      Shared memo data types
src/utils.ts      Frontmatter, tags, filenames, and date utilities
tests/            Utility and repository regression tests
styles.css        Plugin interface styles
main.js           Generated plugin bundle

Tech stack

TypeScript · Obsidian API · esbuild · Node.js test runner

Licence

MIT © 2026 yniany

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.