social-proof-widgets
Display real-time social proof including recent purchases, review counts, visitor counts, and verified buyer badges to build trust and boost conversions
Best use case
social-proof-widgets is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Display real-time social proof including recent purchases, review counts, visitor counts, and verified buyer badges to build trust and boost conversions
Teams using social-proof-widgets should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/social-proof-widgets/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How social-proof-widgets Compares
| Feature / Agent | social-proof-widgets | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Display real-time social proof including recent purchases, review counts, visitor counts, and verified buyer badges to build trust and boost conversions
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Social Proof Widgets
## Overview
Social proof widgets — recent purchase notifications, visitor counts, review badges, and low-stock indicators — reduce purchase anxiety and increase conversion rates by 10–30% on product pages. For Shopify and WooCommerce, dedicated apps (Fomo, TrustPulse, ProveSource) install these widgets without code. Building custom widgets is only necessary for headless stores with specific design requirements.
## When to Use This Skill
- When product pages have good traffic but low conversion rates
- When launching a new product that lacks reviews and needs other trust signals
- When testing whether social proof elements meaningfully impact CVR (A/B test required)
- When wanting to add real-time purchase notifications
- When building a low-stock urgency display based on actual inventory data
## Core Instructions
### Step 1: Choose the right social proof tool
| Platform | Best For | Shopify | WooCommerce | BigCommerce | Price |
|----------|---------|---------|-------------|-------------|-------|
| **Fomo** | Real-time purchase notifications | App Store | Plugin | Via JS | $19+/mo |
| **TrustPulse** | Recent purchases + live visitor count | — | Plugin | Via JS | $5+/mo |
| **ProveSource** | All platforms, highly customizable | App Store | Via JS | Via JS | Free tier; $20+/mo |
| **Judge.me** | Review count badge + verified buyer badge | App Store | Plugin | App Marketplace | Free tier; $15/mo |
| **Custom** | Headless stores, specific design needs | Via API | Via API | Via API | Dev cost |
**Recommendation:** Use **Fomo** for Shopify (best purchase notifications) and **TrustPulse** for WooCommerce. For review badges, use your existing review platform (Judge.me, Yotpo) — they include star rating badges automatically.
### Step 2: Set up social proof widgets
---
#### Shopify with Fomo
1. Install **Fomo** from the Shopify App Store
2. Go to **Fomo → Events → Shopify Orders** — Fomo automatically imports recent orders from your store
3. Configure the notification template:
- Display: first name and city (e.g., "Sarah from Chicago just purchased…")
- Show the product name and image
- Display within the last 48 hours
4. Go to **Fomo → Design** to customize the position and style of the notification toast (bottom-left by default)
5. Go to **Fomo → Rules** and set:
- Show only on product pages (URL contains `/products/`)
- Hide on cart and checkout pages
- Minimum 3 notifications to show before displaying the widget (prevents showing a widget with only 1 event)
6. Go to **Fomo → A/B Testing** to split-test the widget against a control group — always measure lift before enabling sitewide
---
#### WooCommerce with TrustPulse
1. Install **TrustPulse** from the WordPress plugin directory
2. Go to **TrustPulse → Create Campaign** and select **Recent Activity**
3. Configure:
- Data source: WooCommerce Recent Orders
- Display: customer name, city, product purchased
- Show: orders from the last 7 days
4. Set targeting rules: show only on product and shop pages; exclude checkout
5. For the visitor count widget, create a second **On Fire** campaign: "X people looking at this right now" — set a minimum visitor threshold of 5 before displaying
---
#### BigCommerce with ProveSource
1. Sign up for **ProveSource** and add the JavaScript snippet to your store via **Storefront → Script Manager**
2. Connect your BigCommerce store to ProveSource via the integration settings
3. Configure recent purchase notifications and visitor count widgets from the ProveSource dashboard
---
#### Custom / Headless
For headless stores, build a social proof API and client widget:
```typescript
// GET /api/products/:id/social-proof
// Returns real data only — never fabricate counts
export async function getProductSocialProof(req: Request, res: Response) {
const productId = req.params.id;
const [recentOrders, reviewSummary, stockLevel] = await Promise.all([
db.orderLineItems.findAll({
where: { productId, createdAt: { gte: subHours(new Date(), 48) } },
include: ['order.shippingAddress'],
limit: 10,
}),
db.productReviews.aggregate(productId),
db.productVariants.findMinStock(productId),
]);
// Anonymize PII — first name and city only
const recentPurchases = recentOrders.map(item => ({
firstName: item.order.shippingAddress.firstName,
location: `${item.order.shippingAddress.city}, ${item.order.shippingAddress.stateCode}`,
timeAgo: formatTimeAgo(item.createdAt),
productName: item.productName,
}));
return res.json({
recentPurchases,
reviews: { average: reviewSummary.avgRating, total: reviewSummary.total },
stockLevel: {
isLow: stockLevel > 0 && stockLevel <= 5,
quantity: stockLevel,
isSoldOut: stockLevel === 0,
},
});
}
```
Client-side purchase notification toast — using DOM methods to prevent XSS:
```typescript
class SocialProofToast {
private queue: Array<{ firstName: string; location: string; productName: string; timeAgo: string }> = [];
private isShowing = false;
async init(productId: string) {
const response = await fetch(`/api/products/${productId}/social-proof`);
const data = await response.json();
this.queue = data.recentPurchases.slice(0, 5);
this.showNext();
}
private showNext() {
if (this.queue.length === 0 || this.isShowing) return;
const purchase = this.queue.shift()!;
this.isShowing = true;
const toast = document.createElement('div');
toast.className = 'sp-toast';
const strong = document.createElement('strong');
strong.textContent = `${purchase.firstName} from ${purchase.location}`; // textContent prevents XSS
const span = document.createElement('span');
span.textContent = ` purchased ${purchase.productName}`;
const time = document.createElement('time');
time.textContent = purchase.timeAgo;
toast.appendChild(strong);
toast.appendChild(span);
toast.appendChild(time);
document.body.appendChild(toast);
setTimeout(() => {
toast.remove();
this.isShowing = false;
setTimeout(() => this.showNext(), 8000); // 8-second gap between toasts
}, 5000);
}
}
```
### Step 3: Add low-stock urgency indicators
Low-stock messaging ("Only 3 left!") drives urgency effectively — but only show real inventory counts. Fake urgency destroys trust when customers notice it.
**In Shopify:** Install **Urgency Bear** or **Hurrify** from the Shopify App Store — they read your actual Shopify inventory and display "Only X left" messages on product pages.
**In WooCommerce:** Enable WooCommerce's built-in low-stock display:
1. Go to **WooCommerce → Settings → Products → Inventory**
2. Enable **Show stock management at product level**
3. Enable **Enable low stock threshold** and set to 5
4. WooCommerce automatically shows "Only 3 in stock" on product pages when inventory falls below the threshold
**Custom thresholds:** Use CSS to style the low-stock message based on quantity levels.
### Step 4: A/B test social proof impact
Always test before deploying sitewide. Both Fomo and TrustPulse have built-in A/B testing.
For manual A/B testing:
1. Enable the widget for 50% of visitors using your platform's experimentation tool
2. Measure for at least 2 weeks and 200+ conversions per group
3. Compare conversion rate, AOV, and revenue per visitor between the groups
4. Only keep the widget if it shows statistically significant lift (p < 0.05)
## Best Practices
- **Only show real data** — fabricated purchase counts or invented visitor numbers erode trust when discovered; use a minimum threshold (5+ events) before showing any widget
- **Anonymize purchase notifications** — show first name and city only; never include order IDs, full names, or email addresses
- **Load social proof asynchronously** — fetch after page load using `requestIdleCallback`; never block the critical render path
- **Hide the widget on cart and checkout pages** — showing purchase notifications during checkout distracts from conversion; disable on these pages
- **Cap notification frequency** — show a maximum of 3 toasts per page session with 8+ second gaps between them
- **Use `textContent` for all customer-derived data** — prevents XSS vulnerabilities; never use `innerHTML` with customer names or locations
## Common Pitfalls
| Problem | Solution |
|---------|----------|
| Toast notifications feel spammy | Limit to 3 per session; add 8-second gaps; hide on cart/checkout |
| Widget hurts conversion (A/B test shows negative lift) | Disable immediately; test with different placement, copy, or timing before abandoning |
| Review badge not appearing in Google search results | Ensure AggregateRating schema is server-rendered (not just client-side JS); verify with Google Rich Results Test |
| Low-stock indicator showing wrong quantity | Subscribe to inventory change webhooks rather than polling; stale data creates false urgency |
| Social proof widget slowing page load | Load all social proof widgets asynchronously after page interactive; use `requestIdleCallback` or `setTimeout(fn, 0)` |
## Related Skills
- @review-generation-engine
- @conversion-rate-optimization
- @exit-intent-popups
- @ugc-campaign-management
- @ab-testing-ecommerceRelated Skills
social-commerce
Sync your catalog to Instagram, TikTok, and Facebook to enable shoppable posts and in-app checkout directly from your social content
wishlist-save-for-later
Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price
storefront-theming
Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode
search-autocomplete
Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch
responsive-storefront
Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion
recently-viewed-products
Show shoppers the products they recently browsed using browser storage so they can easily pick up where they left off on your store
quick-view-modal
Let shoppers preview product details and add items to cart from the listing page without navigating away, reducing friction in the shopping flow
product-page-design
Design high-converting product detail pages with image galleries, variant selectors, social proof, and clear calls-to-action that drive add-to-cart
product-comparison
Let shoppers select multiple products and compare them side-by-side in a table with highlighted differences to help them make the right buying decision
mega-menu-builder
Build a rich navigation mega menu with product images, category highlights, featured banners, and keyboard-accessible dropdowns for large catalogs
image-zoom-360
Boost product confidence with high-res image zoom, 360-degree spin views, and inline video so shoppers can examine products closely before buying
faceted-navigation
Let shoppers filter products by multiple attributes simultaneously with URL-shareable filter state, instant results, and mobile-friendly controls