- What is glhd/linen used for in a Laravel application?
- Linen is a lightweight flat-file CMS for Laravel that renders Markdown and Blade files as a website, so you can publish docs, marketing pages, or small content sites without a database. Content lives in plain files in your repository, which keeps it version-controlled alongside your application code. It is installed as a normal Composer package and auto-registers through Laravel package discovery, so it adds a content layer without changing how the rest of your app is structured.
- How do I install Linen in a Laravel project?
- Install it with composer require glhd/linen and let Laravel's package discovery register the service provider automatically. If the package ships a publishable config file, publish it with the artisan vendor:publish command documented in the README. Because Linen is additive and sits at the framework layer, no application-level restructuring is required beyond adding your content files and routes.
- Does Linen require a database or migrations?
- No. Linen is explicitly database-free: content is read directly from Markdown and Blade files on disk rather than from Eloquent models or migrations. That makes it a good fit for documentation, landing pages, and other content that changes through pull requests instead of an admin panel. It also means content edits go through your normal deployment pipeline rather than a CMS UI.
- How do I organize pages and routes with Linen?
- Linen maps plain content files to routes, so you organize pages by organizing files rather than by writing a controller and model for each one. The exact naming and directory conventions are defined by the package, so check the README for the expected file layout before scaffolding a large site. Simple routing is the core value proposition, which means the package suits flat or shallowly nested content better than heavily dynamic URL structures.
- Can I use Blade syntax inside Linen content files?
- Yes. Linen renders both Markdown and Blade files, so static content can stay in Markdown while pages that need loops, conditionals, or components can be written as Blade. This lets you mix a mostly Markdown docs section with a few dynamic marketing pages in the same project. Since Blade renders with your application's context, keep an eye on what data those views expect.
- Which Laravel and PHP versions does Linen 0.1.0 support?
- Version 0.1.0 widens or shifts framework support to include Laravel 13, but the one-line changelog does not say which older majors remain supported. Before upgrading, inspect the illuminate/* constraint in the released composer.json to see whether Laravel 11 and 12 were retained or dropped, and check the declared PHP floor, since Laravel 13 implies a newer PHP minimum. If you are on an older Laravel major, confirm you are not stranded on 0.0.4 with no upgrade path.
- Is upgrading from Linen 0.0.4 to 0.1.0 a breaking change?
- Treat it as potentially breaking until you have read the diff. Linen is pre-1.0, and under conventional pre-1.0 semver a minor bump like 0.0.4 to 0.1.0 is allowed to carry breaking changes, so the version number alone is not a compatibility guarantee. Pin 0.0.4 as a known-good baseline, branch, bump to 0.1.0, and run your test suite before merging.
- How do I test a Laravel app that uses Linen?
- Because Linen resolves content from files rather than the database, your feature tests can assert against rendered responses with standard HTTP tests and no database seeding for the content itself. Keep your fixture content files in the test suite so route and rendering assertions stay deterministic. Also verify in CI that the installed Laravel major is actually the one you intend to run, since a widened constraint does not prove Laravel 13 is exercised in the package's own matrix.
- Is Linen production-ready and actively maintained?
- Linen is at 0.x, so its public API is not yet contractually frozen and minor releases may change behaviour. The 0.1.0 release contains a single line of release notes, which is thin disclosure for a minor bump, and no data is available here on test coverage, release cadence, or whether the project is single-maintainer. For production use, pin an exact version, review constraint diffs on each release, and avoid relying on undocumented internals.
- What are the alternatives to Linen for content in Laravel?
- The closest alternatives are database-backed CMS packages such as Statamic for full editorial workflows, static site generators like Jigsaw when you do not need Laravel at runtime, and simply writing Blade routes by hand for a handful of pages. Linen's niche is small, file-based content that ships with your Laravel app and needs no admin UI or database. If you need multi-author editing, revisions, or a control panel, a heavier CMS is usually the better trade.