A short week of six days, Tuesday to Sunday, with two bursts: 21 changes on Tuesday, 11 on Sunday, little in between. 36 changes in all. Your habits now keep the order you give them. The widget shows Season 0 to anyone who is not in a competition yet. Competition scoring got a single rule: you score from the day before you join. A newsletter bug that quietly skipped some subscribers is fixed. The Season 0 post is live on the blog. The landing page has a new hero video.
Sprint map
One row per story arc, one column per day.
| Tue 15 | Wed 16 | Thu 17 | Fri 18 | Sat 19 | Sun 20 | |
|---|---|---|---|---|---|---|
| Habits in your order | ||||||
| The widget points at Season 0 | ||||||
| Tracking without Notion: groundwork | ||||||
| Connecting: one call fewer, the right database | ||||||
| Past competitions failed to load | ||||||
| Scoring is derived, not accumulated | ||||||
| The newsletter skipped some subscribers | ||||||
| Season 0 post, hero video, search titles | ||||||
| Under the hood |
Wednesday and Thursday are empty on purpose. The week merged in two bursts, Tuesday and Sunday, with a small tail on Friday and Saturday.
Merges per day
The arcs
In rough chronological order.
Habits in your order
Edit Habits now lets you put your habits in the order you want. Drag a row by its handle, or use the Up and Down buttons at the top of a row's settings. The order is saved with your habits. The widget's habit list follows it. The habit columns of your Notion journal views are rearranged to match; columns that are not habits stay where they are. The streak view and the share card keep sorting by streak length. If you never reorder, nothing changes.
The widget points at Season 0
If you belong to no running or upcoming competition, the widget's competition tab used to show one generic button. It now shows a card for the featured season: the name, the dates, a countdown, how many heroes have joined, one button to join. Over the day the card got its layout right: past competitions moved back to the bottom, the button spans the full width, the sleeping dragon shows through. Three selection bugs went with it. The podium of a competition you just finished stays reachable as its own chip next to the season instead of being pushed out by it. A duel that ended recently no longer pulls you onto the duel tab on first open, so you see the season card. A podium you chose to hide no longer sticks as the selected entry after you join a competition.
Tracking without Notion: the groundwork
Work started on a way to track habits without a Notion database, aimed at the phone. This week laid the server side: an account can carry a tracking mode, a habit list can be saved without Notion, habits can be checked off for today or yesterday without Notion. All of it sits behind a switch that is off. Nothing changes for anyone yet. Notion-connected accounts keep working exactly as before; the switch only controls who can opt in once it opens.
Connecting: one call fewer, the right database
Connecting Notion by search used to run two searches per attempt. The first, a search by template name, never found anything the second did not, so it is gone. Each attempt now costs one call. When a returning user reconnects, the search now prefers the database they had connected before over a newer copy of the template in the same workspace. Picking the copy used to look like a database change, which resets synced history. Connecting straight after duplicating the template no longer writes an error to the log while Notion is still copying the page. That state is expected; the connect simply retries.
Past competitions failed to load
For users with a finished competition, the widget's past-competitions block and the podium failed to load after the deploy of Sunday, September 13. The shorter database transactions from the previous edition had a side effect: the podium lists were read after the transaction had already closed. The fix copies them while the transaction is open. A regression test that fails on the old code guards it. The fix went out this week.
Scoring is derived, not accumulated
Competition scores used to be running totals, updated by the difference each sync found. Two counters had two rules for when a member's days start counting. That surfaced when someone joined a running competition on day four, then ticked off day three in Notion: the points arrived, the perfect day did not. Scores are now recomputed from your journal rows on every sync, over one window with one rule: you score from the day before you joined. Whoever joins a running competition can still edit yesterday's entry, so yesterday counts. Earlier days never do. Days you spent away after leaving a competition stay excluded. On the live leaderboard, average points and average completion now divide by the days you were actually scored, not by the days the competition has been running, so a late joiner is no longer dragged down by days before they were in. The podium at the end keeps ranking over the whole competition length, unchanged.
The newsletter skipped some subscribers
A dry run of the Season 0 newsletter showed one recipient skipped. The cause: completing a password reset clears a one-time verification link, and the newsletter sender still refused to mail anyone without it, a guard left over from an older unsubscribe mechanism. Those subscribers were silently dropped from every digest. The guard is gone, so every opted-in subscriber gets the next one.
Season 0 on the blog, a new hero video, sharper search titles
The post Season 0 opens October 1 is published. The landing page has a new hero video, recorded by the same automated harness that drives the demo: tick habits in Notion, update the widget, climb a leaderboard, duel a friend, in a loop of eleven seconds. Two pages that already rank on the first page for "habit hero" searches got titles that answer that query. The home page title now says the tracker is free.
Under the hood
The site now deploys from its build pipeline rather than from a Git integration; the build is the same, only the hand-off changed. A merge request on the server can trigger the full end-to-end suite on demand, not only nightly. The scheduled jobs that watch logs, reviews and feedback are tracked in the repository and raise an alert when a run fails. Angular and Material moved to 22.1.7.
Compiled from the merge history across the Notion Habit Heroes app and this site, September 15 to 20, 2026. Wednesday and Thursday are empty on the map: the week merged in two bursts, Tuesday and Sunday, with a small tail on Friday and Saturday.
