Debug Panel
Add a live debug panel to your app:- FPS (frames per second)
- Frame time (ms)
- Layout time (ms)
- Commit time (ms)
- Total render time (ms)
- Event count
Position Options
Inspector Overlay
Visually inspect widget boundaries and metadata:- Widget boundary highlighting
- Widget tree visualization
- Layout metadata display
- Focus state tracking
- Mouse hover inspection
Inspector Controls
Record and Replay
Capture app execution for deterministic replay:Replay Recorded Session
- Bug reproduction
- Performance regression testing
- Integration test fixtures
- User session replay
Debug Logging
Enable detailed logging:Debug Categories
- frame
- event
- perf
- error
Frame rendering events:
Widget Inspection
Debug widget tree structure:Error Handling
Error Boundaries
Global Error Handler
Testing Utilities
Test Renderer
Snapshot Testing
Deterministic Rendering
Rezi rendering is deterministic by design:- Reproducible bugs
- Reliable snapshots
- Time-travel debugging
- Deterministic replay
Performance Profiling
Frame Timing
Layout Profiling
Common Issues
Missing Widget IDs
id props.
Infinite Update Loop
app.update() inside view functions.
Conditional Hook Calls
Best Practices
Inspector Overlay
Use F12 inspector during development to visualize widget boundaries and debug layout issues.
Record Sessions
Enable repro recording for production apps. Recorded sessions are invaluable for debugging reported issues.
Error Boundaries
Wrap risky widgets in error boundaries. Prevent one buggy widget from crashing the entire app.
Debug Panel
Keep debug panel visible during development. Watch for frame drops and slow renders.
Next Steps
Testing
Write automated tests for your TUI components
API Reference
Explore the complete API documentation