Daily Journal

pending

by LinhDangDev

Create and manage daily journal entries with templates, mood tracking, and smart insights.

Updated 1mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

πŸ““ Daily Journal

A beautiful daily journal plugin for Obsidian. Create, organize, and manage your journal entries with customizable templates, mood tracking, writing streaks, and a built-in calendar view.

Obsidian License TypeScript


✨ Features

πŸ“ Smart Journal Creation

  • One-click journal creation β€” Create today's journal entry instantly via ribbon icon, command palette, or status bar click.
  • Date-based folder structure β€” Entries are automatically organized as Journal/YYYY/MM/date.md.
  • Template variables β€” Dynamic content with {{date}}, {{time}}, {{dayOfWeek}}, {{year}}, {{month}}, {{monthName}}, {{day}}, {{quote}}, {{moon_phase}}, {{season}}, {{weather_emoji}}, {{week_number}}, and {{random_prompt}}.
  • Create for any date β€” Commands for today, yesterday, and tomorrow.

πŸ“„ Template System

  • 5 built-in templates:
    • πŸ“ Full Journal β€” Morning reflection, goals, notes, and evening review.
    • ✏️ Minimal β€” Clean, distraction-free layout.
    • πŸ™ Gratitude Journal β€” Focus on gratitude and kindness.
    • πŸ“‹ Bullet Journal β€” Tasks, events, notes, and ideas.
    • πŸ“† Weekly Review β€” Wins, progress tracking, and energy levels.
  • Custom templates β€” Create, edit, and delete your own templates with custom icons.
  • Template picker modal β€” Choose a template before creating each entry (optional).
  • Template presets β€” Quickly load built-in templates into the editor.

😊 Mood Tracker

  • Pick your mood when creating a new journal entry.
  • 5 mood levels: πŸ˜„ Great, πŸ™‚ Good, 😐 Okay, πŸ˜” Sad, 😑 Awful.
  • Mood is stored in frontmatter and displayed on the calendar.
  • Update mood anytime via the command palette.

🎭 Advanced Mood Tracking (NEW in v2.0)

  • Energy level β€” Track Low/Medium/High energy alongside mood.
  • Stress slider β€” Rate stress on a 1-10 scale.
  • Emotion tags β€” Select multiple emotions per entry (grateful, anxious, calm, excited, etc.).
  • Mood triggers β€” Log what influenced your mood (work, health, relationships, weather, etc.).
  • Multi-panel flow β€” Progress through mood β†’ energy β†’ stress β†’ emotions β†’ triggers with skip options.
  • Each dimension stored in frontmatter for analytics.

πŸ“… Calendar View

  • Beautiful interactive calendar in the right sidebar.
  • Visual indicators β€” Days with journal entries are highlighted.
  • Mood dots β€” See your mood emoji on each day at a glance.
  • Monthly stats β€” Entry count and completion percentage.
  • Quick navigation β€” Click any day to open or create its journal entry.
  • Navigate between months with previous/next buttons and a "Today" shortcut.

πŸ”₯ Writing Streak

  • Current streak β€” Consecutive days of journaling, shown in the status bar.
  • Longest streak β€” Track your personal best.
  • Total entries & word count β€” Available in the Journal Navigator.

🎯 Daily Word Goal

  • Set a daily word count target (e.g. 300 words/day).
  • Status bar progress β€” See ✍️ 234/500 live as you write.
  • Goal reached indicator β€” Changes to βœ… 500/500 when you hit your target.
  • Disable by setting goal to 0.

πŸ“Š Writing Heatmap (NEW in v2.0)

  • GitHub-style activity grid β€” 365-day writing history at a glance.
  • Color themes β€” Green, blue, purple, or orange.
  • Click any day β€” Jump to that journal entry.
  • Year stats β€” Total entries count in the footer.

πŸ… Achievement System (NEW in v2.0)

  • 12 unlockable badges β€” First Words, 3-Day Streak, Week Warrior, 30-Day Champion, 100-Day Legend, Wordsmith (1K words), Novelist (10K), Prolific Author (50K), Marathon Writer (100K), and more.
  • XP & Level system β€” 6 levels from Beginner to Master Writer.
  • Badge gallery β€” Visual badge collection in the Navigator.
  • Level progress bar β€” See your XP progress.
  • Notifications β€” Toast notifications when badges are unlocked.

πŸ’‘ Smart Insights (NEW in v2.0)

  • Day-of-week patterns β€” "You tend to feel best on Fridays."
  • Trigger correlations β€” "Exercise days tend to boost your mood."
  • Weekly mood trends β€” "You've been having a great week! 🌟"
  • Emotion frequency β€” Most common emotion tracking.
  • Stress analysis β€” Average stress level insights.

πŸ€– Smart Prompts (NEW in v2.0)

  • 50 reflection prompts β€” {{random_prompt}} in templates.
  • Moon phase β€” {{moon_phase}} shows current lunar phase emoji.
  • Season tracking β€” {{season}} and {{weather_emoji}}.
  • Week number β€” {{week_number}} for ISO week.

πŸ“š Journal Navigator

  • Browse all journal entries in a searchable modal.
  • Live search β€” Filter entries by content, filename, or mood (debounced).
  • Stats dashboard β€” Total entries, word count, current streak, and best streak.
  • Entry previews β€” See date, mood, word count, and a text preview for each entry.
  • Mood analytics β€” 30-day mood grid and mood distribution chart.
  • Writing heatmap β€” GitHub-style activity overview (NEW in v2.0).
  • Badge gallery β€” Achievement badges collection (NEW in v2.0).
  • Level progress β€” XP bar and current level (NEW in v2.0).
  • Mood insights β€” AI-generated text insights from your journal patterns (NEW in v2.0).

πŸ’‘ Daily Quotes

  • A rotating collection of 50+ inspirational quotes.
  • Automatically inserted via the {{quote}} variable in templates.
  • Deterministic per day β€” the same quote appears all day.

βš™οΈ Highly Configurable

  • Customizable journal folder path.
  • Multiple date formats: YYYY-MM-DD, DD-MM-YYYY, MM-DD-YYYY, YYYY/MM/DD, DD.MM.YYYY.
  • Toggle features on/off: mood tracker, daily quotes, streak counter, template picker.
  • Advanced Mood Tracking β€” Toggle energy, stress, emotions, triggers independently (NEW in v2.0).
  • Gamification β€” Toggle achievements, heatmap, color themes (NEW in v2.0).
  • Smart Features β€” Toggle smart prompts, auto-tagging (NEW in v2.0).
  • Daily word goal β€” Set a writing target with status bar progress tracking.
  • Open journal on Obsidian startup (optional).
  • Show/hide ribbon icon.

πŸš€ Installation

From Obsidian Community Plugins (coming soon)

  1. Open Settings β†’ Community Plugins β†’ Browse.
  2. Search for "Daily Journal".
  3. Click Install, then Enable.

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Create a folder: <your-vault>/.obsidian/plugins/daily-journal/.
  3. Copy the downloaded files into that folder.
  4. Open Settings β†’ Community Plugins β†’ Enable "Daily Journal".

Build from Source

# Clone the repository
git clone https://github.com/LinhDangDev/Journal-Daily-Obsidian-Plugins.git
cd Journal-Daily-Obsidian-Plugins

# Install dependencies
npm install

# Build
npm run build

# For development (watches for changes)
npm run dev

πŸ“– Usage

Creating a Journal Entry

  1. Ribbon icon β€” Click the πŸ“– book icon in the left sidebar.
  2. Command palette β€” Open the command palette (Ctrl/Cmd + P) and search for:
    • Create today's journal
    • Create yesterday's journal
    • Create tomorrow's journal
  3. Status bar β€” Click the journal status indicator at the bottom.

Available Commands

CommandDescription
Create today's journalCreate or open today's journal entry
Open today's journalOpen today's journal entry
Create yesterday's journalCreate or open yesterday's entry
Create tomorrow's journalCreate or open tomorrow's entry
Open journal calendarOpen the calendar view in the sidebar
Browse all journal entriesOpen the Journal Navigator
Set mood for today's journalUpdate today's mood

Template Variables

Use these variables in your templates β€” they are automatically replaced when a new entry is created:

VariableExample Output
{{date}}2026-02-27
{{time}}14:30
{{dayOfWeek}}Thursday
{{year}}2026
{{month}}02
{{monthName}}February
{{day}}27
{{quote}}An inspirational quote
{{moon_phase}}πŸŒ“ (current lunar phase)
{{season}}Spring
{{weather_emoji}}🌸 (seasonal emoji)
{{week_number}}9 (ISO week)
{{random_prompt}}A reflection prompt

Folder Structure

Entries are organized automatically:

Journal/
β”œβ”€β”€ 2026/
β”‚   β”œβ”€β”€ 01/
β”‚   β”‚   β”œβ”€β”€ 2026-01-01.md
β”‚   β”‚   β”œβ”€β”€ 2026-01-02.md
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ 02/
β”‚   β”‚   β”œβ”€β”€ 2026-02-01.md
β”‚   β”‚   └── ...
β”‚   └── ...
└── ...

πŸ›  Development

Prerequisites

Setup

git clone https://github.com/LinhDangDev/Journal-Daily-Obsidian-Plugins.git
cd Journal-Daily-Obsidian-Plugins
npm install

Development Build

npm run dev

This watches for file changes and automatically rebuilds main.js.

Production Build

npm run build

Lint & Test

npm run lint        # ESLint check
npm run lint:fix    # ESLint auto-fix
npm run format      # Prettier format
npm test            # Run Vitest unit tests
npm run test:watch  # Watch mode

Project Structure

src/
β”œβ”€β”€ main.ts                  # Plugin entry point, commands, and lifecycle
β”œβ”€β”€ settings.ts              # Settings UI, template presets, and data types
β”œβ”€β”€ journal-creator.ts       # Journal file creation and template rendering
β”œβ”€β”€ calendar-view.ts         # Calendar sidebar view with mood dots
β”œβ”€β”€ journal-navigator.ts     # Searchable journal browser with stats + analytics
β”œβ”€β”€ mood-modal.ts            # Simple mood picker modal
β”œβ”€β”€ extended-mood-modal.ts   # Multi-panel mood picker (energy/stress/emotions/triggers)
β”œβ”€β”€ template-picker.ts       # Template picker modal
β”œβ”€β”€ streak-tracker.ts        # Writing streak calculator
β”œβ”€β”€ mood-analytics.ts        # Mood analytics engine (insights, correlations)
β”œβ”€β”€ writing-heatmap.ts       # GitHub-style writing activity heatmap
β”œβ”€β”€ achievements.ts          # Badge & XP achievement system
β”œβ”€β”€ smart-prompts.ts         # Smart prompt generators (moon, season, prompts)
β”œβ”€β”€ constants/
β”‚   β”œβ”€β”€ messages.ts          # Centralized UI messages
β”‚   β”œβ”€β”€ emotions.ts          # Emotion tags, triggers, energy options
β”‚   β”œβ”€β”€ prompts.ts           # Reflection & gratitude prompt pools
β”‚   └── topics.ts            # Topic keywords for auto-tagging
β”œβ”€β”€ utils/
β”‚   └── date-formatter.ts    # Date formatting utilities
β”œβ”€β”€ __tests__/
β”‚   └── streak-tracker.test.ts  # StreakTracker unit tests
└── utils/__tests__/
    └── date-formatter.test.ts  # DateFormatter unit tests

🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository.
  2. Create a branch for your feature: git checkout -b feature/my-feature.
  3. Commit your changes: git commit -m 'feat: add my feature'.
  4. Push to the branch: git push origin feature/my-feature.
  5. Open a Pull Request.

Guidelines

  • Follow the existing code style (TypeScript, no ESLint warnings).
  • Test your changes in Obsidian before submitting.
  • Write clear commit messages using Conventional Commits.

πŸ“„ License

This project is licensed under the MIT License.

© 2026 Đặng Duy Linh


πŸ™ Acknowledgments


Made with ❀️ for the Obsidian community

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.