- What is aschmelyun/cleaver and what is it used for?
- Cleaver is a static site generator built on Laravel's Blade templating engine. You write pages as Blade views and content files, run a build command, and Cleaver renders them into plain HTML that can be hosted anywhere. It is pulled in with Composer inside a Laravel project, but the finished output needs no PHP at runtime.
- How do I install Cleaver in a Laravel application?
- Install it with Composer as a dev dependency, typically composer require aschmelyun/cleaver --dev, from the root of an existing Laravel app. You then build the site with the Artisan command the package exposes, which renders your Blade views into an output directory. Keeping it in require-dev means it never ships to your production Composer install.
- Does Cleaver support Laravel 10, Laravel 11 and PHP 8.2 or 8.3?
- The last tagged release was in August 2022, during the Laravel 9 era, so Laravel 10, 11 and newer PHP versions are not guaranteed by the published constraints. Check the require block in its composer.json and prove a build on a throwaway branch before committing to it. Because Cleaver only runs at build time, an incompatibility affects your build pipeline rather than your production runtime.
- Does Cleaver need a database or a running Laravel app in production?
- No. Cleaver renders Blade templates to static HTML at build time, so the deployed site needs no database, no queue, and no PHP-FPM. After a successful build you could remove the package entirely and the generated HTML would keep working. That makes the long-term coupling to the package very low.
- How do I deploy a site generated with Cleaver?
- Copy the generated output directory to any static host, such as Netlify, Vercel, Cloudflare Pages, GitHub Pages, an S3 bucket, or a plain Nginx document root. Because the result is just HTML, CSS and assets, there is no PHP runtime to provision and caching is straightforward. Most teams wire the build command into a CI step so each push regenerates and publishes the site.
- Can I use my existing Blade components and Tailwind setup with Cleaver?
- Yes. Cleaver renders through Blade, so layouts, components, slots, includes and the usual Blade directives behave much as they do in a normal Laravel view. Tailwind or any other CSS toolchain still needs its own compile step through Vite, Mix or the Tailwind CLI. The compiled assets are then copied into the output folder alongside the generated HTML.
- Can Cleaver handle Markdown content as well as Blade templates?
- Cleaver is designed to mix Markdown content with Blade templates, so prose-heavy pages can stay in Markdown while layouts and reusable partials stay in Blade. That combination makes it a natural fit for blogs, documentation and marketing pages where most content is static. Check the built output for any page that relies on front matter, since that is where rendering surprises usually show up.
- How do I preview or test a Cleaver site before deploying it?
- During development you can render pages through Laravel and review them in the browser, then run a real build to confirm the static output. Serving the generated directory with any static file server, such as php -S or npx serve, is the quickest way to verify that links, images and assets resolve correctly. Always inspect the built files rather than only the dev preview, because the build is exactly what visitors will receive.
- Is Cleaver still maintained, and what are the alternatives?
- Cleaver's last release was in August 2022 and there has been little activity since, so treat it as a stable one-time generator rather than an actively developed dependency. For a static site the risk is contained, because the output is plain HTML and the package can be dropped later, but a new Laravel major may require a fork or a pinned environment. Tighten's Jigsaw is the best-known Blade-based alternative if you want active maintenance and features such as collections and pagination.
- Can I customize the output, and is the generated code reviewable?
- Your Blade views, layouts and partials live in your own repository, so changes are reviewed in a normal pull request like any other code. Cleaver re-renders from those source views on each build, which means customization happens in your templates rather than by patching the package. If the project is ever abandoned, you still own the views and the generated HTML, so there is no hard lock-in.