feat(squads): redesign the squad page and add Verified Company Squad features - #6732
Merged
Merged
Conversation
…features Replaces the legacy squad page for every squad with the designer's profile-style direction (storybook squad-page, 1. Direction), with no feature flag, and deletes the legacy components. - Header with cover, round logo, stats and one action row; right column that becomes an About tab below laptop and stays in the DOM for SEO; composer, pinned posts, infinite feed, role-specific empty states, private wall, View as a visitor and the share card. - Members, Pending posts and a Manage area for staff. Legacy /edit, /analytics and /moderate URLs redirect permanently. - Paid surfaces, each rendered only when the squad's feature is on: verified badge and card, Links widget (dofollow) and website, products. - Ad-free squads get no ads or brand sponsorships on their feed, search results and posts (page, modal, focus and reader). - Spotlight can be scoped to a squad, with scoped type-ahead suggestions. - Feed.tsx compared against the squads directory feed name, so the squad feed ad cadence never applied. Spec: docs/verified-company-squad.md. Requires dailydotdev/daily-api#4314.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
- Pinned posts: the feed now leaves pins out, so staff lost every way to unpin. Pinned cards get an Unpin control for viewers with the pin permission, and pinning or swapping from a feed card refreshes the pinned strip, which kept showing the old pins until it went stale. - JSON-LD `sameAs` listed the stored website and links of squads without the `links` feature, leaking a paid surface into the server HTML. - Members of a private squad lost the Joined button; only Join and Boost are dropped for private squads. - Manage > Links dropped a pasted link that was not added before Save. - The product name field caps at the API's 100 characters. - Mock parity: the products shelf sits above the Posts and About tabs and stays on both, the squad search has its own empty state, the options menu lists Members for moderators only and the invitation link for visitors only, member rows show Follow only to non-staff, the Analytics widget carries the mock's caption and rows, Pending posts has its intro line, and /manage highlights the section it opens on laptop. - Remove SquadUsersModal, left unused by the deleted members modals.
A post modal opens with the feed card's post, whose source carries no features (the feed fragment stays lean), and kept it as the active post. Brand sponsorships under the modal never saw `adFree`, and the sidebar and comment ads were requested before the post query landed. - The modal's active post takes the source of the loaded post. - The sidebar and comment ads wait while a squad's features are unknown, and the comment ad no longer renders a cached ad for an ad-free source. - Brand sponsorships are blanked for the ad-free squad's own feed cards.
…alytics days The mock shows one column of list cards on the squad feed and its search results, so both are list-only feeds without the list frame that doubled the page card border. Empty analytics days get a baseline bar so a squad with sparse impressions still reads as a 45 day strip.
The tiles show lifetime totals while the widget caption covers the 45 day strip, so the tiles now say Lifetime impressions and Lifetime reach.
Pinned cards fall back to the shared post's image, then to the standard post cover placeholder, through the shared Image component.
The page waited for the viewer's own squad query before showing the staff widgets, the composer and the phone actions, so they pushed the rail and the feed down after the first paint. The viewer's role now comes from boot's squad memberships until that query lands, the composer and the lock card share a height, the member facepile and the analytics strip keep their size while loading.
tsahimatsliah
added a commit
that referenced
this pull request
Sep 27, 2026
main replaced SquadHeaderBar with SquadActions (#6732), so the logged-out "Learn how Squads work" button now takes SquadOptionsMenu's place there. Mockup-to-eng-pass: 1 Co-Authored-By: Claude Opus 5.5 <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.
Summary
Brings the designer's squad page direction (storybook
squad-page, "1. Direction" and use cases, #6721) into production and adds the paid Verified Company Squad features.Merge order: requires dailydotdev/daily-api#4314 in production first. This PR queries
Source.featureson post pages and thesourceargument ofsearchPostSuggestions. The homepage feed fragment is unchanged.No feature flag: the new page replaces the legacy one for every squad, and the legacy components are deleted.
Squad page (every squad)
Sub-pages and Manage
/squads/[handle]/members/squads/[handle]/products/squads/[handle]/pending/squads/[handle]/manage/[section]/edit,/analytics,/moderateand/squads/moderate?handle=redirect permanently.Paid (per-squad feature map, set by sales through Smith)
Each renders only when its key is on; free squads, admins included, see nothing of it.
verified: badge and the Verified Company Squad card.links: Links widget and website in the meta line, withoutnofollow. Product and post links keep it.products: shelf, Products page, add and edit form.adFree: no ads or brand sponsorships on the squad feed, its search results and its posts (page, modal, focus, reader), through oneisSourceAdFreerule.Search
Spotlight can be scoped to a squad (header search button and Cmd+K on the squad page): pinned and latest posts, scoped suggestions, See all results, widen to all of daily.dev.
Also
Feed.tsxcompared against the squads directory feed name, so the squad feed ad cadence never applied since feat: squad list view #4710.SquadActionButtonannounced every Join button as "You are not allowed to join the Squad" to screen readers.Test plan
SquadPagetest covers the viewer matrix, private wall, preview, each paid key, Manage entries anddisableAdsPreview domain
https://claude-verified-squad-paid-featu.preview.app.daily.dev