feat: custom feeds chips#3918
Conversation
|
🍹 The Update (preview) for dailydotdev/api/prod (at 73e3fa6) was successful. ✨ Neo ExplanationRoutine container image rollout deploying the tag-chip feeds feature, which auto-seeds per-keyword custom feeds for non-Plus users and increases the per-user feed cap from 20 to 35; the access control change (removing the date-based Plus gate for custom feeds) is the main logic worth verifying. ✅ Low RiskThis deployment rolls out the tag-chip feeds feature: a new
Resource Changes Name Type Operation
+ vpc-native-api-clickhouse-migration-95a31230 kubernetes:batch/v1:Job create
~ vpc-native-clean-zombie-images-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-stale-user-transactions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-source-public-threshold-cron kubernetes:batch/v1:CronJob update
~ vpc-native-expire-super-agent-trial-cron kubernetes:batch/v1:CronJob update
~ vpc-native-ws-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-highlighted-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-gifted-plus-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-weekly-quests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-bg-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-channel-highlights-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-expired-better-auth-sessions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-old-notifications-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-history-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generic-referral-reminder-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-trending-cron kubernetes:batch/v1:CronJob update
~ vpc-native-sync-subscription-with-cio-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-daily-quests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-temporal-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-personalized-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-opportunities-cron kubernetes:batch/v1:CronJob update
~ vpc-native-squad-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
~ vpc-native-calculate-top-readers-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
~ vpc-native-private-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-achievement-rarity-cron kubernetes:batch/v1:CronJob update
~ vpc-native-materialize-monthly-best-post-archives-cron kubernetes:batch/v1:CronJob update
~ vpc-native-validate-active-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-daily-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-channel-highlights-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-updated-sync-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-post-analytics-history-day-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tags-str-cron kubernetes:batch/v1:CronJob update
~ vpc-native-channel-digests-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-db-migration-95a31230 kubernetes:batch/v1:Job create
... and 12 other changes |
|
@claude review |
|
Claude finished @capJavert's task in 2m 15s —— View job Code review —
|
Adds backend support for "tag-chip feeds": the daily.dev experience where the explore-tag chip strip is replaced by per-tag custom feeds owned by the user, navigable like any other custom feed. Free users get
this surface too, so a chunk of what used to be Plus-only on custom feeds is now reachable for free on these specific feeds.
Rollout is fully client-controlled — the new feedList(includeTagChipFeeds) argument lets apps opt in behind its own GrowthBook flag, while old browser-extension versions that don't know about the argument keep
getting exactly the response they got before. Legacy feedByTags / feedTagsList / /explore/[tag] resolvers are intentionally kept for the same backwards-compatibility reason.
Tag-chip feeds are lazily seeded the first time a user opts in, sourced from the same place the old chip strip used, gated by a one-shot user flag so failures and concurrent calls don't double-seed, and bounded
by the per-user feed cap (bumped 20 → 35). Free users on a tag-chip feed get the legacy /explore/[tag] recommendation algorithm; Plus and grandfathered users keep the existing custom-feed algorithm, so this PR is recommendation-neutral for everyone who was already using custom feeds.