PHPackages                             awcodes/recently - 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. awcodes/recently

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

awcodes/recently
================

Easily track and access recently viewed records in your filament panels.

v3.0.1(3mo ago)4224.3k—8.5%12[2 PRs](https://github.com/awcodes/recently/pulls)MITPHPPHP ^8.2CI passing

Since Sep 4Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/awcodes/recently)[ Packagist](https://packagist.org/packages/awcodes/recently)[ Docs](https://github.com/awcodes/recently)[ GitHub Sponsors](https://github.com/awcodes)[ RSS](/packages/awcodes-recently/feed)WikiDiscussions 3.x Synced 1mo ago

READMEChangelog (10)Dependencies (9)Versions (15)Used By (0)

Recently
========

[](#recently)

Easily track and access recently viewed records in your filament panels.

[![Latest Version](https://camo.githubusercontent.com/7b961089805fc92caa75a4abe0bd285737c013e27cb11ec3f95f9ba56a75dae0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6177636f6465732f726563656e746c792e7376673f7374796c653d666c61742d73717561726526636f6c6f723d626c7565266c6162656c3d52656c65617365)](https://github.com/awcodes/recently/releases)[![MIT Licensed](https://camo.githubusercontent.com/a7e65aee57b11d28e4caff8b945729a66be0bb663f7f93bd24c5aa65699f148e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Total Downloads](https://camo.githubusercontent.com/34a43462101f6da28b00b4d3bc6236acf5920002aad1ab6d6914ed7491cea32a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6177636f6465732f726563656e746c792e7376673f7374796c653d666c61742d73717561726526636f6c6f723d626c7565266c6162656c3d446f776e6c6f616473)](https://packagist.org/packages/awcodes/recently)[![GitHub Repo stars](https://camo.githubusercontent.com/2e8a7cd9019d9b393bf278302543fbb35ce4a3a74b5894ccf8f746f461a00f84/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6177636f6465732f726563656e746c793f7374796c653d666c61742d73717561726526636f6c6f723d626c7565266c6162656c3d5374617273)](https://github.com/awcodes/recently/stargazers)

Compatibility
-------------

[](#compatibility)

Package VersionFilament Version1.x3.x2.x4.x3.x5.xInstallation
------------

[](#installation)

You can install the package via composer then run the installation command and follow the prompts:

```
composer require awcodes/recently
```

```
php artisan recently:install
```

Important

If you have not set up a custom theme and are using Filament Panels follow the instructions in the [Filament Docs](https://filamentphp.com/docs/4.x/styling/overview#creating-a-custom-theme) first.

After setting up a custom theme add the plugin's views to your theme css file or your app's css file if using the standalone packages.

```
@source '../../../../vendor/awcodes/recently/resources/**/*.blade.php';
```

Usage
-----

[](#usage)

The plugin adds a “Recently Viewed” functionality in your filament panel(s), letting users quickly access resources they’ve recently interacted with. It tracks views/visits to `EditRecord` and `ViewRecord` pages of resources where it’s enabled.

### Registering the plugin

[](#registering-the-plugin)

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make(),
        ])
}
```

### Possible Conflicts

[](#possible-conflicts)

If you are using `QuickCreatePlugin` or `OverlookPlugin` you will need to exclude the `RecentEntryResource` from them.

```
OverlookPlugin::make()
    ->excludes([
        RecentEntryResource::class,
    ]),
QuickCreatePlugin::make()
    ->excludes([
        RecentEntryResource::class,
    ]),
```

### Tracking Recent

[](#tracking-recent)

To record recent edits/views, include the trait on `EditRecord` or `ViewRecord` pages of the resources you want to monitor:

**Recent Edits**:

```
use Awcodes\Recently\Concerns\HasRecentHistoryRecorder;

class EditUser extends EditRecord
{
    use HasRecentHistoryRecorder;

    protected static string $resource = UserResource::class;
}
```

**Recent Views**:

```
class ViewUser extends ViewRecord
{
    use HasRecentHistoryRecorder;

    protected static string $resource = UserResource::class;
}
```

Configuration
-------------

[](#configuration)

You can enable/disable or customize the plugin's features either globally through the `config` file or per panel.

```
// config/recently.php
return [
    'user_model' => App\Models\User::class,
    'max_items' => 20,
    'width' => 'xs',
    'global_search' => true,
    'menu' => true,
    'icon' => 'heroicon-o-arrow-uturn-left',
];
```

### Global Search

[](#global-search)

By default, the plugin will list the recent visits/views as part of the global search results. To disable this feature, set the `global_search` option to `false` from the config or by passing `false` to the `globalSearch()` method per panel.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->globalSearch(condition: false),
        ])
}
```

### Menu

[](#menu)

By default, the plugin will list the recent visits/views as a dropdown menu in the topbar using the `PanelsRenderHook::USER_MENU_BEFORE` render hook. To disable this feature, set the `menu` option to `false` in the config or by passing `false` to the `menu()` method per panel.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->menu(condition: false),
        ])
}
```

Appearance
----------

[](#appearance)

### Icon

[](#icon)

Set a custom `icon` for the **menu**.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->icon('heroicon-o-clock'),
        ]);
}
```

### Rounded

[](#rounded)

The menu icon is round you can opt out of this by passing `false` to the `rounded()` method.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->rounded(condition: false),
        ]);
}
```

### Label

[](#label)

The menu has no label, but you can set a custom `label` by passing a string to the `label()` method.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->label('Recently Viewed Records'),
        ]);
}
```

### Width

[](#width)

The dropdown menu uses the filament [dropdown blade component](https://filamentphp.com/docs/3.x/support/blade-components/dropdown#setting-the-width-of-a-dropdown), so you can use any of the options available, the default is `xs`.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->width('sm'),
        ]);
}
```

### Max Items

[](#max-items)

Specify the maximum number of recently viewed items to display in the **menu**.

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->maxItems(10),
        ]);
}
```

### Render Hook

[](#render-hook)

The plugin will render the menu using the `PanelsRenderHook::USER_MENU_BEFORE` hook. However, you can change this using the `renderUsingHook()` method by providing one of the other available filament [Render Hooks](https://filamentphp.com/docs/3.x/support/render-hooks).

```
use Awcodes\Recently\RecentlyPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            RecentlyPlugin::make()
                ->renderUsingHook('PanelsRenderHook::USER_MENU_AFTER'),
        ]);
}
```

Testing
-------

[](#testing)

```
composer test
```

Contributing
------------

[](#contributing)

If you want to contribute to this plugin, you may want to test it in a real Filament project:

- Fork this repository to your GitHub account.
- Create a Filament app locally.
- Clone your fork in your Filament app's root directory.
- In the `/recently` directory, create a branch for your fix, e.g. `fix/error-message`.

Install the plugin in your app's `composer.json`:

```
"require": {
    "awcodes/recently": "dev-fix/error-message as main-dev",
},
"repositories": [
    {
        "type": "path",
        "url": "recently"
    }
]
```

Now, run `composer update`.

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Adam Weston](https://github.com/awcodes)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance83

Actively maintained with recent releases

Popularity41

Moderate usage in the ecosystem

Community19

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 61.2% 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 ~41 days

Recently: every ~10 days

Total

14

Last Release

77d ago

Major Versions

v1.0.6 → v2.0.0-beta.12025-06-20

v2.0.0 → v3.0.02026-01-19

2.x-dev → 3.x-dev2026-03-02

PHP version history (2 changes)v1.0.0PHP ^8.1

v2.0.0-beta.1PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3596800?v=4)[Adam Weston](/maintainers/awcodes)[@awcodes](https://github.com/awcodes)

---

Top Contributors

[![awcodes](https://avatars.githubusercontent.com/u/3596800?v=4)](https://github.com/awcodes "awcodes (41 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (8 commits)")[![bezhanSalleh](https://avatars.githubusercontent.com/u/10007504?v=4)](https://github.com/bezhanSalleh "bezhanSalleh (7 commits)")[![dissto](https://avatars.githubusercontent.com/u/11778632?v=4)](https://github.com/dissto "dissto (4 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (3 commits)")[![atmonshi](https://avatars.githubusercontent.com/u/1952412?v=4)](https://github.com/atmonshi "atmonshi (2 commits)")[![makroxyz](https://avatars.githubusercontent.com/u/2069949?v=4)](https://github.com/makroxyz "makroxyz (1 commits)")[![samuelterra22](https://avatars.githubusercontent.com/u/11915449?v=4)](https://github.com/samuelterra22 "samuelterra22 (1 commits)")

---

Tags

filamentfilament-pluginpluginlaravelfilamentawcodesrecently

###  Code Quality

TestsPest

Static AnalysisRector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/awcodes-recently/health.svg)

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

###  Alternatives

[pboivin/filament-peek

Full-screen page preview modal for Filament

253319.6k12](/packages/pboivin-filament-peek)[awcodes/filament-badgeable-column

Filament Tables column to append and prepend badges.

142419.3k3](/packages/awcodes-filament-badgeable-column)[awcodes/filament-table-repeater

A modified version of the Filament Forms Repeater to display it as a table.

262815.1k5](/packages/awcodes-filament-table-repeater)[awcodes/filament-curator

A media picker plugin for FilamentPHP.

434297.7k19](/packages/awcodes-filament-curator)[awcodes/light-switch

Plugin to add theme switching (light/dark/system) to the auth pages for Filament Panels

4789.9k2](/packages/awcodes-light-switch)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

124139.3k2](/packages/dotswan-filament-map-picker)

PHPackages © 2026

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