Notes from every releaseSeek and you shall find

Three focused improvements: favicon contrast handling, Chrome Web Store packaging, and corpus search deduplication.

Improved

  • Favicons with low contrast now render on a light plateIcons are measured for WCAG 3:1 contrast against the background; those that fail receive a square plate while valid marks and compact icons are recognized and left untouched. Pre-existing rows continue to render as before. 48f292e 1b5ea7e 32e4508
  • Corpus search now returns one row per articleNew persisted flags on links ensure each article appears once in search results regardless of how many users saved it, with faster ranking queries and improved deduplication. ada6455

This release adds lifecycle and onboarding emails with sender logo authentication, improves YouTube metadata extraction and canonical validation, and surfaces more pipeline failures as warnings and errors.

New

  • Added lifecycle emails and automatic onboarding enrollmentLifecycle emails are now complete and new users are automatically enrolled in onboarding sequences. Sender logo authentication via BIMI is prepared. 89fe981 5022732 c00aa8c

Improved

  • Improved YouTube metadata via oEmbed with better canonical guardsYouTube metadata is now fetched through oEmbed, rejected responses are logged, and unrendered template segments are rejected in declared canonicals. a41e666 70122e1 169b256

This release fixes a read-state race that could put already-read rows back into the unread pile, improves the save progress indicator and search grace period, adds keyboard navigation and outside-click search closing, ships lifecycle emails for inactive readers, and stabilizes the E2E suite.

New

  • Keyboard navigation for reading views and quick jump to your own pageAdded keyboard cycling through reading views and the Y shortcut that jumps directly to your own page. ee1639e b772b03
  • Lifecycle emails for inactive readersAdded a set of emails that reach out to readers who have become inactive, including dynamic links and simplified row rendering. 0ac616b 0ec8b5b e951237

Improved

  • Search stays free until your own archive is large enough to justify payingGrace now only applies to searches of your own pile. Search also closes on outside clicks, and the grace logic was hardened so it never leaks to other users' content. 0417034 e3e3969 5d1f001

Fixed

  • Read rows no longer reappear in the unread pile after returning from a linkA visibilitychange race between rebuild() and replay() could cause a just-read row to be swapped back into both the unread pile and the archive. The client now keeps a short local record of marks it has sent and filters every list swap through it. b706776
  • Save progress line now waits for the actual fetch to finishThe alert line no longer uses a fixed five-second timer. It now follows the queued save id (or the new owner event on the home page) and clears only when the work is done, with a stall guard as a safety net. c678c99 991e66a
  • Mouse drag restored for links leaving the feedDragging a link out of the feed with the mouse works again. 7ce3ff7

This release improves list navigation and rendering on mobile, adds cross-browser Gemini attachment support, and includes several internal fixes and configuration updates.

Fixed

  • List remembers your position and avoids unwanted paging or swipe driftThe first paint is now dark, swipe-to-clear stays locked to its axis, the cursor returns to the exact row left off on (even after deep pagination), and the feed no longer pages itself to the bottom when a page arrives in Chrome. 08a68fd 803cd55 0844cfe
  • Gemini attachments work across Chrome, Firefox, and SafariAttachment handling for Gemini has been restored and extended to all supported browsers with updated manifests and injection logic. d1bf0ec 4af014e

Three focused fixes improve reading stability: cursor position holds across view changes, piles load in their remembered order without a visible correction step, and daily stats are now counted in each reader's own timezone.

Fixed

  • Cursor stays stable when switching viewsSwapping between views no longer jumps the reading position. ba3bc9a
  • Piles load directly in their saved orderA pile now arrives in its own remembered order on the first request instead of rearranging under the finger after a second fetch. 4bacef9
  • Daily stats counted in your own timezoneDay boundaries for streaks, today, this week and similar stats now follow the reader's local calendar (including DST) instead of UTC. 23e9107

This release refines navigation and header behavior so the feed and personal page feel distinct, improves the help and tour experience, gives each pile its own remembered sort order, and cleans up a few UI details.

Improved

  • Your own page now shows your username beside a compact wordmarkTyping the bare domain while logged in lands on your profile. The global feed stays at / for visitors and gains /feed for logged-in use; old query strings are preserved on redirect. 87faf3e
  • Help modal now plays the tour and speaks the wordmarkThe tour is embedded in the help modal with an intro poster and spoken pronunciation. Several layout, hover, and accessibility bugs in the modal were fixed along the way. 8533ba7 073bf0f 0a4b1e5 4c21eb8 456c120 d24f2f8
  • Search trigger is now just the magnifier iconThe prompt text moved into the open field's placeholder, letting the view rail share the seek row at every width. 91f18ad
  • Each pile remembers its own sort orderTapping the active tab cycles that pile's order. Unread and Archive keep independent sort states; the current order is shown on hover. 7740daf
  • Header menu simplified to account actions; privacy shown as a stateThe monogram is now the single entry point. Privacy and tl;dr appear as a switch in the account menu; the key table moved behind a Keys row. 6862175

Fixed

  • Header no longer shifts when moving between feed and your pageThe brand row now reserves space for the full wordmark and bottom-aligns its contents so the subtitle and list stay in the same position on both pages. 05ee470 7b194e2
  • Saved files now use the original filenameA saved file is named after the file itself rather than its source URL. 0e64239

read later

For all the tabs you promised to read.
Save to read. Read to clear.

Close tabs. Keep links.