# Terminal 1: Convex Backend
bunx convex dev
# Terminal 2: Next.js Frontend
bun devVisit: http://localhost:3000/api/dev/seed-streams
This creates 3 test streams in your Convex database.
- Open app at
http://localhost:3000 - Click "Connect Wallet" button
- Verify wallet connects and shows real balance (starts at 0)
- Open wallet drawer (click balance component)
- Verify payment history section displays
- Navigate to
/dashboard - Verify test streams appear in feed
- Click on different category filters
- Click on a stream card
- Verify redirects to
/stream/[id]
- On stream page, verify Mux player placeholder shows
- Check real-time stats display (viewers, earnings, gifts)
- Click "Share" button
- Copy link from modal
- Test chat input (requires wallet connection)
- Click notification bell icon in navbar
- Verify panel slides in from right
- Check "Today" and "Older" tabs
- Click "Mark all read" button
- Close panel by clicking X or backdrop
- Open stream in two browser windows
- Send chat message from one
- Verify appears in both (Convex real-time)
-
Grant Permissions
- Navigate to
/stream - Click "Go Live"
- Grant camera/microphone access
- Navigate to
-
Configure Stream
- Enter title (e.g., "My First OPNode Stream")
- Add tags (e.g., ["test", "bitcoin", "live"])
- Select category
-
Start Broadcast
- Click "Start Streaming"
- App creates Mux stream via
/api/stream/create - Stream key generated and encrypted
- Mux Player initialized
-
Verify Stream
- Open
/dashboardin another browser - Your stream should appear with "LIVE" badge
- Click to view
- Send test chat messages
- Open
-
End Stream
- Click "Stop Stream" button
- Verify final stats modal appears
- Check Convex dashboard for saved data
- Run seed endpoint:
/api/dev/seed-streams - Check Convex dashboard for data
- Verify
bunx convex devis running
- ✅ FIXED - Now uses provider hook correctly
- Breez SDK still syncing
- Check browser console for errors
- Verify wallet connection status
- Normal for test streams (no real Mux stream created)
- To test real streaming, use "Go Live" flow
- Verify Mux credentials in
.env.local
# Convex
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
CONVEX_EMBEDDED_WALLET_KEY=your-secret-key
# Mux (for live streaming)
MUX_TOKEN_ID=your-mux-token-id
MUX_TOKEN_SECRET=your-mux-token-secretPOST /api/stream/create- Create Mux + Convex streamPOST /api/stream/start- Mark stream as livePOST /api/stream/end- End stream, get final statsGET /api/dev/seed-streams- Create test data
/muxWebhook- Mux stream status updates/paymentWebhook- Lightning payment notifications
✅ Real-time Convex queries ✅ Wallet balance from Breez SDK ✅ Stream discovery and navigation ✅ Notifications panel ✅ Chat interface ✅ Share functionality ✅ Payment history display ✅ Stream stats tracking
🟡 Lightning invoice generation 🟡 Real broadcast setup (camera → Mux) 🟡 Production webhook configuration
🎯 Platform is working when:
- Streams appear in dashboard feed
- Clicking stream opens view page
- Notifications panel slides in/out
- Wallet shows real balance
- Chat messages can be typed
- Share modal copies link
- ✅ Test notification panel (FIXED)
- Test stream creation flow
- Implement Lightning invoices
- Test with real Mux credentials
- Deploy to production
- Configure webhooks
Happy streaming! 🎥⚡