> ## Documentation Index
> Fetch the complete documentation index at: https://docs.filarank.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Install FilaRank and run the interactive installer

## Prerequisites

Before you begin, you must have:

* PHP 8.2+
* Laravel 11 or 12
* Filament v4

## Install the package

<Steps>
  <Step title="Require the package">
    ```bash theme={null}
    composer require usamamuneerchaudhary/filarank
    ```
  </Step>

  <Step title="Run the interactive installer">
    ```bash theme={null}
    php artisan filarank:install
    ```

    The interactive installer publishes the config and migration, offers to run `migrate`, then shows a checklist of your `app/Models` classes. For each model you pick it will:

    1. add the `HasSeo` trait (plus import) to the model,
    2. find the matching Filament resource anywhere under `app/Filament`, and — with your confirmation — append `SeoFields::make()` to the form and `SeoScoreColumn::make()` to the table, with imports.

    Patching is deliberately conservative: files are only modified when the expected structure is found, every edit is idempotent (safe to re-run), and anything that can't be patched automatically falls back to printed manual instructions.
  </Step>
</Steps>

<Tip>
  Use `--dry-run` to preview the changes without writing anything to disk:

  ```bash theme={null}
  php artisan filarank:install --dry-run
  ```
</Tip>

## Manual installation

Prefer to wire things up by hand? The manual steps below are exactly what the installer automates:

```bash theme={null}
php artisan vendor:publish --tag=filarank-migrations
php artisan migrate
```

Optionally publish the config, views, or translations:

```bash theme={null}
php artisan vendor:publish --tag=filarank-config
php artisan vendor:publish --tag=filarank-views
php artisan vendor:publish --tag=filarank-translations
```

<Tip>
  Once installed, head to [Usage](/usage) to prepare your model, add the SEO form section, show the score column, and render tags on your frontend.
</Tip>
