Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Seo Management Laravel Package

mahdijd/seo-management

Laravel SEO management package for controlling meta tags, titles, descriptions, canonical URLs, Open Graph data, sitemaps, robots directives, and redirects from your application. It centralizes on-page SEO configuration and generates search-friendly output with less custom boilerplate.

View on GitHub
Deep Wiki
Context7

Getting Started

This release is a compatibility release: the package now supports Filament 5 while continuing to support Filament 4. There are no new end-user features, so start by confirming which Filament major your application is on and whether your other Filament plugins are ready for the same major.

  1. Check your current Filament version:
    composer show filament/filament
    php artisan about
    
  2. Require the new release:
    composer require vendor/package:^1.1
    
  3. If the package ships config, migrations, or assets, publish them:
    php artisan vendor:publish --tag=package-config
    php artisan vendor:publish --tag=package-migrations
    php artisan vendor:publish --tag=package-assets
    
  4. Register the plugin in the relevant panel provider, typically app/Providers/Filament/AdminPanelProvider.php:
    use Vendor\Package\PackagePlugin;
    
    public function panel(Panel $panel): Panel
    {
        return $panel
            ->plugin(PackagePlugin::make());
    }
    
  5. Run migrations and clear Filament caches:
    php artisan migrate
    php artisan filament:optimize-clear
    php artisan optimize:clear
    

First use case: register the plugin on a single panel, load the panel in the browser, and confirm the plugin's resources, widgets, or UI extensions appear. If your app has multiple panels, register it only where it is needed rather than globally.

Implementation Patterns

Pin the Filament major in CI. Since v1.1.0 supports both Filament 4 and 5, test the package against the same Filament major your production app uses. A simple matrix in GitHub Actions or your CI provider catches accidental cross-major regressions:

matrix:
  filament: ['^4.0', '^5.0']

Then require the matching constraint in a test job:

composer require filament/filament:"${{ matrix.filament }}" --no-update
composer update

Keep plugin registration panel-scoped. Filament plugins are usually registered per panel. For multi-panel applications, create a small helper or conditional so the plugin is only added to panels that need it:

$panel->plugin(PackagePlugin::make())
    ->when(fn () => config('app.features.package_plugin'));

Publish only what you need to customise. Prefer config overrides and view overrides over forking the package. Publish views only when you need to change markup, and keep the published files under version control so upgrades are visible in diffs.

Use Filament's testing helpers for plugin-backed resources. If the package exposes resources or pages, write Livewire tests using Filament's testing utilities:

use function Pest\Livewire\livewire;

livewire(SomeResource\Pages\ListRecords::class)
    ->assertCanSeeTableRecords($records);

Treat the package as part of your Filament upgrade plan. When upgrading from Filament 4 to 5, upgrade Filament, this package, and your other Filament plugins together. Do not upgrade the package alone and assume the rest of the panel will work.

Use composer why-not before debugging dependency conflicts. With updated constraints in v1.1.0, conflicts are more likely to be caused by another package still pinning Filament 4 or 5:

composer why-not vendor/package:^1.1
composer why-not filament/filament:^5.0

Gotchas and Tips

  • Filament 5 support is not a Filament 5 upgrade. This release makes the package installable on Filament 5; it does not upgrade your application. Your Laravel, PHP, and other Filament plugin constraints must also allow Filament 5.
  • Check the lock file after upgrading. Updated dependency constraints can pull in newer transitive dependencies. Review composer.lock and run your test suite before deploying.
  • Asset publishing is not automatic. After upgrading, re-publish assets if the package ships CSS/JS. Use --force only when you intentionally want to overwrite customised published files.
  • Clear Filament's caches after plugin changes. Plugin registration, panel configuration, and compiled views are cached. php artisan filament:optimize-clear and php artisan optimize:clear resolve most "plugin not appearing" issues.
  • Watch for duplicate plugin registration. Registering the same plugin in both a panel provider and a service provider can cause duplicate navigation items or widgets. Choose one registration point.
  • Migrations may need republishing. If the package adds migrations in a future release, publish and review them before running migrate. Never run unreviewed package migrations directly in production.
  • Do not mix Filament majors in one application. Filament 4 and 5 cannot coexist in the same Composer install. If one plugin still requires Filament 4, keep the whole app on Filament 4 until it is compatible.
  • Use php artisan about and composer show when debugging. They quickly confirm the installed Filament and package versions, which is usually the first question when a panel behaves unexpectedly.
  • Extension points are preferable to forks. Check the package's config, render hooks, and published views before modifying vendor code. Forks make future compatibility releases, including Filament 6, harder to adopt.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib