Quick Blade is a Quick Look extension for macOS. Select a .blade.php file in Finder, press Space, and you get a styled preview of the page instead of a wall of raw Blade markup. It resolves the surrounding Laravel layout and inlines your compiled CSS, so the preview looks like your page, not like source code.
Then open the Quick Blade app once — macOS registers Quick Look extensions the first time their app launches. After that, quit it and forget about it; everything happens in Finder.
No. A lone Blade file previews with a clean built-in stylesheet. If the file lives inside a Laravel project, Quick Blade finds the project root and renders the full layout with your own CSS.
No. It never executes PHP, never talks to a server, and has no network access. It reads your project files, resolves the layout the way Laravel would, inlines the compiled CSS and images, and converts the Blade directives to plain HTML. What you see is a static rendering of your template, not your running app.
Templates are full of values that only exist at runtime — {{ $user->name }} is nobody until the app runs. Instead of stripping those to blank space, Quick Blade fills them with stand-ins picked by what the variable is called: names, emails, dates, prices. Loops repeat three times with three different people (Jane Doe, John Smith, Alex Rivera) so a table previews like a table. The stand-ins are deterministic — the same file previews the same way every time.
A static preview can't know which branch your app would take, so it shows all of them. Same reason every nav item can look active at once. The preview assumes data is present and you're signed in.
<img src="{{ $post->cover }}"> has no value without running your app, so Quick Blade swaps in a neutral gray placeholder instead of a broken-image icon. Images with real paths — anything in your project's public/ folder — are embedded in the preview for real.
Flux computes most of its styling at runtime: element classes, your brand accent color, which nav item is active. None of that exists in the static markup, so Quick Blade ships its own approximation of the Flux chrome — cards, sidebar, tables — in Flux's default look, light and dark. Your page's structure and content preview fine; the chrome is close, not exact.
Not much to show, honestly. In an Inertia app the Blade file is a mount point — an empty <div id="app"> — and the real UI lives in .vue or .tsx files that render in the browser. Quick Blade previews what's in the Blade file, so that's what you get.
I did build a working prototype that rendered the live page in Quick Look. I scrapped it: it could only ever show public, logged-out pages (Quick Look's web view uses a throwaway cookie jar, so anything behind auth renders as your login form), and your browser already has the site running, logged in, one Cmd+Tab away. So I left it out.
Interactive behavior comes from Alpine or your app's JavaScript bundle, and that bundle never loads in a preview — Quick Look loads no external resources. So collapsed sections may preview open, and toggles stay put.
macOS routes previews by file type, and .blade.php files are typed as PHP — so Quick Blade has to claim all PHP files to get the Blade ones. Once an extension claims a type, macOS won't fall back to its built-in preview for it; declining would leave plain PHP with no preview at all. So Quick Blade shows non-Blade PHP as readable source text.
Anywhere in your home folder, under any name — ~/Code, ~/Sites, ~/projects/client-stuff, doesn't matter. Quick Blade finds the Laravel root by walking up from the file you're previewing.
Desktop, Documents, Downloads, iCloud Drive, and external drives work differently, because macOS protects those folders. The first time you preview a file in one, macOS asks whether Quick Blade can access it. Allow it and the preview renders like anywhere else. It asks once per folder and remembers.
Either that permission prompt got declined, or macOS never asked. Without access to the folder, Quick Blade can still read the one file you're previewing — macOS hands it that — but not the layout and CSS sitting next to it, so you get bare content and a note at the bottom of the preview explaining why.
Two ways out. Open System Settings › Privacy & Security › Files and Folders, find Quick Blade, and switch on the folder you're working in — macOS won't ask again on its own, so that pane is the way back. Or move the project somewhere else in your home folder, which needs no permission at all.
I built exactly that — a folder picker in the app that captured a permission grant for the extension to use. It doesn't work, and can't: macOS refuses to let a Quick Look extension use security-scoped permissions granted through its main app. The picker looked like it worked and changed nothing, so I removed it rather than ship a placebo.
You don't need it anyway. For the folders that are actually protected, macOS asks you directly the first time you preview a file there, which is the part that does work.
The extension has read-only access to your home folder — that's what lets it resolve layouts, CSS, and images. It can't write anything, and neither the app nor the extension has network access of any kind. Nothing is collected or sent anywhere. There's no server to send it to.
App Store review rejects the read-only entitlement Quick Blade needs to see your project's layout, CSS, and images. Without it, a preview would be limited to the single file — no layout, no styling — which defeats the point. So Quick Blade ships as a notarized app outside the App Store, with the entitlement intact.
Not yet. Quick Blade includes a thumbnail extension, but on the macOS versions I've tested, the system never invokes third-party Quick Look thumbnail extensions — Apple's own thumbnailers have moved to a newer mechanism. If macOS starts dispatching them again, the thumbnails are already on board.