Repository navigation
feat(plus): turn the feed scroll stopper into a Plus promotion - #6868
Open
tsahimatsliah wants to merge 14 commits into
Open
tsahimatsliah wants to merge 14 commits into
tsahimatsliah wants to merge 14 commits into
Conversation
The in-feed "Still scrolling? Let's fix that" banner sold the Presidential Briefing. Nimrod asked for it to promote Plus instead. The banner keeps its slot, flag (brief_feed_banner_page), once-a-day cadence via alerts.briefBannerLastSeen, and the scroll target id so analytics line up across the switch; only the content and the gating on today's brief change. Content follows the Plus entry-point kit: bacon Plus tile, verb-first perks single-sourced from plusFeatureListApiFirst (the four that act on the feed), bacon Get Plus button, Impression/UpgradeSubscription logging via usePlusSubscription. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Storybook "Features / Plus scroll stopper" stacks the shipped banner with ten alternatives, each pulling a different lever (live demo, the reader's own numbers, self-aware ad framing, dev-brand terminal, restraint, price anchor, low-salience strip). Sample numbers stand in for what the loaded feed would report. The Providers wrapper moves out of the entry-points story so both stories can render the real shared components. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replaces the ten-variant exploration with one direction: the landing page's glass-and-aurora frame around a two-column strip. Left is the pitch (Plus mark, headline, real price, Get Plus, refund line); right is six feature chips using the Plus page's colored tiles, each driving a live mock of the feed inside a tiny app window. It rotates every four seconds until the reader picks a feature, then holds. Stories show it in the feed slot, on its own, and without autoplay. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Left column is down to the Plus tile, the headline, Get Plus and one price line. The perk verb moves into the mock window's title bar as a colored badge, which drops the caption row and the per-preview status lines. The window shrinks to 9.5rem, chips fit one row, and the frame padding tightens, taking the strip from about 300px to 254px at feed width. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The strip's width in the feed depends on column count and the sidebar, not just the viewport, so its layout now follows its own width with container queries: stacked below 600px, a header row (headline left, CTA right) from 600px, two columns from 1000px, and a capped preview column from 1400px. The chip row scrolls horizontally when it does not fit and keeps the active chip in view; autoplay only runs while the strip is in view. The Plus tile is gone, the button already carries the glyph. Folders and Briefing get real "before" states (a flat pile of saves, a scanning header with skeleton lines) instead of an empty window during the reveal delay. The "Every width" story renders the strip at eleven widths side by side, and the feed story matches the real column counts. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Below the two-column width the head is one row: headline and price on the left, the button on the right, so phones and tablets lose a full row of height. The two-column layout keeps the vertical stack. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The global flex-shrink reset kept the headline block from shrinking, so the headline refused to wrap and pushed Get Plus off the card. The copy block now takes flex 1 1 0 and the badge text may shrink. Under 420px containers the headline drops to the title3 size and the window label hides so the perk badge has room. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…the window The button goes back under the headline in every layout and switches to the plain Primary variant, which reads white on the dark glass. The mock window drops its browser chrome (dots and URL) and leads with the perk pill on the left as a caption for the preview under it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…aude/plus-feed-banner
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Feature tabs lose their border and shadow and mute their icon tile when inactive, so they stop competing with the Get Plus button. Every preview now fits the window at every width: tighter rows, Clean titles down to one row under the bait, a 12px taller window for Ad-free's three rows, the feeds sidebar sized by container width with names that never wrap, and tag and muted-word rows that clip instead of wrapping. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nimrod asked (Slack) to change the in-feed "Still scrolling? Let's fix that" briefing banner into a Plus promotion.
What changed
PlusFeedBanner(components/plus/PlusFeedBanner.tsx) replacesBriefBanner+BriefBannerFeed. Same headline hook, then "daily.dev Plus cleans up the feed you already read every day.", four verb-first perks single-sourced fromplusFeatureListApiFirst(Removes every ad, Rewrites clickbait titles, Filters out keywords you mute, Builds feeds you can query), and a bacon Get Plus button to/plus.brief_feed_banner_page) and the once-a-day seen logic onalerts.briefBannerLastSeenare unchanged, so the banner keeps appearing exactly where and as often as before. The "has a brief today" gate is dropped since it no longer applies.impression/upgrade subscriptionwithtarget_type: plus,target_id: scroll(the same target id the brief banner used), viausePlusSubscription.promoFeedBannerPage,isPromoBannerEligible,promoBannerPage.Screenshots
Light, dark, and 375px in the Storybook story. Perks wrap to multiple lines on phones.
Verification
PlusFeedBanner.spec.tsx(6 tests) and the Feed banner integration test pass.pnpm --filter webapp test: 110 suites / 844 tests pass.tscclean; strict typecheck guard on changed files passes.🤖 Generated with Claude Code
Preview domain
https://claude-plus-feed-banner.preview.app.daily.dev