spatie/laravel-og-image
Generate Open Graph images in Laravel from Blade-defined HTML. Automatically renders screenshots, serves them from a route, and caches files. Templates reuse your app’s CSS, fonts, and Vite assets—no external API required.
Pros:
Cons:
spatie/laravel-og-image).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Template Errors | Medium | Unit test Blade templates locally before deployment. |
| Queue Bottlenecks | High | Monitor queue length; scale workers. |
| Storage Costs | Medium | Implement aggressive caching (e.g., Redis) and CDN. |
| Dependency Conflicts | Low | Check for version conflicts with spatie/laravel-* packages. |
| Performance Spikes | Medium | Benchmark image generation time; optimize templates. |
@ogImage) and queue jobs out of the box.database, redis, etc.).local, s3, ftp, etc.).{{ $post->title }}).composer.json for exact version support).spatie/laravel-* packages with overlapping concerns.composer require spatie/laravel-og-image
php artisan vendor:publish --provider="Spatie\LaravelOgImage\OgImageServiceProvider"
config/laravel-og-image.php and resources/views/vendor/laravel-og-image.'defaultTemplate' => 'posts',
'storage' => 's3',
'queue' => 'default',
resources/views/vendor/laravel-og-image/posts.blade.php):
<div style="background: #fff; padding: 20px;">
<h1>{{ $post->title }}</h1>
<p>{{ Str::limit($post->excerpt, 100) }}</p>
</div>
@ogImage directive in Blade:
<meta property="og:image" content="{{ ogImage(['post' => $post]) }}">
use Spatie\LaravelOgImage\OgImage;
OgImage::create('posts')->queue($post);
php artisan queue:work.cache()->remember), middleware, and routing.spatie/laravel-permission, laravel-breeze).@ogImage directive for static content.spatie/laravel-og-image and Laravel core.failed_jobs table and implement retries for failed jobs.@ogImage directive is placed in Blade layouts.queue:failed-table for job failures.storage:link for local storage debugging.How can I help you explore Laravel packages today?