Your Laravel Cloud apps, one click away. Cloudbar is a macOS menu bar app — built with Laravel, Livewire, and NativePHP — that puts your Laravel Cloud applications a single click from anywhere.
- ☁️ A cloud icon lives in your menu bar. Click it to see every app across your organizations.
- 🚀 Deploy any environment with two clicks (inline confirm — no dialogs).
- 🌐 Open any app's URL, or jump straight to its Laravel Cloud dashboard.
- 🛰 The tray icon is live status: violet while a deployment is in flight, red when one fails, green for a moment when it succeeds.
- 🔔 Native macOS notifications when deployments finish — including deploys started from
git push. - 🔍 Search, multiple organizations, environment drill-down, dark & light mode.
Cloudbar talks to the official Laravel Cloud API. You paste an org-scoped API token (Laravel Cloud → Organization Settings → API tokens → Create); Cloudbar validates it against /meta/organization and stores it encrypted, locally in the app's SQLite database. Nothing leaves your machine except calls to cloud.laravel.com.
Statuses stay fresh three ways: an adaptive Livewire poll (20s idle, 5s while anything is deploying), a refresh when the panel opens, and a scheduler fallback every minute so the tray icon stays truthful even when the panel is closed.
composer run setup # install, .env, key, migrate, npm, build
composer native:dev # run the desktop app + Vite dev serverWant the panel full of believable data while designing? php artisan db:seed --class=DemoSeeder, then open http://cloud.test in a browser (the panel is just a Livewire page).
Regenerate every icon (tray states + app icon — all drawn in code with GD):
php artisan app:make-iconscomposer test # pint + phpstan (larastan) + pestphp artisan native:build macSet NATIVEPHP_APPLE_ID, NATIVEPHP_APPLE_ID_PASS, and NATIVEPHP_APPLE_TEAM_ID in .env for signing + notarization, and bump NATIVEPHP_APP_VERSION per release.
| Piece | Where |
|---|---|
| Laravel Cloud API client (JSON:API) | app/Services/Cloud/CloudClient.php, JsonApiDocument.php |
| Sync engine + deployment watching | app/Services/Cloud/SyncService.php |
| Tray icon state machine | app/Support/Tray.php |
| Safe NativePHP facade wrapper | app/Support/NativeBridge.php (no-ops in browser/tests) |
| Menu bar panel (Livewire) | app/Livewire/Menubar.php + resources/views/livewire/menubar/ |
| Scheduler fallback sync | app/Console/Commands/SyncCloud.php |
| Icon generation | app/Console/Commands/MakeIcons.php |