Skip to content

feat: add versioned embeddable widget API with CSP controls#821

Merged
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
luciachizaram:feat/embed-widget-809
Jun 29, 2026
Merged

feat: add versioned embeddable widget API with CSP controls#821
joelpeace48-cell merged 2 commits into
FinesseStudioLab:mainfrom
luciachizaram:feat/embed-widget-809

Conversation

@luciachizaram

Copy link
Copy Markdown
Contributor

Fixes #809

What changed

  • Versioned embed widget API at /embed/v1/:widgetType/:campaignId
  • Three widget types: card, leaderboard, progress
  • CSP frame-ancestors for security
  • Theme (light/dark) and accent color customization
  • Leaderboard with configurable row limit (1-50)
  • No PII leakage — only public display names
  • 60s cache headers

Endpoints

  • GET /embed/v1/card/:id — campaign card
  • GET /embed/v1/leaderboard/:id — leaderboard
  • GET /embed/v1/progress/:id — progress bar

How to test

  • Embed via <iframe src="/embed/v1/card/<campaignId>?theme=dark">
  • Test cross-origin rendering
  • Verify CSP headers in response

Add sandboxed iframe widgets for partners:
- GET /embed/v1/card/:id — campaign card with CTA
- GET /embed/v1/leaderboard/:id — top participants ranking
- GET /embed/v1/progress/:id — campaign progress bar + stats

Features:
- Versioned API (v1) for stable embeds
- CSP frame-ancestors control
- Theme (light/dark) and accent color params
- Leaderboard limit (1-50 rows)
- No PII leakage (public display names only)
- 60s cache headers

Fixes FinesseStudioLab#809
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

@luciachizaram is attempting to deploy a commit to the joelpeace48-cell's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 29, 2026

Copy link
Copy Markdown

@luciachizaram 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

@joelpeace48-cell joelpeace48-cell merged commit 26991e6 into FinesseStudioLab:main Jun 29, 2026
3 of 14 checks passed
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
feat: add versioned embeddable widget API with CSP controls
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
feat: add versioned embeddable widget API with CSP controls
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
feat: add versioned embeddable widget API with CSP controls
joelpeace48-cell added a commit that referenced this pull request Jun 30, 2026
feat: add versioned embeddable widget API with CSP controls
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.

Ecosystem: Embeddable leaderboard / campaign widget (versioned, sandboxed iframe)

2 participants