PHPackages                             buzkall/finisterre - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. buzkall/finisterre

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

buzkall/finisterre
==================

Helper package

2.0.7(1mo ago)0228↓50%[2 PRs](https://github.com/buzkall/finisterre/pulls)MITPHPPHP ^8.3CI passing

Since Aug 10Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/buzkall/finisterre)[ Packagist](https://packagist.org/packages/buzkall/finisterre)[ Docs](https://github.com/buzkall/finisterre)[ RSS](/packages/buzkall-finisterre/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (34)Versions (93)Used By (0)

Finisterre
==========

[](#finisterre)

My helper package

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require buzkall/finisterre
```

For Filament 3, use the v1 branch:

```
composer require buzkall/finisterre:^1.0
```

**Critical:** After installation, you must publish Filament assets for the kanban board to work:

```
php artisan filament:assets
```

Without this step, the kanban board will load but drag-and-drop functionality will not work due to missing JavaScript assets.

You can publish the config file with:

```
php artisan vendor:publish --tag="finisterre-config"
```

By default, the package will not be active; this can be changed by adding the following to your .env file

```
FINISTERRE_ACTIVE=true
```

**Important:** If your Filament panel uses a different ID than `admin`, add this to your `.env`:

```
FINISTERRE_PANEL_SLUG=your-panel-id
```

To find your panel ID, check your `PanelProvider.php` for `->id('...')`. For example, if your panel uses `->id('filament')`, set `FINISTERRE_PANEL_SLUG=filament`.

You can change the name of the table in the config file You need to publish and run the migrations with:

```
php artisan vendor:publish --tag="finisterre-migrations"
php artisan migrate
```

If you don't already have the spatie tags package, publish the migrations

```
php artisan vendor:publish --provider="Spatie\Tags\TagsServiceProvider" --tag="tags-migrations"
php artisan migrate
```

Same for spatie media package

```
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan migrate
```

The tasks are linked to users, but the project can have a different model for users. You can change the model in the config file and the name attribute column Also, there is a trait to be included in the user's model

```
use Buzkall\Finisterre\Traits\FinisterreUserTrait;

```

Optionally, you can publish the views using

```
php artisan vendor:publish --tag="finisterre-views"
```

**Important:** You must publish Filament assets (including Flowforge kanban JavaScript) with:

```
php artisan filament:assets
```

This command publishes all Filament plugin assets, including the Flowforge kanban board JavaScript required for drag-and-drop functionality. **Run this command after installing or updating the package**, otherwise the kanban board will load but drag-and-drop will not work.

Filament Theme CSS
------------------

[](#filament-theme-css)

If you are using a [custom Filament theme](https://filamentphp.com/docs/4.x/styling/overview), you need to add the following lines to your theme's CSS file (e.g. `resources/css/filament/admin/theme.css`) so Tailwind scans the package views for classes:

```
@source '../../../../vendor/buzkall/finisterre/resources/views';
@source '../../../../vendor/relaticle/flowforge/resources/views';
```

The package comes with a default policy for the tasks that can be overridden in the config file and set your own policy

```
'model_policy' => Buzkall\Finisterre\Policies\FinisterreTaskPolicy::class,
```

Usage
-----

[](#usage)

Add the plugin to your panel provider and specify the permissions

```
use Buzkall\Finisterre\FinisterrePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            FinisterrePlugin::make()
                ->userCanViewAllTasks(fn() => auth()->user()?->hasRole(RoleEnum::Admin))
                ->userCanViewOnlyTheirTasks(fn() => auth()->user()?->hasAnyRole([RoleEnum::Editor, RoleEnum::Manager])),
        ])
    ])
}
```

SMS notifications
-----------------

[](#sms-notifications)

Using smsarena.es as provider. By default, only notifies tasks on creation with priority TaskPriorityEnum::Urgent That can be changed in the config file

Add to your .env file the following:

```
# Finisterre
FINISTERRE_SMS_ENABLED=false
FINISTERRE_SMS_AUTH_KEY=CHANGE
FINISTERRE_SMS_SENDER=CHANGE
FINISTERRE_SMS_NOTIFY_TO=CHANGE

```

Role restriction for Task Reports
---------------------------------

[](#role-restriction-for-task-reports)

TODO

Development
-----------

[](#development)

To build the CSS assets after making changes to Tailwind classes:

```
npm run build:styles
```

Testing
-------

[](#testing)

```
composer test
```

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance89

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 91.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

91

Last Release

56d ago

Major Versions

0.5.3 → 1.0.02024-10-11

1.x-dev → 2.0.02026-02-09

PHP version history (3 changes)0.1PHP ^8.1

0.2.0PHP ^8.2

1.1.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/26c36b79ed81995dd1326cb877e30a38fff6c397bfd8b16cf5685d8d1fc8ffd7?d=identicon)[buzkall](/maintainers/buzkall)

---

Top Contributors

[![buzkall](https://avatars.githubusercontent.com/u/5702?v=4)](https://github.com/buzkall "buzkall (209 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (12 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (8 commits)")

---

Tags

laravelbuzkallfinisterre

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/buzkall-finisterre/health.svg)

```
[![Health](https://phpackages.com/badges/buzkall-finisterre/health.svg)](https://phpackages.com/packages/buzkall-finisterre)
```

###  Alternatives

[guava/calendar

Adds support for vkurko/calendar to Filament PHP.

298241.0k3](/packages/guava-calendar)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

205144.8k5](/packages/bezhansalleh-filament-google-analytics)[jibaymcs/filament-tour

Bring the power of DriverJs to your Filament panels and start a tour !

12247.8k](/packages/jibaymcs-filament-tour)[marcelweidum/filament-expiration-notice

Customize the livewire expiration notice

9169.0k4](/packages/marcelweidum-filament-expiration-notice)[hydrat/filament-table-layout-toggle

Filament plugin adding a toggle button to tables, allowing user to switch between Grid and Table layouts.

6292.3k1](/packages/hydrat-filament-table-layout-toggle)[outerweb/filament-settings

Filament integration for the outerweb/settings package

3690.9k4](/packages/outerweb-filament-settings)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
