Skip to content

Paint the board instantly instead of showing a loading screen#80

Merged
danielchalmers merged 1 commit into
mainfrom
claude/exciting-bose-14597f
Jul 6, 2026
Merged

Paint the board instantly instead of showing a loading screen#80
danielchalmers merged 1 commit into
mainfrom
claude/exciting-bose-14597f

Conversation

@danielchalmers

Copy link
Copy Markdown
Owner

Summary

  • Remove the "Opening Dayboard" loading screen, which flashed on every new tab
  • Hydrate the first render synchronously from a localStorage mirror of chrome.storage.sync, so the board is in the very first paint; the authoritative sync read reconciles afterward and keeps the mirror fresh on every read/write/sync change
  • Stop load-time entrance animations: the page fade is gone and card-enter now only plays for cards that appear while the board is already on screen (added/restored); the empty state no longer animates either
  • If the sync read fails while a cached board is showing, keep the board instead of swapping to the error screen

Trade-off

If the board changed on another device since this machine last saw it, the last-known board shows briefly before the synced version swaps in (stale-while-revalidate) — preferable to a blank frame or spinner on every tab open.

Testing

  • npm run typecheck clean
  • All 117 unit tests pass, including 3 new ones covering the cache round-trip and corrupt-cache fallback

Drop the 'Opening Dayboard' loading view. New tabs no longer block on
the async chrome.storage.sync read: the board is mirrored into
localStorage and the first render hydrates synchronously from it, with
the authoritative sync read reconciling afterward. Load-time entrance
animations are gone too; the card-enter animation now only plays for
cards that appear while the board is already on screen.
@danielchalmers danielchalmers force-pushed the claude/exciting-bose-14597f branch from 91383d4 to 0567d1f Compare July 6, 2026 03:17
@danielchalmers danielchalmers merged commit 97d8ff0 into main Jul 6, 2026
5 checks passed
@danielchalmers danielchalmers deleted the claude/exciting-bose-14597f branch July 6, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant