4.8 KiB
🔧 Remaining Fixes - Breakdown & Budget
Date: December 30, 2025
Available Budget: $9 USD
🐛 ISSUES TO FIX
Issue 1: Signup Key Generation Error ⚠️ CRITICAL
Error: "hex string expected, got object"
Location: SignupDialog npub generation
Root Cause:
- Line 514:
nip19.decode(nsec).datareturns Uint8Array nip19.npubEncode()expects Uint8Array but getting wrapped object- Type mismatch in the decode flow
Fix Options:
Option A - Simple Fix (5 min, FREE):
// Instead of trying to show npub in real-time, just show nsec
// Remove the npub display entirely or compute it differently
Option B - Proper Fix (15 min, $1):
// Properly extract and encode the public key
const { type, data } = nip19.decode(nsec);
if (type === 'nsec') {
const sk = data;
const pk = getPublicKey(sk); // need to import from nostr-tools
const npub = nip19.npubEncode(pk);
}
Recommended: Option B (proper fix)
Issue 2: Login Notice on Coaches Page
Location: CoachesPage - "Become a Coach" button area
Fix: Add login badge when user not logged in
Effort: 3 minutes
Budget: FREE (trivial)
Issue 3: Profile Save Error ⚠️ CRITICAL
Error: "Failed to upload profile please try again"
Location: EditProfileForm - all fields not saving
Possible Root Causes:
- Missing user.signer in publish flow
- Validation error with NSchema
- Event publishing to relays failing
- Missing required fields in kind 0 event
Investigation Needed:
- Check console for actual error
- Test if other fields save (name, about, picture)
- Check if it's NIP-05 specific or all fields
Fix Effort: 20-30 min, $2
Steps:
- Debug actual error in EditProfileForm
- Check if signer is available
- Validate metadata schema
- Add better error messages
- Test each field individually
Issue 4: FAQ Section
Location: New page - /faq
Content Needed: Common questions about Nostr, spots, events, zaps, etc.
Fix Options:
Option A - Simple FAQ (30 min, $2):
- Single page with 10-15 Q&As
- Accordion UI with shadcn/ui
- Basic questions answered
Option B - Comprehensive FAQ (1-1.5 hours, $5-8):
- Multiple categories (Nostr, Features, Zaps, Safety)
- 20-30 Q&As
- Search functionality
- Links to onboarding
Recommended: Option A (simple but complete)
💰 BUDGET ALLOCATION OPTIONS
Option 1: Critical Fixes Only ($3 total)
- ✅ Fix signup error (proper solution) - $1
- ✅ Fix profile save error - $2
- ✅ Add login notice to coaches - FREE
Leaves: $6 for future updates
Time: 45 min
Option 2: Fixes + Simple FAQ ($5 total)
- ✅ Fix signup error - $1
- ✅ Fix profile save error - $2
- ✅ Add login notice - FREE
- ✅ Simple FAQ page (10-15 Q&As) - $2
Leaves: $4 for future updates
Time: 1.5 hours
Option 3: Everything ($9 total)
- ✅ Fix signup error (proper) - $1
- ✅ Fix profile save error - $2
- ✅ Add login notice - FREE
- ✅ Comprehensive FAQ (20-30 Q&As with search) - $6
Leaves: $0
Time: 2-2.5 hours
🎯 MY RECOMMENDATION
Go with Option 2 ($5 total, saves $4):
Why?
- ✅ Fixes all critical bugs
- ✅ Adds helpful FAQ for users
- ✅ Leaves budget for future needs
- ✅ Gets app fully functional
What you get:
- Signup working perfectly
- Profile editing working (NIP-05 saves)
- FAQ with essential questions
- $4 left over for future features
📋 IMPLEMENTATION STEPS (Option 2)
Step 1: Fix Signup Error (15 min)
- Import
getPublicKeyfrom nostr-tools - Properly decode nsec to get secret key bytes
- Derive public key from secret key
- Encode to npub
- Test full signup flow
Step 2: Fix Profile Save Error (30 min)
- Check console error in EditProfileForm
- Debug why kind 0 event fails
- Fix validation or signer issue
- Add better error feedback
- Test saving all fields (name, about, nip05, etc)
Step 3: Add Coach Login Notice (3 min)
- Check if user logged in on CoachesPage
- Show "🔒 Login to become coach" badge
- Style with yellow neon
Step 4: Create Simple FAQ (30 min)
- Create FAQPage.tsx
- Add 10-15 common questions:
- What is Nostr?
- How do I add a spot?
- What are zaps?
- Is this free?
- How do I get NIP-05?
- Can spots be deleted?
- etc.
- Use Accordion component
- Add route to AppRouter
- Link from footer/about
Total Time: ~1.5 hours
Total Cost: $5
Remaining Budget: $4
❓ WHAT WOULD YOU LIKE ME TO DO?
A) Option 1 - Critical fixes only ($3, save $6)
B) Option 2 - Fixes + Simple FAQ ($5, save $4) ⭐ RECOMMENDED
C) Option 3 - Everything ($9, no savings)
D) Something custom - tell me what to prioritize
Which option would you like me to implement?