{{-- Deploy / maintenance splash — shown while `scripts/deploy-update.sh` holds its short maintenance window (migrate → cache rebuild → php-fpm reload, ~10-20s). This file is PRE-RENDERED to static HTML by `artisan down --render` and stored in storage/framework/maintenance.php, which public/index.php serves BEFORE the autoloader and the framework boot. Two consequences that shape everything here: 1. Only $retryAfter is available (DownCommand::prerenderView passes nothing else — reading an undefined $exception here is what silently broke the old --render="errors::503" and dropped us to Laravel's plain page). 2. Every byte must be self-contained: no @vite, no asset(), no Google Fonts. public/build is being rewritten seconds before this page appears, and a request for a font would be a needless dependency at the exact moment the app is least able to serve one. Countdown → "Almost Done !!!" → auto-poll → reload the moment the site is back, so the visitor never has to press anything. This is the FULL PAGE LOAD path. An Inertia XHR that hits the window is handled entirely on the front end by resources/js/utils/maintenanceNotice.js — there the person is standing on a working page with a half-filled form, so the useful message is "nothing was saved, do it again", not a reload. See the `embedded` guard below for what happens when an old cached bundle routes here anyway. --}} Updating — Property Lab {{-- No-JS fallback: the browser retries on its own. --}}
10

Property Lab

We're updating our site

Please wait around 10 seconds — you'll be sent back automatically.