jimmyverburgt / vellum
Markdown documentation sites for Laravel
Fund package maintenance!
Requires
- php: ^8.4
- ext-mbstring: *
- illuminate/console: ^11.0|^12.0|^13.0
- illuminate/contracts: ^11.0|^12.0|^13.0
- illuminate/http: ^11.0|^12.0|^13.0
- illuminate/routing: ^11.0|^12.0|^13.0
- illuminate/support: ^11.0|^12.0|^13.0
- illuminate/view: ^11.0|^12.0|^13.0
- league/commonmark: ^2.6
- league/config: ^1.2
- symfony/process: ^7.0|^8.0
- symfony/yaml: ^7.0|^8.0
- tales-from-a-dev/tailwind-merge-php: ^0.4
- tempest/highlight: ^2.28
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.18
- laravel/scout: ^11.8
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.0|^4.0|^5.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0|^5.0
Suggests
- laravel/scout: Required when vellum.search.driver is scout (Meilisearch or Typesense).
Provides
None
Conflicts
None
Replaces
- jimmyverburgt/vellum-core: v0.8.2
README
Documentation that ships with your Laravel app.
Vellum serves a folder of Markdown as a documentation site from the Laravel app you already deploy, with a sidebar, search, light and dark themes, and an optional static export. The docs live in your app's repository and ship with each deploy, so there is no second codebase or host to maintain.
Read the full documentation at vellum.jimmyverburgt.com. Config keys and page frontmatter have been frozen since 0.5, and breaking changes are held for 1.0.
Requirements
- PHP 8.4+
- Laravel 11, 12, or 13
Quick start
composer require jimmyverburgt/vellum php artisan vellum:install
Open /docs in your browser and edit the Markdown files in resources/docs/. In production,
compile the docs as part of each deploy:
php artisan vellum:build
Packages
Vellum is two Composer packages, released together under one version:
jimmyverburgt/vellumis the docs site: routes, layout, theme, search dialog and static export. This is the one to install.jimmyverburgt/vellum-coreis the engine under it: pages, navigation, versions, access rules, Markdown, the compiled cache, search and the changelog. It comes with the full package, and can be installed on its own when you render the docs yourself. See Core on its own.
Both are developed in this repository. Core is copied to a read-only repository on each release, which is what Packagist installs it from.
What it includes
- Markdown with
:::callouts, tabs, steps and cards, and your own<x-…>Blade components - Allowlisted
env,configandroutetags that print values from the running app - Server-side code highlighting with titles, line numbers and highlighted lines
- Client-side search over the sections of every page, or Laravel Scout
llms.txt, raw Markdown and content negotiation for AI tools and agents- Page access control through
author your existing Laravel gates - Optional versioned docs, with the latest version served without a prefix
- A changelog page and Atom feed built from a Keep a Changelog file
- Three colour presets tested for WCAG AA contrast, plus a brand accent colour
- Static HTML export for hosts that cannot run PHP
Documentation
The documentation site at vellum.jimmyverburgt.com is itself built with Vellum.
- Installation and configuration
- Writing: Markdown, code blocks, images, navigation
- Components and extending with your own
- Commands and troubleshooting
- Core on its own, for rendering the docs in your own front end
- Upgrading
The Markdown source for those pages is in docs/.
Commands
| Command | Description |
|---|---|
vellum:install |
Publish config, starter Markdown, and assets |
vellum:build |
Compile Markdown and rebuild the search index |
vellum:index |
Rebuild the search index only |
vellum:clear |
Clear the compiled cache |
vellum:export |
Export a static HTML site |
vellum:install and vellum:export come with the full package. The other three are part
of core.
Credits
Vellum's layout is modelled on Fumadocs, and its icons come from
Phosphor. The full list is in docs/credits.md.
Contributing
See CONTRIBUTING.md. Report security issues as described in SECURITY.md. Release notes are in CHANGELOG.md.
License
MIT. See LICENSE.md.