Upgrade from 0.2 to 0.5
One-page path from Vellum 0.2 to the 0.5 stability freeze.
0.5 freezes config/vellum.php keys and page frontmatter. Do not rename keys after this unless you wait for 1.0.
PHP 8.4+ and Laravel 11, 12, or 13 did not change.
Update the package
composer update jimmyverburgt/vellum
php artisan vendor:publish --tag=vellum-config
Diff the published file against yours. Keep your values; take the new keys.
Keys added after 0.2
| Key | Default | Why |
|---|---|---|
search.driver |
minisearch |
MiniSearch or Scout. Live MiniSearch is a filtered route, not a public file. |
search.scout.index |
vellum |
Scout index name when that driver is on. |
components.namespaces |
['vellum'] |
Blade prefixes allowed as <x-…> in Markdown. |
components.allowlist |
empty | Keys for env, config, and route tags. Empty refuses every key. |
changelog.path |
CHANGELOG.md |
Keep a Changelog file. null disables the page and feed. |
changelog.unreleased |
false |
Show [Unreleased] on the HTML page. The feed never includes it. |
versions.labels |
[] |
Switcher text per slug (1.x (LTS), Next). Folder and URL stay the slug. |
Already in 0.2 and still valid: layout.search (sidebar or header), theme.preset, theme.primary, theme.radius, theme.default.
Colour presets
0.5 ships three presets: neutral, ocean and laravel. These nine were removed: black, vitepress, dusk, catppuccin, purple, solar, emerald, ruby, aspen.
Nothing breaks if you were using one. The site falls back to neutral, and vellum:build warns once with the name you set. Most of those presets existed to change a single accent colour; theme.accent now does that on any preset:
'theme' => [
'preset' => 'neutral',
'accent' => '#7c3aed',
],
The presets that stayed were retuned to clear WCAG AA (4.5:1) for body text, secondary text, links and button labels in both modes. See Theming.
Version URLs
If versions.enabled is true, the latest folder is now /docs/... with no version segment. /docs/{latest}/... 301s to the unprefixed URL. Older versions stay at /docs/v1/.... The switcher shows Latest for the latest slug unless you set versions.labels.
Update inbound links. Changelog stays at /docs/changelog.
Frontmatter
access is new: guest (default, 0.2 behaviour), auth, or a gate name. Folder meta.json / _meta.md inherit downward. See Gating.
Unchanged: title, description, slug, icon, order, full.
Search
Default stays in-browser MiniSearch. Set VELLUM_SEARCH_DRIVER=scout only if you already run Laravel Scout. vellum:export always writes MiniSearch JSON.
Markdown plus components
<x-…> islands, ::: directives, and value tags shipped in 0.3. Prefer ::: for callouts, tabs, steps, and cards. See Components and Extending.
Commands
vellum:index rebuilds the search compile cache (and Scout when that driver is on). vellum:build still compiles Markdown.