You

{#if section === 'lanes'} {#if lanePool} {:else}

Loading…

{/if} {:else if section === 'calmset'}

Your calm set

The gentle daily loop shown on Highlights and Play — a finite "today's set" you can finish and feel caught up. Choose what fills yours, like building a workout. No pressure, no streaks; uncheck anything you'd rather not see there.

    {#each RITUAL_ITEMS as it (it.key)}
  • {/each}
{#if calmEnabled.size === 0}

Your calm set is empty — it won't show until you add something.

{/if}
{:else if section === 'boundaries'} {:else if section === 'history'}

History

{#if historyItems.length}{/if}

Stories you've opened or swapped away — so an accidental Replace stays recoverable. {auth.user ? 'Synced across your devices.' : 'Kept on this device.'}

{#if historyItems.length} {:else}

Nothing yet — stories you open or swap away will appear here.

{/if}
{:else if section === 'saved'} {#if !auth.user}

Sign in to save articles and find them here.

{:else if savedShown.length}
{#each savedShown as a (a.id)} {/each}
{:else if savedReady}

Nothing saved yet — tap Save on a story to keep it here.

{:else}

Loading…

{/if} {:else if section === 'following'} {#if !auth.user}

Sign in, then follow sources and topics to build your own calm lane.

{:else}

Following

Sources and topics you follow feed your Following lane. Open any source or grouping and tap Follow to add it.

{#if follows.length}
    {#each follows as f (f.kind + ':' + f.value)}
  • {f.kind} {f.kind === 'tag' ? f.name.replace(/-/g, ' ') : f.name}
  • {/each}
{:else if followsReady}

You're not following anything yet.

{:else}

Loading…

{/if} {/if} {:else} {#if auth.user} {}} />

Daily digest

A calm morning email — today's handful of good things, with a one-tap unsubscribe. No streaks, no noise; just the brief in your inbox.

{:else}

Sign in from the home page to manage your profile, saved articles, and devices.

{/if} {/if}