The first full week of Season 0 merged 37 changes, most of them Tuesday to Thursday. Competition leaderboards no longer list people at zero points. A first Notion connect now starts with the habits your journal already has. Competitions can be created and left from inside the widget. Seven changes toward tracking without Notion merged, all behind a switch that stays off until a full rehearsal has passed. The redrawn knight reached the mails. Signup gained a newsletter checkbox. The weekend went to a usability sweep of the site.
Sprint map
One row per story arc, one column per day.
| Mon 5 | Tue 6 | Wed 7 | Thu 8 | Fri 9 | Sat 10 | Sun 11 | |
|---|---|---|---|---|---|---|---|
| Leaderboards drop the empty rows | |||||||
| Starter habits read from your columns | |||||||
| Competitions from inside the widget | |||||||
| Tracking without Notion, built but switched off | |||||||
| A newsletter checkbox at signup | |||||||
| The knight reaches your inbox | |||||||
| A usability sweep of the site | |||||||
| Two quiet fixes | |||||||
| Under the hood |
Monday is empty. Tuesday to Thursday carried the product work. The weekend went to the site.
Merges per day
The arcs
In rough chronological order.
Leaderboards drop the empty rows
A competition leaderboard used to list every participant, including people who had joined but never tracked a habit, sitting at zero between the people who had. Three changes on Tuesday clean that up. Rows without habits are hidden. Then the rule widened: any row at zero points is hidden, whatever the reason. The one exception is you. Your own row stays visible even at zero, so a fresh joiner still sees where they stand and that the join worked. Everyone else sees a leaderboard of people who are actually playing.
Starter habits read from your columns
Connecting Notion for the first time used to leave the habit configuration empty until you filled it in. Since Tuesday the connect step reads the habit columns your journal database already has and seeds the configuration from them. Someone who built their columns before connecting starts with those habits in place, not with a blank page.
Competitions from inside the widget
The widget could show a competition and let you join one. Creating one, or leaving one, meant a trip to the site. Both now work from inside the widget: the server side landed Tuesday, the widget side Wednesday. Start a competition with friends from the same Notion page you track on. Leave it from there too.
Tracking without Notion, built but switched off
Three weeks ago the server side of tracking without Notion landed: an account can carry a tracking mode, a habit list can be saved without Notion, habits can be checked off for today or yesterday. This week added the rest of the groundwork, seven changes across server and widget. Accounts in that mode get their own midnight rollover with a self-healing check behind it. The reminder and recap mails know which mode an account is in. The widget hides every Notion-specific control for such an account and shows a compact check-in grid for today and yesterday as its home. The connect page gets a card offering to track here instead. A first-day bug, where the very first check-in could leave the totals empty, was fixed on the way. None of this is visible yet. Everything sits behind one switch that stays off until a full rehearsal on a staging copy has passed: activate, configure, check in, roll over, read the widget. The switch flips in its own step, not bundled with anything else.
A newsletter checkbox at signup
Signup now has an optional newsletter checkbox. It is unticked by default. Ticking it opts you into the monthly digest, nothing else. The accounts that registered before the checkbox existed never got to decide. A one-time invitation for those accounts is ready. It asks the question once.
The knight reaches your inbox
Last week the redrawn knight was centred in the shield everywhere on the site. On Friday the mails followed. The logo at the top of the app's mails is the same mark now, exported from the same single source file as the site's logo variants.
A usability sweep of the site
The weekend went to a list of small things found by walking the site as a new visitor. The main purple was darkened one notch so text on it meets the contrast guideline. Text links are underlined again, so they read as links without hovering. The footer's tap targets grew to a thumb-friendly size. The signup form stopped overlapping the footer on laptop screens. Six pages got a share card of their own instead of the generic one. The default card was redrawn too. Logged-in visitors who hit "Get started" on the home page now land on the connect page instead of the signup form. The feedback link hides for logged-out visitors, with a line explaining that feedback needs a login. The warning before re-authorizing Notion now says exactly when tracked data is reset. It also says that competition points stay.
Two quiet fixes
Connecting Notion schedules the first nightly sync for that account. Until Sunday that scheduling ran inside the same database transaction as the connect itself, so a task could be scheduled against an account that was not fully saved yet. It now runs after the connect has been committed. Separately, the site's content-security header blocked a small inline script the framework uses to activate critical styles. The header now allows exactly that script by its hash. The build fails if the hash ever drifts.
Under the hood
Routine dependency updates landed on both sides, grouped: the database driver on the server, the local mail catcher, a weekly bundle on the site. The site shed its template leftovers: dead dependencies, a loading bar nobody saw, two old hero variants, unused fonts. Two small tools for the backlog shipped, one that reports overlapping items, one that scans history so a deleted item's number is never reused. A scheduler test that only failed on Sundays was pinned to a fixed day. The weekly ship log and the September roundup went live on Tuesday.
Compiled from the merge history across the Notion Habit Heroes app and this site, October 5 to 11, 2026. Monday is empty on the map. Friday has a single merge.
