WavePulse
WavePulse is WaveMaker's proprietary debugging tool specifically designed to debug WaveMaker Mobile Applications. It provides comprehensive debugging capabilities for applications running in web preview, Expo builds, and even release builds (APK/IPA).
Overview
WavePulse is a web-based debugging interface that connects to WaveMaker mobile applications to provide real-time inspection and monitoring capabilities.
Platform Support:
- ✅ Web Preview
- ✅ Expo (Go / Dev Build)
- ✅ Release Build (APK/IPA)
WavePulse is the only debugging tool that works with release builds (APK/IPA). This makes it invaluable for debugging production-like environments and testing app store submission candidates.
Key Features
✅ Unique Advantages:
- Works with release builds (APK/IPA) - no other tool supports this
- Shows only WaveMaker components (filters out React internals)
- View WaveMaker widget properties and configurations
- Timeline view of page loads and service variable calls
- Export/import debugging sessions for sharing
- No installation required (web-based)
- WaveMaker-specific insights (variables, widgets, pages)
⚠️ Limitations:
- Read-only inspection (cannot edit values)
- No Sources panel for JavaScript debugging
- No profiler for performance analysis
- Cannot set breakpoints or step through code
- Must be explicitly enabled in configuration
Requirements
- Configuration: WavePulse must be enabled in
wm_rn_config.json - Network: Device/emulator must be on same network (for Expo/APK debugging)
- Browser: Modern web browser to access WavePulse interface
Available Panels
Console
View application logs, errors, and warnings in real-time.
Elements
Inspect WaveMaker component hierarchy and view component properties.
Network
Monitor API calls, service variables, and network requests.
Timeline
Analyze page load sequence and service variable execution timeline.
Storage
Inspect Local Storage and Session Storage data.
Info
View application metadata, version, and configuration details.
Enabling WavePulse
WavePulse must be enabled in the application configuration file.
Configuration
- Open project in WaveMaker Studio
- Navigate to File Explorer
- Open
src > main > webapp > wm_rn_config.json - Add the following in the
preferencesobject:
{
"preferences": {
"enableWavePulse": true,
"enableLogs": true
}
}
Always enable logs (enableLogs: true) along with WavePulse to see console output in the Console panel.
- Save the file
- Restart Expo server if running (changes to config files require restart)
Disable WavePulse for production builds intended for app stores. WavePulse adds debugging overhead and should only be enabled during development and testing.
Connecting WavePulse to Web Preview
Connect WavePulse to your application running in web preview.
Steps
- Launch Web Preview of the app from Studio
- Click on REMOVE TOOLBAR once the preview loads
- Open WavePulse in another browser tab
- A new WavePulse session will start automatically
- Select Connect to Web Preview from the dropdown
- Copy the generated code to connect Web Preview with this WavePulse session
- Go back to the tab where Web Preview is running
- Open Console Panel in the developer tools:
- Mac: Press
Cmd+Option+J - Windows/Linux: Press
Ctrl+Shift+J
- Mac: Press
- Paste the code copied from WavePulse into the Console Panel
- Press Enter to initiate connection with the WavePulse session
- Web Preview is now connected with WavePulse
- You can now use WavePulse to debug your application
In web preview, WavePulse is always enabled regardless of enableWavePulse setting. The setting only affects Expo and APK/IPA builds.
Connecting WavePulse to Expo (Go / Dev Build)
Connect WavePulse to applications running on physical or virtual devices using Expo CLI.
Steps
- Run the application in Expo Dev Build using Expo CLI
- Open WavePulse in a browser
- A new WavePulse session will start automatically
- Ensure Connect to APK or IPA is selected from the dropdown
- Enter the Application ID for your application
- This generates a QR code and connection link for the app with the given Application ID
- Find Application ID in Studio: Settings > Build Preferences > Application Properties > Application ID
- Close the application on device if it is already running
- Scan the QR code from your device to launch the app and initiate WavePulse connection
- Alternative: Copy the link shown below the QR code and open it in the device's browser
- A pop-up will appear asking for permission to connect with the WavePulse session
- Press Yes to initiate connection
- WavePulse is now connected
- You can now use WavePulse to debug your application
The QR code approach works for both Expo Go/Dev Build and APK/IPA installations. Make sure both devices are on the same network.
Network Requirements:
- Device running app and device accessing WavePulse must be on same network
- Firewall must allow connections on the displayed port
- Some corporate networks may block these connections
Connecting WavePulse to APK/IPA
Connect WavePulse to debug and release builds (APK/IPA) installed on devices.
Prerequisites
- Enable WavePulse in
wm_rn_config.jsonbefore building - Build APK/IPA with WavePulse enabled
- Install APK/IPA on device
- If APK/IPA is built in debug mode, ensure it is connected with Expo CLI in Dev Build mode
Steps
- Open WavePulse in a browser
- A new WavePulse session will start automatically
- Ensure Connect to APK or IPA is selected from the dropdown
- Enter the Application ID for your application
- This generates a QR code and connection link for the app with the given Application ID
- Find Application ID in Studio: Settings > Build Preferences > Application Properties > Application ID
- Close the application on device if it is already running
- Scan the QR code from your device to launch the app and initiate WavePulse connection
- Alternative: Copy the link shown below the QR code and open it in the device's browser
- A pop-up will appear asking for permission to connect with the WavePulse session
- Press Yes to initiate connection
- WavePulse is now connected
- You can now use WavePulse to debug your application
This is the only way to debug release builds (APK/IPA). Community tools like Chrome DevTools, React DevTools, and React Native DevTools do not work with release builds. WavePulse is essential for production debugging.
Console Panel
The Console panel displays all application logs, errors, and warnings.
Features
View logs:
console.log()messagesconsole.warn()warningsconsole.error()errorsconsole.info()informationconsole.debug()debug messages- Uncaught errors and exceptions
Filtering:
- Filter by log level (All, Errors, Warnings, Info, Debug)
- Search logs by text
- Clear console output
Log format:
[timestamp] [level] message
Usage
// Logs appear in WavePulse Console
console.log('User logged in:', user);
console.warn('API deprecated:', apiEndpoint);
console.error('Failed to save:', error);
When WavePulse is enabled, log sources show as wavepulse.agent.js because logs are intercepted by WavePulse agent for transmission to the debugging interface.
Elements Panel
The Elements panel shows the WaveMaker component hierarchy and component properties.
Features
Component tree:
- Hierarchical view of WaveMaker components
- Expand/collapse component nodes
- Shows only WaveMaker widgets (Wm* components)
- Filters out React internals automatically
Component details:
- Component name and type
- Widget properties configured in Studio
- Component state
- Bound data values
- Style properties
Usage
- Open Elements panel
- Navigate component tree
- Click on any component to view details
- Right panel shows component properties
What you can see:
- Widget configuration from Studio
- Current property values
- Data binding values
- Component hierarchy relationships
What you cannot do:
- Edit property values (read-only)
- Modify component structure
- Add/remove components
Network Panel
The Network panel monitors all HTTP requests made by the application.
Features
Request information:
- URL and HTTP method
- Status code
- Request headers
- Response headers
- Request body
- Response body
- Timing information
- Size
Service Variables:
- Dedicated view for WaveMaker service variable calls
- Variable name and type
- Input parameters
- Response data
- Execution time
Filtering:
- Filter by request type (XHR, Fetch)
- Filter by status code
- Search by URL
- Filter by size or duration
Usage
- Open Network panel
- Interact with application to trigger requests
- Click on any request to view details
- Use filters to find specific requests
Use cases:
- Debug API call failures
- Inspect service variable responses
- Monitor authentication headers
- Check request/response payloads
- Identify slow API calls
Timeline Panel
The Timeline panel visualizes the sequence of events during page loads and navigation.
Features
Timeline visualization:
- Page load events
- Component lifecycle events
- Service variable calls
- Network requests
- Navigation events
Event details:
- Event name and type
- Start time
- Duration
- Related data
Use cases:
- Understand page load sequence
- Identify slow loading components
- Debug service variable execution order
- Analyze navigation flow
- Optimize page load performance
Usage
- Open Timeline panel
- Navigate to a page or perform action
- Timeline shows event sequence
- Click on events for detailed information
- Use zoom and pan to explore timeline
Reading the timeline:
- Events are shown chronologically from top to bottom
- Horizontal bars show event duration
- Color coding indicates event type
- Overlapping bars show concurrent operations
Storage Panel
The Storage panel allows inspection of Local Storage and Session Storage.
Features
Local Storage:
- View all key-value pairs
- Search storage by key
- View stored data values
- Check storage size
Session Storage:
- View session-specific data
- Search by key
- View values
Application data:
- WaveMaker variables stored locally
- User preferences
- Cached data
- Authentication tokens (if stored)
Usage
- Open Storage panel
- Select storage type (Local or Session)
- Browse key-value pairs
- Search for specific keys
Storage panel is read-only. You cannot edit or delete storage items from WavePulse.
Info Panel
The Info panel displays application metadata and configuration.
Features
Application information:
- Application name
- Version number
- Build information
- Platform (Android/iOS/Web)
- Device information
WaveMaker configuration:
- Expo version
- React Native version
- WaveMaker runtime version
- Enabled features
- Configuration settings
Usage
- Open Info panel
- View application details
- Verify version numbers
- Check configuration
Use cases:
- Verify correct app version
- Check platform details
- Confirm configuration settings
- Identify build information for bug reports
Export and Import Debugging Sessions
WavePulse allows exporting debugging sessions for sharing with team members or for later analysis.
Exporting Sessions
- After debugging session, click Export button
- Choose what to export:
- Console logs
- Network requests
- Timeline events
- Component tree snapshot
- Session exports as JSON file
- Save file to disk
Importing Sessions
- Click Import button
- Select previously exported JSON file
- WavePulse loads the session
- View historical data offline
Use cases:
- Share debugging sessions with team
- Archive debugging data
- Analyze issues offline
- Compare sessions before/after changes
Debugging with wm-reactnative sync
WavePulse works seamlessly with WaveMaker's live sync feature.
Setup
- Export React Native project from Studio
- Run
wm-reactnative syncto connect to Studio - Start Expo CLI
- Connect WavePulse to running application
- Make changes in Studio
- Changes reflect in real-time
- Monitor changes in WavePulse
Benefits:
- Edit in Studio, debug in real-time
- See immediate effect of changes
- Monitor component updates
- Track service variable calls
- Fast iteration cycle
Using WavePulse Panels
After connecting WavePulse to your application, you can use various panels to debug and inspect your application.
Panel Overview
- Console Panel - View all logs, search for specific logs, clear logs, and filter by type
- Elements Panel - Inspect WaveMaker components with properties and styles
- Network Panel - Monitor all network requests with detailed information
- Timeline Panel - View time intervals for page loads, network calls, and service variables
- Storage Panel - Inspect application's local storage
- Info Panel - View application metadata
Elements Panel Features
- Shows all WaveMaker components in hierarchical structure
- Auto-updates when changes occur in the running application
- Hover/select components to highlight them in the running app
- View component properties as configured in WaveMaker Studio
- Inspect styles with dropdown to select specific parts of widgets
Network Panel Features
- View all network requests with complete details
- Click on any request to see Headers, Response, and more
- Filter requests by type using the filter button
- Monitor service variable calls
Timeline Panel Features
- Displays recorded time intervals for events
- Track page loads, network calls, and service variables
- Use filters to show specific event types or time intervals
Storage and Info Panels
- Storage Panel shows local storage data (use refresh button for latest data)
- Info Panel displays application metadata (use refresh button to update)
Exporting Debugging Sessions
Click the Export button at the bottom right corner of WavePulse to save your current debugging session for later analysis or sharing with team members.
WaveMaker-Specific Features
Service Variable Monitoring
WavePulse provides dedicated views for WaveMaker service variables:
What you can see:
- Service variable name
- Variable type (API, Database, etc.)
- Input parameters
- Request payload
- Response data
- Execution time
- Success/failure status
Widget Inspection
Inspect WaveMaker widgets with Studio-specific information:
Widget details:
- Widget name from Studio
- Widget type (Button, Form, List, etc.)
- Properties configured in Studio
- Data binding expressions
- Event handlers
- Current state
Variable Inspection
View WaveMaker application variables:
Variable information:
- Variable name
- Variable type (Model, Device, etc.)
- Current value
- Binding information
- Update history
Best Practices
1. Enable Only for Development and Testing
// ✅ Good - Enable for debug builds
{
"preferences": {
"enableWavePulse": true,
"enableLogs": true
}
}
// ❌ Bad - Left enabled for production app store builds
2. Use WavePulse for Release Build Testing
// ✅ Good - Test release builds before submission
// Build APK/IPA with WavePulse enabled
// Test on real devices
// Debug any production issues
// Rebuild without WavePulse for final submission
// ❌ Bad - Skipping release build testing
3. Export Sessions for Issue Reporting
// ✅ Good - Export debugging session when reporting bugs
// Include console logs, network requests, timeline
// Share with team or support
// ❌ Bad - Just describing the issue without data
4. Monitor Service Variables
// ✅ Good - Use Network panel to monitor service variables
// Check input parameters
// Verify response data
// Identify slow API calls
// ❌ Bad - Debugging service issues with console.log only
Troubleshooting
WavePulse Not Connecting
Solutions:
- Verify
enableWavePulse: trueinwm_rn_config.json - Restart Expo server after config changes
- Ensure device and computer are on same network
- Check firewall settings
- Try scanning QR code with different device
QR Code Not Appearing
Solutions:
- Check that WavePulse is enabled in config
- Rebuild application with updated config
- Close and reopen application
- Check console for connection URL as fallback
Network Requests Not Showing
Solutions:
- Verify
enableLogs: truein config - Check Network panel filters
- Ensure requests are actually being made
- Try clearing and refreshing
Console Logs Not Appearing
Solutions:
- Ensure
enableLogs: trueinwm_rn_config.json - Restart application after config change
- Check Console panel filters
- Verify logs are being generated with
console.log()
Key Differences from Other Tools
WavePulse vs Chrome DevTools
| Feature | WavePulse | Chrome DevTools |
|---|---|---|
| Works with APK/IPA | ✅ | ❌ |
| Works with Expo | ✅ | ❌ |
| Works with Web Preview | ✅ | ✅ |
| Shows WaveMaker components | ✅ | ❌ |
| JavaScript debugging | ❌ | ✅ |
| Edit values | ❌ | ✅ |
| Performance profiler | ❌ | ✅ |
| Timeline view | ✅ | ✅ |
WavePulse vs React DevTools
| Feature | WavePulse | React DevTools |
|---|---|---|
| Works with APK/IPA | ✅ | ❌ |
| Shows WaveMaker widgets | ✅ | ❌ |
| Shows all React components | ❌ | ✅ |
| Edit props/state | ❌ | ✅ |
| Profiler | ❌ | ✅ |
| Service variables | ✅ | ❌ |
WavePulse vs React Native DevTools
| Feature | WavePulse | React Native DevTools |
|---|---|---|
| Works with APK/IPA | ✅ | ❌ |
| Requires Expo 52+ | ❌ | ✅ |
| JavaScript debugging | ❌ | ✅ |
| Breakpoints | ❌ | ✅ |
| WaveMaker-specific | ✅ | ❌ |
| Export sessions | ✅ | ❌ |
Related Documentation
Other Debugging Tools:
- Chrome DevTools – Browser debugging for web preview
- React DevTools – React component inspection
- React Native DevTools – React Native debugging
Testing Documentation:
- Debugging Overview – All debugging tools and methods
- UI Testing Mobile – Mobile testing strategies
Build Documentation:
- Mobile Build Overview – Build methods
- AppChef Builds – Cloud builds with QR codes
- Expo Builds – Expo EAS Build
WavePulse is the only tool that can debug release builds (APK/IPA). Always test release builds with WavePulse before submitting to app stores, then rebuild with WavePulse disabled for final submission.