v1.0.0-beta.3
Pre-release
Pre-release
Highlights
⚠️ Breaking changes
- SEO head management moved to first-party laravel/head —
romanzipp/laravel-seowas dropped (#23). Host apps must:- Render
@headin their layout instead of{{ seo()->render() }}, and own the static<meta charset>, viewport, and csrf-token tags (see the updated stub layout) - Replace the removed
@seoTitle/@seoDescriptiondirectives withHead::title(...)->description(...)calls — page titles now inherit the site-name suffix/prefix from settings automatically - The
seo()helper,@seoRobots/@seoCanonical/@seoImagedirectives, andfavicon_tags()helper no longer exist
- Render
🧠 Head & SEO engine
AddSeoDefaultsrebuilt on laravel/head's layer model: CMS settings feed a request-invariant defaults layer (title affixes, description, canonical, robots, OpenGraph,twitter:site, theme color, icons); per-page metadata lands in the runtime layer (#23)- New host-app override hook:
AddSeoDefaults::registering(fn (HeadBuilder $head) => ...)— register app defaults from a service provider and they win over CMS defaults field-by-field - Worker-mode safe: the twitter card is set per request in the runtime layer, so Octane/FrankenPHP long-running workers can't leak it across requests
- spatie/laravel-og-image tag-ownership contract preserved: pages the og-image feature resolves for emit no competing
og:image/twitter:image/twitter:card - Per-post
seo_og_title/seo_og_descriptionrender raw (no site-name affix); twitter:title/description are derived automatically - Breadcrumb JSON-LD now built with laravel/head's
Schema::breadcrumbs()
🧹 Favicons
- Favicon and apple-touch-icon tags are emitted only for files the favicon generator actually produced — no more dead links on fresh installs
- Obsolete
mstile-*images andmsapplication-*meta tags removed
🧰 Maintenance
- Composer and bun dependency refresh; Pint Blade formatting pass