Tribelike Debug Guide
Browser Console Commands
After starting the app in development mode (pnpm dev
), these commands are available:
// Show complete local graph
gunDebug.graph()
// Show connected peers
gunDebug.peers()
// Show current user
gunDebug.user()
// Monitor a specific path
gunDebug.watch('profile/123')
gunDebug.watch('relations')
// Show Gun data in localStorage
gunDebug.storage()
// Clear all Gun data (with confirmation)
gunDebug.clear()
// Direct Gun access
gun.get('profile/123').once(console.log)
Browser DevTools Tips
1. Network Tab
- Filter:
WS
(WebSocket) - Shows Gun.js peer connections
- Click on WebSocket → "Messages" tab
2. Application Tab
- Local Storage → Filter:
gun/
- IndexedDB →
gun-rtc
Database - Session Storage
3. Console Filter
Create custom filter for clean logs:
- Regex:
^(?!.*WebSocket).*$
(hides WebSocket errors) - Or:
-WebSocket -failed
(hides specific words)
Chrome Extensions
Vue.js devtools
https://chrome.google.com/webstore/detail/vuejs-devtools
- Shows Vue Component Tree
- Inspect Gun-Provider States
WebSocket Frame Inspector
For detailed WebSocket debugging
Local Gun Relay with Logging
// server/src/server.ts extension
Gun({
web: server,
axe: false, // Disables memory limits
localStorage: false,
radisk: false,
multicast: false,
stats: true, // Enables statistics
log: function(msg) {
console.log('GUN:', msg);
}
});
Common Debug Scenarios
"User not found"
// Check user
gunDebug.user()
// Clear if corrupted
gunDebug.clear()
Sync Problems
// Check peers
gunDebug.peers()
// Watch for updates
gunDebug.watch('profile/' + myId)
Performance
// Graph size
Object.keys(gunDebug.graph()).length
// Memory usage
console.log(performance.memory)
Production Debugging
For production build with debug:
// client/src/services/gun.ts
const DEBUG = new URLSearchParams(location.search).has('debug');
if (DEBUG) {
import('./utils/gunDebug');
}
Then: https://tribelike.shniq.dev?debug=true