ppeirce1k downloadsA GitHub-contributions-style heatmap view for Bases. Visualize boolean or numeric properties from daily notes over time.
A GitHub-contributions-style heatmap view for Obsidian Bases. Visualize boolean or numeric properties from your daily notes over time.
Requires Obsidian 1.10.0 or later (Bases feature)

Build the plugin (or download release files):
npm install
npm run build
Create a folder for the plugin in your vault:
<YourVault>/.obsidian/plugins/heatmap-bases-view/
Copy these files to the plugin folder:
main.jsstyles.cssmanifest.jsonReload Obsidian (Ctrl/Cmd + R)
Enable the plugin in Settings > Community Plugins
Create some daily notes with a boolean or numeric property. For example, create notes named 2025-01-01.md, 2025-01-02.md, etc. with frontmatter:
---
exercise: true
---
Or with numeric values:
---
mood: 7
---
Create a new Base:
Configure the Base source:
Daily Notes/)Switch to Heatmap view:
Configure the Heatmap:
exercise or mood)Create daily notes with this frontmatter structure:
---
meditated: true
exercise: false
water_glasses: 8
mood: 7
---
Then create separate Bases for each habit:
meditatedexercisewater_glassesmoodIf your notes aren't named with dates, you can use a date property instead:
---
date: 2025-01-15
completed: true
---
In the Heatmap settings:
datecompleted| Option | Description |
|---|---|
| Date property | Property containing the date, or leave empty to parse from filename |
| Value property | Boolean or number property to visualize |
| Start date | Beginning of date range (YYYY-MM-DD), or leave empty for auto |
| End date | End of date range (YYYY-MM-DD), or leave empty for today |
| Color scheme | Select from available schemes (customize in Settings) |
| Week starts on | Sunday or Monday |
| Show weekday labels | Toggle Mon/Wed/Fri labels |
| Show month labels | Toggle month labels at top |
| Layout direction | Horizontal (GitHub-style) or vertical (calendar-style) |
| Cell size | Small (11px), medium (16px), or large (24px) |
# Install dependencies
npm install
# Development build with watch mode
npm run dev
# Production build
npm run build
# Lint code
npm run lint
# Lint and auto-fix
npm run lint:fix
Linting runs automatically on staged files before each commit via husky pre-commit hooks.
See RELEASING.md for the complete release process and version management.