Skip to content

feat(campaigns): add backer-only exclusive content area on campaign pages - #1280

Open
AugistineCreates wants to merge 2 commits into
Fundable-Protocol:mainfrom
AugistineCreates:feat/1267-backer-exclusive-content
Open

AugistineCreates wants to merge 2 commits into
Fundable-Protocol:mainfrom
AugistineCreates:feat/1267-backer-exclusive-content

Conversation

@AugistineCreates

Copy link
Copy Markdown
Contributor

Summary

Adds a backer-only exclusive content area on campaign pages that allows campaign creators to publish rich-text updates and downloadable file attachments visible only to verified backers.

Closes #1267

Changes

  • Types & Utilities (apps/web/src/types/campaign-exclusive-content.ts):
    • Added models for ExclusiveContentPost, ExclusiveContentAttachment, PledgeGateStatus, and helper functions (formatFileSize, deriveTeaserFromRichText).
  • Pledge Content Gate & Publishing Service (apps/web/src/services/campaign-exclusive-content.service.ts):
    • Implemented checkPledgeStatus to verify whether a viewer is the campaign creator or has a positive verified contribution recorded for the campaign (with optional per-post minPledgeAmount thresholds).
    • Implemented publishPost, deletePost, and getFeed so verified backers and creators receive full richTextContent and attachment downloadUrls, while non-backers receive locked posts with redacted bodies/download URLs and teaser text preserved.
  • Hook & API Route (apps/web/src/hooks/use-campaign-exclusive-content.ts, apps/web/src/app/api/campaigns/[id]/exclusive-content/route.ts):
    • Added useCampaignExclusiveContent hook and GET / POST / DELETE handlers at /api/campaigns/[id]/exclusive-content.
  • Backer-Only Exclusive Content UI & Campaign Page Integration (apps/web/src/components/modules/campaign/exclusive-content/BackerExclusiveContent.tsx, apps/web/src/app/(overview)/campaigns/[id]/page.tsx, apps/web/src/app/campaigns/[id]/page.tsx):
    • Creators can compose rich-text posts (with formatting toolbar for headings, bold, italics, bullet lists, and quotes) and upload exclusive file attachments.
    • Verified backers see their verified pledge status badge, full rich-text posts, and file download buttons.
    • Non-backers see a blurred teaser preview (blur-sm) with a lock overlay and a Pledge to Unlock CTA linking to /campaigns/[id]/donate.
  • Tests:
    • Added service unit tests (apps/web/src/services/campaign-exclusive-content.service.test.ts), API route tests (apps/web/src/app/api/campaigns/[id]/exclusive-content/route.test.ts), and component tests (apps/web/src/components/modules/campaign/exclusive-content/BackerExclusiveContent.test.tsx).

Acceptance Criteria Checklist

  • Content gate checks pledge status
  • Creator uploads files or rich-text posts to backer-only area
  • Non-backers see a blurred teaser with a pledge CTA

@drips-wave

drips-wave Bot commented Oct 17, 2026

Copy link
Copy Markdown

@AugistineCreates Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d824f64c-134a-4ec3-a74e-3f443f433b59
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Utilitycoder Utilitycoder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix up the merge conflict and update your PR. Kindly ensure you offramp with Fundable at https://stellar.fundable.finance/offramp

@AugistineCreates

Copy link
Copy Markdown
Contributor Author

Please fix up the merge conflict and update your PR. Kindly ensure you offramp with Fundable at https://stellar.fundable.finance/offramp

fixed, please review

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.

Create a backer-only exclusive content area on campaign pages

2 participants