NativeBlade Portal
Test your NativeBlade apps on a real device, without ever installing the toolchain on it.
Like Expo Go, but for Laravel.
The Portal is a pre-built host app for NativeBlade. Install it once on your phone, paste the URL of your local dev server (or scan a QR), and your Laravel + Livewire app loads instantly — with full access to camera, push notifications, biometric, NFC, and every other plugin NativeBlade ships.
No Xcode. No Android Studio. No Rust. No build pipeline. Just install the Portal, point it at your computer, and ship.
- Developers who want to test NativeBlade apps on iPhone / Android without setting up the native toolchain
- Product folks who want to preview the next release on a real device
- Demo days where you need to show the app on stage without
nativeblade:devrunning on the projector - Cross-platform testing — same Portal app handles iOS, Android, and desktop
┌────────────────┐ ┌────────────────┐
│ Your laptop │ │ Your phone │
│ │ │ │
│ nativeblade:dev│ ◄── HTTP, same wifi ──►│ Portal app │
│ → vite serves │ │ → loads URL │
│ bundle.gz │ │ → renders │
└────────────────┘ └────────────────┘
- On your laptop, run
php artisan nativeblade:dev --host=192.168.1.42in your NativeBlade project - Open the Portal on your phone (must be on the same wifi)
- Paste
http://192.168.1.42:1420or scan the QR - Boom — your app is running natively
The Portal has every plugin pre-bundled, so anything your app does (NativeBlade::camera(), NativeBlade::scan(), push notifications, fingerprint, file picker, etc.) just works.
| Platform | How |
|---|---|
| iOS | App Store |
| Android | Google Play |
| Desktop | Releases (.msi, .dmg, .AppImage) |
Once installed, the Portal opens to a single screen:
- URL field — paste your dev server URL
- Scan QR — on mobile, tap to open the camera and scan a QR encoding the URL
- Recent — past URLs you've connected to, one tap to reconnect
That's the whole UX. After you connect, the screen disappears and your Laravel app takes over.
To go back to the Portal (e.g. switch projects), press Shift+Esc on desktop or use the gesture documented in your build.
Any QR generator works. The simplest:
# macOS / Linux — needs `qrencode`
echo "http://$(ipconfig getifaddr en0):1420" | qrencode -t ANSIUTF8
# Windows — paste the URL into qr.io or any web QR generatorShow that QR on screen, scan with the Portal — connected.
This repo is the source for the Portal app itself, built with NativeBlade. To build a custom-branded Portal (your company's logo, your colors, your bundle URL pre-filled):
git clone https://github.com/nativeblade/portal nativeblade-portal
cd nativeblade-portal
composer install
npm install
# Make your changes (logo, copy, etc.)
php artisan nativeblade:dev # preview locally
php artisan nativeblade:build android
php artisan nativeblade:build ios # macOS only — or use GitHub ActionsFor iOS without a Mac, see .github/workflows/README.md — it walks through building and shipping iOS entirely from Windows/Linux + GitHub Actions.
Because that's what it is — a portal you walk through to your app. The host app is the wrapper; your Laravel code is the world on the other side.
MIT.