# GiftDice > Gift exchanges and shareable wishlists for any occasion. GiftDice is a free web app that helps groups organize gift exchanges with random matching, and lets anyone create shareable birthday wishlists. ## Core Features - **Gift Exchange Matching**: Create an exchange for any occasion (Christmas, Valentine's, Birthday, Wedding, etc.), invite participants, and randomly match gift-givers to recipients. - **Gift Ideas (Auto)**: When no custom list is set, givers see curated gift ideas from the catalog based on occasion and budget — zero setup required. - **Custom Gift List**: A curated pool of gift ideas auto-populated based on occasion and budget that organizers can customize. Givers browse the list for inspiration. - **Assigned Gifts**: The organizer assigns specific gifts to each matched pair for structured exchanges. - **Birthday Wishlists**: Create and share a public wishlist link so friends and family know exactly what to get you. - **Wishlist Image Uploads**: Upload item images directly with server-side compression and optimization. - **Item Reservations**: Visitors can reserve wishlist items to avoid duplicate gifts. - **Multi-Currency Support**: Supports USD, EUR, GBP, NGN, CAD, AUD, and more. - **Gender Matching**: Optional gender-aware matching for couple or group exchanges. - **CSV/PDF Gift Upload**: Bulk-add gifts via file upload. - **Email Notifications**: Automated emails for match ready, match reminders, member joined, group cancelled, group invites, item reserved, item unreserved, and welcome events via Resend. - **Bulk Email Invites**: Group owners can invite up to 20 people at once by email with deduplication and validation. - **Rematch / Re-Draw**: Owners can re-draw matches after the initial draw — old matches are replaced and new notifications sent. - **Magic Link Auth**: Email-based sign-in via OTP. Framed as "Get notified when your match is ready" on invite pages. - **Countdown Timer**: "X days left" badge on group pages with exchange dates (color-coded urgency). - **Dice-Roll Animation**: Fun animated dice roll with confetti when revealing your match. - **White Elephant / Yankee Swap**: Generates random turn order for in-person gift-stealing games. Each participant sees only their own turn number. - **AI Gift Recommender**: Personalized gift suggestions using GPT-4o-mini based on occasion, budget, and recipient interests. - **AI Thank-You Note**: Describe the gift you received, pick a tone, and AI generates a personalized thank-you message. - **AI Wishlist Builder**: Describe who the wishlist is for and AI generates 8-10 specific items with names, prices, and descriptions. - **Smart URL Import (AI)**: Paste any product URL and AI extracts name, price, image, and description. - **Image Import (AI)**: Upload a photo of a gift list and AI extracts items automatically. - **QR Code Sharing**: Generate scannable QR codes for wishlist and exchange invite links. - **Wishlist Collaboration**: Invite collaborators by email with Editor (add/edit/remove items) or Viewer (browse only) roles. Email + in-app notifications on invite. Resend invitations for pending collaborators. - **Similar Items (AI)**: "Find similar items" on any wishlist item. AI suggests 4 alternatives with prices, categories, and shopping links. - **Wishlist Personalization**: Wishlist owners can upload a cover photo (drag-to-reposition focal point) and choose a visual theme. Themes: Classic (default), Blossom 🌸, Peach 🍑, Sky 🌤️, Garden 🌿, Golden Hour 🌅. Each theme applies a mesh-gradient page background, accent colors, and animated floating decorations (falling petals, drifting clouds, twinkling stars). Cover photo and theme are optional — default layout is unchanged if neither is set. - **Image Preview**: Click any item thumbnail on a public wishlist to view a full-size preview in a lightbox dialog. - **Reserve Confirmation**: Reserving an item shows a confirmation dialog before committing, preventing accidental reservations. - **Wishlist Reservation Reminders**: Daily cron sends weekly "don't forget" emails to users who reserved wishlist items when the event is 2–30 days away (Redis-deduped, 6-day TTL). Day-before and day-of urgent reminders sent separately. Stops after the event date passes. - **Birthday Wishes**: Daily cron sends a heartfelt birthday email and in-app notification to users whose birthday wishlist event date is today. - **Private Match Chat**: Private messaging between matched pairs on the match page via action ribbon. Both giver→receiver and receiver→giver conversations accessible in one place. In 2-person groups, a single unified conversation replaces the dual chat boxes. Anonymous notifications (sender name hidden). Rate-limited to 20 messages/day with email + in-app notifications. - **Affiliate Shopping Links**: AI gift suggestions and wishlist item URLs link to Amazon with region-specific Associates tags (US + UK). Falls back to Google Shopping when unconfigured. Required Amazon disclosure on suggestion UIs. - **In-App Notifications**: Bell icon with unread badge. Events for match ready, member joined, item reserved, collaboration invite, and more. - **Dice Duel (Live Quiz Game)**: Host a Kahoot-style quiz. Create multiple-choice or true/false questions, share a 6-character join code, and players answer in real time on their phones. AI question generator (enter a topic, AI creates trivia questions instantly — free for all users). Speed-based scoring (up to 1,000 points per question). No account or app needed for players. Leaderboard after every question. Edit/cancel/delete games from the list page. Results page with confetti, animated podium (1st/2nd/3rd), per-question accuracy bars, and stats summary. Ended/cancelled games show appropriate messages to returning players. Invite email template with game details and join code. Redis rate limiting on game creation (10/min), answers (60/min), and join lookups (20/min). - **SEO Landing Pages**: 10 keyword-targeted pages at `/secret-santa`, `/birthday-wishlist`, `/office-gift-exchange`, `/white-elephant`, `/wedding-gift-list`, `/baby-shower-registry`, `/christmas-gift-exchange`, `/gift-exchange-game`, `/online-giveaway`, `/dice-duel`. - **Dynamic OG Tags**: Public wishlist and join pages generate Open Graph + Twitter Card metadata for rich social previews. - **Social Share Buttons**: WhatsApp, Twitter/X, QR code, and embed code sharing on public pages. - **Referral Program**: Each user gets a unique referral code. Referrer earns 7 days of free Pro (up to 90 days); referred user gets 3 bonus AI suggestions. Email + in-app notifications on completion. Stats and sharing in Settings. - **"Do Not Buy" Notes**: Mark wishlist items you explicitly don't want. Shown with strikethrough styling and a reason. Not reservable. - **User Testimonials**: Real reviews from GiftDice users displayed on the landing page with Google profile avatars. - **PWA Support**: Progressive Web App manifest and service worker for Add to Home Screen and offline caching. - **Recurring Exchanges**: Re-run last year's exchange with the same group. Copy group settings + members into a new exchange on a schedule. - **Giveaways**: Create and manage giveaway campaigns to drive user acquisition. Entrants enter via a public link, accounts are created via magic link. 13 entry question types (text, textarea, number, date, rating, email, URL, select, radio, multi-select, checkbox, paragraph, file upload) with conditional logic, descriptions, validation, option shuffling, and "Allow Other". Custom confirmation messages on the thank-you page. Organizers can pre-select or exclude entries, vouch for entries (auto-preselects them as guaranteed winners), then run a two-pool draw (pre-selected + randomized) to pick winners. Auto-draw scheduling with failure handling. CSV export for all tiers (basic for free, full for Pro). Print/PDF export (Pro). GitHub-style markdown editor for prize descriptions (Write/Preview tabs, formatting toolbar with bold/italic/links/lists, keyboard shortcuts Ctrl+B/I/K, up to 5,000 characters, line breaks preserved via remark-breaks). Entry form UX: auto-advance to next question, sticky progress bar, expand/collapse all toggle. Countdown timers. Winner name anonymization. Monetary giveaways with payment details collection. Daily entry digest and milestone emails. Collaborators: invite by email with Manager/Viewer roles; non-registered users receive a pending invite and auto-gain access on signup with organizer notification (in-app + email). Giveaway list page separates "My Campaigns" and "Invited" tabs for owned vs collaborated campaigns. Campaign dashboard shows role badge for collaborators. Free tier: 15 questions, 500 entries. Pro: 50 questions, 10,000 entries. - **Admin Dashboard**: Dedicated `/admin` page with platform metrics (monetization, AI usage, profile analytics), activity feed (signups, exchanges, wishlists, giveaways, Dice Duels, member joins, match draws, credit purchases — with user emails and context, Redis-cached), audit log, campaign management (send marketing emails with dedup tracking), and nav links. - **Email Preferences**: Users can opt out of marketing emails from Settings. Campaign sends automatically skip opted-out users. - **Wishlist Share Reminders**: Periodic "share your wishlist" reminder modal after creating a wishlist with items (3-day cooldown). - **Shimmer Skeleton Loading**: Animated shimmer skeleton loading states across all dashboard pages. - **Redis Cache Layer**: Upstash Redis caching for 10+ endpoints: user tiers (5min), community stats (5min), giveaway browse (60s), user stats (60s), admin stats (10min), gift catalog (1hr), group gifts (5min), group details (5min), match overview (5min), dice duel game state (30s). Event-driven invalidation on mutations. Graceful fallback when Redis is unavailable. - **Redis Atomic Operations**: AI daily usage counter (INCR + 24h TTL), giveaway entry milestone counter, cron email dedup, push notification dedup (60s), wishlist reservation counters, Dice Duel leaderboard sorted sets. Feature flags via Redis hash. - **GDPR / UK GDPR Compliance**: Cookie consent banner, consent-gated analytics, account deletion (right to erasure) with two-step email confirmation, data export (right to data portability), and a comprehensive privacy policy referencing GDPR Articles 6, 15-22. - **Account Settings**: Cookie preference management, data export download, two-step account deletion with email code verification, usage overview, and profile editor at `/settings`. - **Security Hardening**: Row Level Security lockdown on all tables, profile column protection trigger (tier/billing/subscription/referral fields), Cloudflare Turnstile CAPTCHA on giveaway entry, timing-safe code comparison, fail-closed rate limiting, role-based data filtering for sensitive fields. Webhook event deduplication and audit trail. Payment failure grace period (5 days before downgrade). Replay protection for webhook events. - **Profile Editor**: Upload an avatar (server-side compressed) and edit your display name from the Settings page. Camera overlay on hover, 2MB limit, magic-byte validation. - **Getting Started Checklist**: 4-step onboarding checklist on the dashboard for new users — complete your profile, create or join an exchange, create a wishlist, and try a giveaway. Progress bar, auto-dismiss with celebration animation when all done, manual "Hide checklist" option. - **Onboarding Email Sequence**: 5-step automated drip for new users — Day 1: wishlists, Day 3: exchanges, Day 5: giveaways + referrals, Day 7: AI features + Dice Duel, Day 10: match chat, collab, Pro. Skips users who already took the action. Powered by daily cron job. - **Campaign Email System**: Admin-triggered marketing campaigns with per-user dedup tracking (campaign_sends table). 10 campaigns: Private Match Chat, Dice Duel, AI Features, Giveaways, Wishlist Collaboration, Pro Upgrade, Affiliate Shop, White Elephant, Install App (PWA), Recurring Exchanges. Inline email preview, race-condition safe via insert-first dedup pattern. Confirmation modal with eligible/remaining counts and "Send to All" auto-batching. - **First-Time Tips**: Contextual one-time tips that appear on key pages (e.g., wishlist sharing). Dismissible via localStorage, never reappear. - **Nav Feature Discovery**: "New" dot badges on nav items (Wishlists, Giveaways) that disappear once the user visits the page. Helps new users discover features. - **Usage Indicators**: Dashboard card and inline hints showing free-tier users their remaining capacity (groups, wishlists, giveaways, AI uses/day). Color-coded progress bars. AI dialogs show remaining daily uses; create flows show remaining slots. Pro users see a clean experience with no usage hints. - **Umami Analytics**: Privacy-friendly, cookie-free, GDPR-compliant analytics (always loads). - **DataFast Analytics**: Page analytics loaded only after user consent via cookie banner. - **Dark Mode**: Theme toggle available on all pages (homepage, SEO landing pages, and dashboard). - **Mobile-First Design**: Fully responsive with a Twitter-style bottom tab bar on mobile (auto-hides on scroll down, re-appears on scroll up). Works great on any device. - **Push Notifications**: Browser push notifications for match readiness, giveaway wins, and other events. Users can enable/disable from Settings. - **Giveaway Cloning**: Duplicate existing giveaway campaigns with all settings, questions, and eligibility rules preserved — perfect for recurring promotions. - **AI Question Suggestions**: AI-powered entry form question suggestions based on giveaway title and prize description. Generates relevant eligibility and engagement questions. - **Budget Helper**: Visual card on gift pages showing how many gifts fit the exchange budget (within, below, above range) with color-coded indicators. - **Giveaway Embeds**: Embed giveaway entry forms on external websites via iframe with auto-resize. Share embed code from the campaign dashboard. - **Regional SEO Pages**: Localized landing pages for Nigeria (/ng/secret-santa), Kenya (/ke/gift-exchange), and South Africa (/za/gift-exchange) with local currency budgets and WhatsApp-friendly sharing. - **Structured Data**: Schema.org HowTo and Product structured data on all landing and pricing pages for rich search results. - **Paginated Lists**: All list views (groups, wishlists, giveaways, Dice Duels) paginate with "Load More" for fast initial loads. ## Pricing - **Free plan**: 5 groups, 5 wishlists, 50 items per wishlist, 5 active giveaways, 500 entries per giveaway, 10 AI uses/day, 10 bulk invites, 50 winners per giveaway. Free forever. - **AI Credit Pack** (Best Value): $1.99 one-time for 100 AI credits. Never expires. Used after the 10 free daily AI uses. Buy multiple packs — credits stack. - **Pro plan**: $2.99/mo or $19/yr. Unlimited groups, wishlists, giveaways, and AI features. 200 items per wishlist, 10,000 entries per giveaway, 50 bulk invites, 500 winners per giveaway. - Pricing page: https://giftdice.com/pricing ## Supported Occasions Valentine's Day, Christmas, Birthday, Anniversary, Wedding, Baby Shower, Housewarming, Graduation, Workplace, Family, Date Night, and Custom. ## How It Works 1. **Create an Exchange**: Pick an occasion, set a budget, and choose a gift mode. 2. **Invite Participants**: Share a unique invite code — members join via the link. 3. **Match & Exchange**: The organizer triggers random matching. Each person sees only their assigned recipient. 4. **Wishlists**: Separately, create a personal wishlist and share the public link. Visitors can reserve items. ## Links - Website: https://giftdice.com - Pricing: https://giftdice.com/pricing - Login: https://giftdice.com/login - Privacy Policy: https://giftdice.com/privacy - Terms of Service: https://giftdice.com/terms ## Full Documentation For detailed information, see [llms-full.txt](https://giftdice.com/llms-full.txt).