Skip to main content

Testing VibeTunnel on External Devices

This guide explains how to test VibeTunnel development changes on external devices like iPads, iPhones, and other computers.

Overview

When developing VibeTunnel’s web interface, you may encounter browser-specific issues that only appear on certain devices (e.g., Safari on iPad). This guide shows you how to test your local development changes on these devices without deploying.

Quick Start: Development Server Method

This is the recommended approach for rapid iteration during development.

1. Start the Development Server

Key parameters:
  • --port 4021: Use a different port than the production server (4020)
  • --bind 0.0.0.0: Bind to all network interfaces (not just localhost)

2. Find Your Mac’s IP Address

Option A: System Preferences
  1. Open System Preferences → Network
  2. Select Wi-Fi → Advanced → TCP/IP
  3. Look for “IPv4 Address”
Option B: Terminal

3. Access from External Device

Open a browser on your external device and navigate to:
Example: http://192.168.1.42:4021

Production Build Method

Use this method when you need to test with the full Mac app integration.

1. Build the Web Project

2. Configure VibeTunnel for Network Access

  1. Open VibeTunnel from the menu bar
  2. Go to Settings → Dashboard Access
  3. Select “Network” mode
  4. Set a dashboard password (required for network access)

3. Access from External Device

Common Issues and Solutions

Cannot Connect from External Device

Check network connectivity:
  • Ensure both devices are on the same Wi-Fi network
  • Verify the IP address is correct
  • Try pinging your Mac from the external device
Check firewall settings:
  • macOS may block incoming connections
  • When prompted, click “Allow” for Node.js/Bun
  • Check System Preferences → Security & Privacy → Firewall
Verify server is running:

Changes Not Appearing

For development server:
  • Hot reload should work automatically
  • Try hard refresh on the external device (Cmd+Shift+R on Safari)
  • Check the terminal for build errors
For production build:
  • You must rebuild after each change: pnpm run build
  • Restart the VibeTunnel server after building
  • Clear browser cache on the external device

Safari-Specific Issues

Enable Developer Mode on iOS/iPadOS:
  1. Settings → Safari → Advanced → Web Inspector (ON)
  2. Connect device to Mac via USB
  3. Open Safari on Mac → Develop menu → [Your Device]
  4. Select the page to inspect
Common Safari quirks:
  • Different touch event handling
  • Stricter security policies
  • Different viewport behavior
  • WebSocket connection issues

Advanced Testing Scenarios

Testing with HTTPS

Some features may require HTTPS. Use ngrok for secure tunneling:

Testing Different Network Conditions

Use Chrome DevTools or Safari Web Inspector to simulate:
  • Slow network connections
  • Offline mode
  • Different device viewports

Multi-Device Testing

Test on multiple devices simultaneously:

Security Considerations

Development only:
  • Only use --bind 0.0.0.0 on trusted networks
  • The dev server has no authentication
  • Consider using a firewall to restrict access
Production testing:
  • Always set a dashboard password
  • Use Tailscale or ngrok for remote access
  • Never expose unprotected servers to the internet

Debugging Tips

Console Access on Mobile

Safari on iOS/iPadOS:
  1. Enable Web Inspector (see above)
  2. Connect device to Mac
  3. Use Safari Developer Tools
Chrome on Android:
  1. Enable Developer Options
  2. Connect via USB
  3. Open chrome://inspect on desktop Chrome

Network Debugging

Monitor network requests:

Performance Profiling

Use browser developer tools to:
  • Profile JavaScript performance
  • Analyze rendering bottlenecks
  • Check memory usage
  • Monitor WebSocket traffic

Best Practices

  1. Always test on real devices - Emulators don’t catch all issues
  2. Test on multiple browsers - Safari, Chrome, Firefox behave differently
  3. Check different orientations - Portrait and landscape modes
  4. Test with poor network - Not everyone has fast Wi-Fi
  5. Verify touch interactions - Mouse events ≠ touch events
  6. Check responsive design - Different screen sizes and resolutions