Skip to content

feat(giveback): baseline /giveback page behind feature flag (Phase 1)#6139

Draft
tsahimatsliah wants to merge 20 commits into
mainfrom
feat/giveback-mvp
Draft

feat(giveback): baseline /giveback page behind feature flag (Phase 1)#6139
tsahimatsliah wants to merge 20 commits into
mainfrom
feat/giveback-mvp

Conversation

@tsahimatsliah

@tsahimatsliah tsahimatsliah commented Jun 3, 2026

Copy link
Copy Markdown
Member

Summary

Phase 1 of the Giveback initiative — a flag-gated, mock-backed baseline of the /giveback page so design can review the core layout and feel before we layer richer interactions.

This PR is purely additive: a new route + a new packages/shared/src/features/giveback/ folder. It touches no existing surfaces and renders nothing when the flag is off.

What's included

  • featureGiveback flag (default on in development only, off in prod).
  • Typed model (types.ts) with compliance fields (isLoveAction, donationEligible, isComplianceSensitive, isRewarded) and full status enums — shaped to mirror the intended backend GraphQL contract for a clean future swap.
  • Mock campaign/levels/profile (mock.ts) + GivebackContext holding state and the dev review controls.
  • Baseline UI:
    • GivebackHero — mission framing ("Daily Dev funds the donation. You help unlock it.")
    • CommunityGoalProgress$X of $10,000 with progress bar + honest pending note
    • PersonalRoadmap — level path (reuses QuestLevelProgressCircle) with locked secret-reward tiles
  • GivebackReviewToggle — minimal dev-only control to preview goal % (0/25/50/99/100) and level (1–5). The full QA/dev panel comes in a later phase.

Out of scope (later phases)

Action catalog, submission win-moment + thresholds, causes + Love actions, community feed + celebrations, full QA/dev panel, entry points (Wallet/Profile/banner/feed), geo-gating + paid-flow, public page, and backend wiring. See the master plan.

Test plan

  • Flag off (prod default): /giveback redirects home, renders nothing; no existing surface affected.
  • Flag on (dev): page renders hero + community goal + roadmap.
  • Dev review toggle changes goal % (0/25/50/99/100) and level (1–5); progress bar and current-level highlight update.
  • Secret-reward tiles show as locked mystery until the holding level is reached.
  • Responsive (mobile/desktop) + reduced-motion friendly.
  • node scripts/typecheck-strict-changed.js passes
  • eslint clean on changed files
  • RTL specs pass (src/features/giveback/components/GivebackPage.spec.tsx)

Made with Cursor

Preview domain

https://feat-giveback-mvp.preview.app.daily.dev

Phase 1 of the Giveback initiative: a flag-gated, mock-backed baseline of the
/giveback page so design can review the core layout. Purely additive - new route
plus a new shared features/giveback folder, touching no existing surfaces.

- featureGiveback flag (default on in development only)
- Typed model with compliance fields + full status enums (mirrors intended API)
- Mock campaign/levels/profile + GivebackContext with dev review controls
- Baseline UI: hero, community goal progress, personal roadmap/levels with
  locked secret-reward tiles
- Minimal dev review toggle to preview goal % and level states
- RTL specs for baseline render + toggle behavior

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
daily-webapp Ready Ready Preview Jun 9, 2026 11:15am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
storybook Ignored Ignored Jun 9, 2026 11:15am

Request Review

Default the giveback flag to true and render the route based on the flag
value instead of blocking on useConditionalFeature loading, so the page
is reviewable in preview/staging where encrypted features can't be
decrypted locally.

Co-authored-by: Cursor <cursoragent@cursor.com>
Provides a backend-free way to review the Giveback mock UI and its states
via Storybook, independent of app boot/GrowthBook.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ss bar

- Kickstarter-style hero: funding summary + "Join the campaign" CTA
- Restructure tabs: Causes (with why intro), Impact (with rewards roadmap),
  Why (stretch goals + impact), Take action, Updates, Comments, FAQ
- Collapse sections to single titles; homepage-style tab bar (no blur)
- Fix brand-color contrast by switching saturated *-subtlest fills to *-flat
- Casino polish: meter shine, coin stream, reward pop, live activity dot
- Sticky bar now shows level/contribution with an action-focused CTA
- Budget-driven campaign: remove deadline/days-to-go

Co-authored-by: Cursor <cursoragent@cursor.com>
…nd background

- Replace background grid/blobs with daily.dev brand gradient canvas
- Match post-page/modal comment thread design (flat, indented, connectors)
- Slim Why tab to a sharp 3-beat narrative and promote the headline
- Make sponsor money prominent on Impact with a goal-linked mini progress bar
- Flatten off-brand sponsor banner, compact legal footer, fix sticky-bar overlap

Co-authored-by: Cursor <cursoragent@cursor.com>
…video

- Add iOS-storage-style SponsorBudgetBar split by color with hover-to-swap logo
- Show the bar on Impact and Sponsors tabs; flatten the "into the pot" panel
- Rank top 3 sponsors with gold/silver/bronze medals (replaces clashing tier text)
- Use uniform green for sponsor card amounts; drop brand color from sponsor bar
- Embed the campaign video in the hero via a lightweight click-to-play facade

Co-authored-by: Cursor <cursoragent@cursor.com>
- Replace all em dashes in visible copy with natural punctuation/sentences
- Drop AI-sounding patterns: negative parallelisms, repeated "real", mirrored phrasing
- Update tests for the two changed copy assertions

Co-authored-by: Cursor <cursoragent@cursor.com>
…polish

- Add action-to-pot reward loop with count-up and celebration overlay
- Use real sponsor logos with initials fallback; monochrome podium ranks
- Sound/haptics toggle, circular level ring, 3-col actions, always-on love
- One-line legal footer, brand-blended sticky bars, home-style tabs

Co-authored-by: Cursor <cursoragent@cursor.com>
- Standardize action CTAs to text-only "Take action" across pages
- Remove star icons; keep hero "Join the campaign" with a tiny icon
- Drop the separator border above the "Just for love" list

Co-authored-by: Cursor <cursoragent@cursor.com>
…lish

- Use overflow-clip on the new-layout card so sticky tab bars work
- Make the funding bar sticky so it aligns to content, not the viewport
- Add active-tab underline indicator; increase footer clearance
- Replace hero label with full logo + separator + Giveback title
- Remove sound feature (toggle, hook) and the closing-CTA eyebrow
- Clip only decorative glows so CTA hover effects aren't cut off

Co-authored-by: Cursor <cursoragent@cursor.com>
tsahimatsliah and others added 2 commits June 6, 2026 21:57
Add reusable GivebackMascot component (genie-themed daily.dev charm)
with idle bob + glow animations, mount it in the Why narrative, and
ship the genie asset to both webapp and storybook public folders.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Fold the FAQ into the Campaign tab and drop the standalone FAQ tab plus
  the "what we unlock together" and "in real terms" sections
- Redesign the leaderboard climb into a single plain-language goal with a
  bar anchored by both standings
- Limit the action catalog to 12 cards with a "Show more" expander
- Make every action card clickable, routing love actions to a compliant
  appreciation view
- Anchor the hero brand gradient to a fixed band, add a bronze sponsor tier
  with rounded markers, and refine Learn more link affordance

Co-authored-by: Cursor <cursoragent@cursor.com>
- Derive the leaderboard "You" amount from the live earned total so it
  matches the "Your contribution" card, and reorder neighbor ranks
- Personalize the "Your contribution" card and roadmap, restructure causes
- Refresh the dog charm mascot, sponsor tiers, and headline layout

Co-authored-by: Cursor <cursoragent@cursor.com>
…s, simpler HUD

- Map branded action platforms to real logos (Simple Icons/SVGL) with an
  internal-icon fallback on load failure; shrink the action icon tile
- Use the dog charm as the campaign video poster, drop placeholder text, and
  make the play button pop with a dark halo and white ring
- Make the sticky tabs strip full-bleed (blur + border) while keeping tabs
  aligned to the content
- Simplify the sticky funding bar to level, amount unlocked, one explicit
  next step, and the CTA, with mobile-safe truncation

Co-authored-by: Cursor <cursoragent@cursor.com>
- Shrink the video play button and size the icon so the play triangle reads
  clearly instead of a cramped purple blob
- Remove the "3-day streak" stat from the "Your contribution" card

Co-authored-by: Cursor <cursoragent@cursor.com>
- Show full live-rising contributor count with count-up animation
- Portal modals to body so they center and overlay above sticky tabs
- Re-anchor filters and main tabs on change to avoid scroll jumps
- Stronger sponsor tier differentiation (medal chips + brightness steps)
- Fix overflow-avatar contrast and separation; drop video badge

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the boxed/ringed tier bands with an editorial sponsor wall that
matches the page's soft pastel tone: brand-colored logos on gently
floating white chips, eyebrow-style tier labels, and soft brand glows.
Gold leads on its own row inside a warm halo; silver and bronze share the
row beneath it, left-aligned. Tier names carry the ranking, so the extra
"partners" blurbs are dropped.

Co-authored-by: Cursor <cursoragent@cursor.com>
tsahimatsliah and others added 2 commits June 9, 2026 14:09
A failed or blocked log request (unreachable endpoint in local dev, ad
blockers) rejected the fire-and-forget mutation with no catch, surfacing
the Next.js dev error overlay on nearly every interaction. Swallow the
final failure since analytics already retries and must never reach the UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the placeholder causes with only the organizations from the final
copy doc, using its categories and mission copy. Adds HackYourFuture;
removes Wikimedia, EFF, Internet Archive, Green Web, and Restart Project.
Update dependent live-activity events, the impact grid, and the cause
filter test to reference remaining causes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant