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(5mo ago)22201.5k↓41.3%2[4 issues](https://github.com/laravel/nova-pennant/issues)MITPHPPHP ^8.1CI failing

Since Dec 16Pushed 1mo 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 2w 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

50

—

FairBetter than 95% of packages

Maintenance78

Regular maintenance activity

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

152d 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.2k99.8M354](/packages/laravel-horizon)[laravel/sail

Docker files for running a basic Laravel application.

1.9k212.4M1.5k](/packages/laravel-sail)[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M319](/packages/laravel-ai)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

79227.1M227](/packages/laravel-mcp)[laravel/nova-log-viewer

A Laravel Nova tool for viewing your application logs.

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

Devtool for Laravel Nova Development

32724.3k205](/packages/laravel-nova-devtool)

PHPackages © 2026

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