Daily Journal
pendingby LinhDangDev
Create and manage daily journal entries with templates, mood tracking, and smart insights.
π 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.
β¨ 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/500live as you write. - Goal reached indicator β Changes to
β 500/500when 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)
- Open Settings β Community Plugins β Browse.
- Search for "Daily Journal".
- Click Install, then Enable.
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Create a folder:
<your-vault>/.obsidian/plugins/daily-journal/. - Copy the downloaded files into that folder.
- 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
- Ribbon icon β Click the π book icon in the left sidebar.
- Command palette β Open the command palette (
Ctrl/Cmd + P) and search for:Create today's journalCreate yesterday's journalCreate tomorrow's journal
- Status bar β Click the journal status indicator at the bottom.
Available Commands
| Command | Description |
|---|---|
Create today's journal | Create or open today's journal entry |
Open today's journal | Open today's journal entry |
Create yesterday's journal | Create or open yesterday's entry |
Create tomorrow's journal | Create or open tomorrow's entry |
Open journal calendar | Open the calendar view in the sidebar |
Browse all journal entries | Open the Journal Navigator |
Set mood for today's journal | Update today's mood |
Template Variables
Use these variables in your templates β they are automatically replaced when a new entry is created:
| Variable | Example 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:
- Fork the repository.
- Create a branch for your feature:
git checkout -b feature/my-feature. - Commit your changes:
git commit -m 'feat: add my feature'. - Push to the branch:
git push origin feature/my-feature. - 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
- Built with the Obsidian Plugin API.
- Inspired by the daily journaling community.
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.