Settings
Overview
The Settings page is the central hub for account management, subscription control, and user preferences. It provides a comprehensive interface for personalizing the Proof of Putt experience.
Core Features
Account Information Management
Email Display: Shows the user's registered email address (non-editable)
Display Name: Customizable name shown across the platform
Phone Number: Optional contact information with format validation
Timezone Configuration: Full timezone support using
Intl.supportedValuesOf('timeZone')Ensures accurate timestamp display across all features
Defaults to UTC if browser support is unavailable
Social Links Integration
X (Twitter): Connect your Twitter/X profile
TikTok: Link to TikTok account
Telegram: Add Telegram contact information
Website: Personal or professional website URL
All links are validated and displayed on public profiles
Security
Change Password: Integrated password management component
Secure authentication flow
Password strength requirements
Email Notification Preferences
Granular control over notification types:
Duel Requests: Invitations to compete
Duel Results & Updates: Competition outcomes
League Invites: Team competition invitations
League Results & Updates: League standings and round completions
Fundraiser Updates: Charity event notifications
Product News & Updates: Platform announcements
Subscription Management
For Free Users
Monthly Plan: $2.10/month
Full session history access
Create leagues and duels
All competitive features
Yearly Plan: $21/year (Featured)
Save $4.20 vs monthly billing
Early adopter lifetime subscription offer
Best value badge
Payment Processing: Direct Zaprite integration for Bitcoin/Lightning/Card payments
For Subscribers (Premium/Regular)
Subscription Status Display: Clear "Full Subscriber" badge
Cancel Subscription: One-click cancellation with confirmation
Free Year Invites Section:
Display of gift codes (redeemed/unredeemed status)
Send invites via phone number or email
Track invitation status
Bundle Purchasing:
3-Pack: $56.70 (10% discount)
5-Pack: $84 (21% discount)
10-Pack: $121 (42% discount)
21-Pack: $221 (50% discount)
Pre-configured Zaprite payment links for each bundle
Coupon Redemption
Gift code input field
Instant validation and redemption
Automatic page reload after successful redemption
Support for promotional and gift codes
Referral System
Referral Link Generation: Unique code for each user
Copy to Clipboard: One-click sharing
Referrals Dashboard:
Total invites sent
Viewed invites count
Rejected/declined tracking
Accounts created
Upgraded to subscriber count
Detailed invite history table with recipient info
Status tracking (pending, viewed, accepted, etc.)
Association Pricing
Enterprise Solutions
Two-column form layout for business inquiries:
Left Column:
Contact name (required)
Phone number
Email (required)
Club/Enterprise name
Office address
Right Column:
Comments/Requirements (required)
Number of users (minimum 1, default 50)
Additional Services:
Onboarding Support for Community
Implementation Support for Administration
Event Management On Site
Submission: Orange gradient "Send" button Purpose: Custom pricing for golf clubs, associations, and enterprises
Key Insights
State Management
Uses React hooks (
useState,useEffect) for complex state managementIntegrates with AuthContext for player data
Real-time data synchronization with
refreshData()Defensive programming with null checks and default values
API Integration
apiUpdatePlayer: Account information updatesapiUpdatePlayerSocials: Social links managementapiRedeemCoupon: Gift code redemptionapiCancelSubscription: Subscription cancellationapiUpdateNotificationPreferences: Notification settings/api/subscriptions/gifts: Gift code management/api/referrals/stats: Referral analytics
Payment Flow
Direct Zaprite hosted payment pages
Pre-configured payment links for subscriptions and bundles
No sensitive payment data handled client-side
Support for Bitcoin, Lightning Network, and traditional cards
User Experience
Responsive grid layout
Clear visual hierarchy
Inline validation
Success/error notifications
Loading states for async operations
Empty states for lists with no data
Last updated