One release, every server.
Add every web server to a symflip project and click deploy. Each server fetches and builds the new release next to the live one. Only when every server is ready does each one switch, with one atomic symlink rename, all in parallel.
No half-built fleet.
If Composer, your build or a hook fails on any server, nothing goes live anywhere. Every server keeps serving the release it had. If a server fails to switch, or the release fails its health check with auto-rollback on, the servers that already switched roll back so the fleet ends on one release. If a rollback itself fails, symflip says so loudly.
Migrations once, not once per server.
Mark one server as primary. php artisan migrate --force runs there, once, before any server goes live. A failed migration stops the deploy with the fleet untouched.
Works on the sites you already have.
symflip deploys into its own directory (releases/, shared/, current), so it doesn't care when the site was created in Forge. Give it a new deploy path, point the site's nginx root at the new current/public once, and turn off Forge's push-to-deploy for that site so a push doesn't trigger both.
Rollback without a rebuild.
symflip keeps previous releases on every server (five by default, and you can change it), so rolling back is a symlink flip. A failed health check can roll the whole fleet back on its own. The one-click rollback button covers single-server projects today.
Nothing to install.
symflip connects over plain SSH. No agent runs on your servers, so nothing changes in how Forge manages them.