---
title: "Streak Tracking and Heatmaps — Visualize Your Consistency"
description: "GitHub has contribution heatmaps. xeve has them for everything. See your daily consistency across productivity, coding, exercise, and music — with streak tracking to keep you accountable."
date: "2026-03-19"
app: orma
category: "quantified-self"
readingTime: "4 min read"
---

<p>GitHub's contribution graph is one of the most effective behavior design patterns in software. A grid of green squares makes consistency visible — and makes breaking a streak feel costly. xeve applies the same idea to every metric it tracks.</p>

<h2>The Streaks Page</h2>

<p>The Streaks page shows heatmap grids for multiple metrics. Each grid covers the last 12 months, with each cell representing one day. The color intensity maps to the metric value — light for low activity, full orange for high activity. Empty cells (no data) are visually distinct from zero-value cells.</p>

<p>The default view tracks these metrics:</p>

<ul>
<li><strong>Productive time</strong> — hours of focused app usage per day</li>
<li><strong>Coding time</strong> — hours in VS Code or Claude Code per day</li>
<li><strong>Steps</strong> — daily step count from HealthKit</li>
<li><strong>Commits</strong> — GitHub commits per day</li>
<li><strong>Music</strong> — hours of Spotify listening per day</li>
</ul>

<h2>Streak Counters</h2>

<p>Below each heatmap, xeve shows your current streak (consecutive days with activity above the threshold), your longest streak ever, and the total number of active days. The threshold is configurable — you might want "coding streak" to mean 30+ minutes, not just one heartbeat.</p>

<p>Streaks reset at midnight in your local timezone. The timezone handling uses the same <code>getDateRange</code> utility as the rest of the dashboard, ensuring your Monday is your actual Monday regardless of where the server thinks you are.</p>

<h2>Monthly Summary Bars</h2>

<p>Each heatmap also includes a monthly summary bar below the grid — a horizontal bar chart showing the total for each month. This makes seasonal patterns visible: maybe you code more in winter, walk more in summer, or have a consistent dip every December.</p>

<h2>Hover Details</h2>

<p>Hovering over any cell shows a tooltip with the exact date and value. This makes the heatmap useful as a lookup tool, not just a visualization. "What day last month did I code 6+ hours?" — hover across the bright cells to find it.</p>

<h2>The Psychology of Streaks</h2>

<p>Streak tracking is a double-edged sword. It motivates consistency but can also create unhealthy pressure. xeve shows streaks without gamification — no badges, no achievements, no social comparison. The data is for you, and breaking a streak has no consequence beyond the visual gap in your grid.</p>

<p>The goal is awareness, not guilt. If your coding heatmap shows a three-week gap, maybe that was vacation. Maybe it was burnout. The heatmap does not judge — it just makes the pattern visible so you can decide what to do about it.</p>
