PHPackages                             laravel/nova-pennant - 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. [Framework](/categories/framework)
4. /
5. laravel/nova-pennant

ActiveLibrary[Framework](/categories/framework)

laravel/nova-pennant
====================

A Pennant Resource Tool for Laravel Nova

v1.3.0(3mo ago)23187.5k↓44.2%2[4 issues](https://github.com/laravel/nova-pennant/issues)MITPHPPHP ^8.1CI failing

Since Dec 16Pushed 1w ago2 watchersCompare

[ Source](https://github.com/laravel/nova-pennant)[ Packagist](https://packagist.org/packages/laravel/nova-pennant)[ RSS](/packages/laravel-nova-pennant/feed)WikiDiscussions 1.x Synced 2d ago

READMEChangelog (6)Dependencies (20)Versions (11)Used By (0)

[![Nova Pennant](https://camo.githubusercontent.com/0fe92d4a44e39b9196188912a4d724b4e17b2210dae08b30a0bcaddb4a471e18/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f4e6f766125323050656e6e616e742e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d6c61726176656c2532466e6f76612d70656e6e616e74267061747465726e3d63616765267374796c653d7374796c655f31266465736372697074696f6e3d412b50656e6e616e742b5265736f757263652b546f6f6c2b666f722b4c61726176656c2b4e6f7661266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)](https://camo.githubusercontent.com/0fe92d4a44e39b9196188912a4d724b4e17b2210dae08b30a0bcaddb4a471e18/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f4e6f766125323050656e6e616e742e706e673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d6c61726176656c2532466e6f76612d70656e6e616e74267061747465726e3d63616765267374796c653d7374796c655f31266465736372697074696f6e3d412b50656e6e616e742b5265736f757263652b546f6f6c2b666f722b4c61726176656c2b4e6f7661266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)

This package makes it easy to view and manage Laravel Pennant features for your Laravel application inside of Nova.

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

[](#installation)

You can install the Nova tool via Composer:

```
composer require laravel/nova-pennant
```

Next, you must register the tool within the User Resource.

```
use Laravel\Nova\PennantTool\PennantTool;

/**
 * Get the fields displayed by the resource.
 *
 * @return array
 */
public function fields(NovaRequest $request)
{
    return [
        ID::make()->sortable(),

        Text::make('Name')
            ->sortable()
            ->rules('required', 'max:255'),

        Text::make('Email')
            ->sortable()
            ->rules('required', 'email', 'max:254')
            ->creationRules('unique:users,email')
            ->updateRules('unique:users,email,{{resourceId}}'),

        Password::make('Password')
            ->onlyOnForms()
            ->creationRules('required', Rules\Password::defaults())
            ->updateRules('nullable', Rules\Password::defaults()),

        PennantTool::make(),
    ];
}
```

Usage
-----

[](#usage)

### Authorization to Modify Feature Values

[](#authorization-to-modify-feature-values)

By default, Nova users will not have access to activate or deactivate features when they are authorized to see the resource. You need to use the `canRun()` method to authorize all or specific users.

```
use Laravel\Nova\Http\Requests\NovaRequest;
use Laravel\Nova\Nova;
use Laravel\Nova\PennantTool\PennantTool;

// ...

PennantTool::make()
    ->canRun(fn (NovaRequest $request) => Nova::user($request)->admin),
```

### Password Confirmation

[](#password-confirmation)

You can also require the user to confirm their password before activating or deactivating a feature by using `requiresConfirmPassword()` method:

```
use Laravel\Nova\PennantTool\PennantTool;

// ...

PennantTool::make()
    ->requiresConfirmPassword(),
```

### Rich Feature Values

[](#rich-feature-values)

In order to configure rich values Nova would need to depend on a class-based feature and utilize `options(mixed $scope)` method:

```
namespace App\Features;

class UserTier
{
    public $name = 'user-tier';

+   public function options(mixed $scope): array
+   {
+      return ['solo', 'pro'];
+   }
}
```

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance87

Actively maintained with recent releases

Popularity44

Moderate usage in the ecosystem

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~76 days

Recently: every ~101 days

Total

7

Last Release

106d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/463230?v=4)[Taylor Otwell](/maintainers/taylorotwell)[@taylorotwell](https://github.com/taylorotwell)

---

Top Contributors

[![crynobone](https://avatars.githubusercontent.com/u/172966?v=4)](https://github.com/crynobone "crynobone (74 commits)")

---

Tags

laravellaravel-novalaravel-pennant

###  Code Quality

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/laravel-nova-pennant/health.svg)

```
[![Health](https://phpackages.com/badges/laravel-nova-pennant/health.svg)](https://phpackages.com/packages/laravel-nova-pennant)
```

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M306](/packages/laravel-horizon)[laravel/sail

Docker files for running a basic Laravel application.

1.9k205.7M1.3k](/packages/laravel-sail)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M194](/packages/laravel-ai)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M151](/packages/laravel-mcp)[laravel/nova-log-viewer

A Laravel Nova tool for viewing your application logs.

137354.5k1](/packages/laravel-nova-log-viewer)[laravel/nova-devtool

Devtool for Laravel Nova Development

33625.5k188](/packages/laravel-nova-devtool)

PHPackages © 2026

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