Live updates
Run Laravel Reverb so the workspace updates the moment something changes.
Run Laravel Reverb so the workspace updates the moment something changes.
The project page updates live: chat replies, the agent’s progress, the sandbox’s status, publishing, sharing, and the Files panel. OneDrop pushes a short “this project changed” signal over WebSockets with Laravel Reverb, and the page then reloads only its live data. Nothing about the project goes over the socket itself.
Each project has a private channel, project.{id}. Only people who can see the project can listen on it.
Without Reverb, OneDrop still works: pages poll every second while the agent works, and the Files panel checks for changes every three seconds. If the connection drops, pages fall back to polling until it’s back.
Generate the Reverb app keys once:
php artisan reverb:install
That sets BROADCAST_CONNECTION=reverb and fills in REVERB_* in .env. composer dev then runs Reverb (on port 8080) next to the server, queue, and Vite.
The browser learns where to connect from the running app, not from the built assets, so one build works at any address.
| Variable | Default | Description |
|---|---|---|
BROADCAST_CONNECTION | log | reverb turns live updates on. Anything else means pages poll. |
REVERB_APP_ID | empty | Reverb app credentials. php artisan reverb:install generates them. |
REVERB_APP_KEY | empty | Public key browsers connect with. |
REVERB_APP_SECRET | empty | Signs channel authorizations and the app’s messages to Reverb. Keep it secret. |
REVERB_HOST | localhost | Where the app sends messages to Reverb. |
REVERB_PORT | 8080 | Port for REVERB_HOST. |
REVERB_SCHEME | http | http or https for REVERB_HOST. |
REVERB_BROWSER_HOST | REVERB_HOST | Where browsers connect, when that’s different. Empty means the app’s own address (servers use this, through Caddy). |
REVERB_BROWSER_PORT | REVERB_PORT | Port browsers connect to. |
REVERB_BROWSER_SCHEME | REVERB_SCHEME | https makes browsers use wss://. |
REVERB_SERVER_HOST | 0.0.0.0 | Address reverb:start listens on. Servers use 127.0.0.1. |
REVERB_SERVER_PORT | 8080 | Port reverb:start listens on. Servers use 8081. |
/app/<key>. If there is none, check BROADCAST_CONNECTION=reverb and run php artisan config:cache on servers.REVERB_HOST:REVERB_PORT. Failed sends are logged and don’t break the request that caused them.