PHPackages                             fuelviews/laravel-sabhero-portfolio - 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. fuelviews/laravel-sabhero-portfolio

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

fuelviews/laravel-sabhero-portfolio
===================================

Sabhero portfolio package

v0.0.12(4mo ago)0905[1 PRs](https://github.com/fuelviews/laravel-sabhero-portfolio/pulls)MITPHPPHP ^8.3CI passing

Since Mar 27Pushed 1mo ago1 watchersCompare

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

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

SAB Hero Portfolio Package
==========================

[](#sab-hero-portfolio-package)

[![Latest Version on Packagist](https://camo.githubusercontent.com/06e94fd820ddb1911938aa822976322c2663eb1717eef77257984b732689d836/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6675656c76696577732f6c61726176656c2d7361626865726f2d706f7274666f6c696f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fuelviews/laravel-sabhero-portfolio)[![Total Downloads](https://camo.githubusercontent.com/ddf3cbc352a61cdc9d18dc960e48dc13bedcffa090ae5a5aa7d7757f15273715/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6675656c76696577732f6c61726176656c2d7361626865726f2d706f7274666f6c696f2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fuelviews/laravel-sabhero-portfolio)

A Laravel package for managing and displaying before/after image portfolios with a dynamic slider component. Perfect for renovation projects, home improvements, design transformations, or any visual comparison showcase.

Features
--------

[](#features)

- Filament admin panel integration for easy content management
- Before/After interactive slider component
- Customizable portfolio types with Filament UI integration
- Responsive image handling with transparent PNG support
- Configurable media storage disk support
- Livewire components for seamless frontend integration
- Import/Export functionality (CSV and Laravel migration formats)

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

[](#installation)

You can install the package via composer:

```
composer require fuelviews/laravel-sabhero-portfolio
```

You can publish and run the migrations with:

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

You can publish the config file with:

```
php artisan vendor:publish --tag="sabhero-portfolio-config"
```

Optionally, you can publish the views using

```
php artisan vendor:publish --tag="sabhero-portfolio-views"
```

Integration
-----------

[](#integration)

### 1. Attach to Filament Panel

[](#1-attach-to-filament-panel)

Add the SabHero Portfolio plugin to your Filament panel provider:

```
use Fuelviews\SabHeroArticle\Facades\SabHeroPortfolio;

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

Usage
-----

[](#usage)

### Admin Panel

[](#admin-panel)

After installation, you'll find a new "Portfolio" section in your Filament admin panel where you can

1. Create, edit, and delete portfolio entries
2. Upload before and after images
3. Categorize entries by type
4. Control spacing and ordering
5. Publish/unpublish entries

### Import/Export

[](#importexport)

The package includes powerful import/export functionality for backing up, migrating, and managing portfolio content.

**Available Operations:**

- **CSV Export** - Export portfolios with before/after images to ZIP file
- **CSV Import** - Import portfolios from ZIP file with images
- **Migration Export** - Export as production-ready Laravel migration with markdown files

**Access in Filament:**

1. Navigate to Portfolio → Entries in your admin panel
2. Click "Import Portfolios" (top-right) to import from ZIP
3. Select portfolios and use "Bulk actions" dropdown for export options

**For Complete Documentation:**See [IMPORT\_EXPORT.md](IMPORT_EXPORT.md) for:

- Detailed file format specifications
- Step-by-step workflows and use cases
- Migration installation instructions
- Troubleshooting guide
- Best practices for backup and deployment

### Frontend Display

[](#frontend-display)

You can display the before/after slider in your Blade views using Livewire:

For all portfolio types

```
@livewire('sabhero-portfolio::before-after-slider')
```

Or

```

```

For specific portfolio types

```
@livewire('sabhero-portfolio::before-after-slider', ['type' => 'commercial'])
```

Or

```

```

### Custom Portfolio Types

[](#custom-portfolio-types)

You can define custom portfolio types in the configuration file. Each type requires:

- A unique key (used in the database)
- A label (displayed in the UI, stored in lowercase)
- A color (used in the Filament admin panel)

### Custom Media Storage

[](#custom-media-storage)

By default, the package uses the disk configured in your Spatie Media Library config. You can override this in the package config

```
// config/sabhero-portfolio.php
    'media' => [
        'disk' => 'public',
    ],
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

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

[](#contributing)

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

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

[](#security-vulnerabilities)

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

Requirements
------------

[](#requirements)

- PHP 8.3 or higher
- Laravel 10.0 or higher
- Filament 3.0 or higher
- Spatie Media Library 10.0 or higher
- League CSV 9.0 or higher
- Symfony YAML 6.0 or higher

Credits
-------

[](#credits)

- [Joshua Mitchener](https://github.com/thejmitchener)
- [Daniel Clark](https://github.com/sweatybreeze)
- [Fuelviews](https://github.com/fuelviews)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance85

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 66.7% 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 ~26 days

Recently: every ~52 days

Total

12

Last Release

121d ago

PHP version history (2 changes)v0.0.1PHP ^8.3

v0.0.4PHP ^8.3||^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/dd4a27681d2fe0a911a7c32f6ce4a54822748a6443892a27d7f6c651370559d8?d=identicon)[fuelviews](/maintainers/fuelviews)

---

Top Contributors

[![thejmitchener](https://avatars.githubusercontent.com/u/64335706?v=4)](https://github.com/thejmitchener "thejmitchener (12 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")[![sweatybreeze](https://avatars.githubusercontent.com/u/67076156?v=4)](https://github.com/sweatybreeze "sweatybreeze (1 commits)")

---

Tags

laravelFuelviewssabhero-portfolio

###  Code Quality

TestsPest

Static AnalysisRector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/fuelviews-laravel-sabhero-portfolio/health.svg)

```
[![Health](https://phpackages.com/badges/fuelviews-laravel-sabhero-portfolio/health.svg)](https://phpackages.com/packages/fuelviews-laravel-sabhero-portfolio)
```

###  Alternatives

[spatie/laravel-data

Create unified resources and data transfer objects

1.7k28.9M627](/packages/spatie-laravel-data)[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

320392.1k17](/packages/codewithdennis-filament-select-tree)[ralphjsmit/laravel-filament-components

A collection of reusable components for Filament.

10972.2k2](/packages/ralphjsmit-laravel-filament-components)[codebar-ag/laravel-filament-json-field

A Laravel Filament JSON Field integration with CodeMirror support

1124.1k](/packages/codebar-ag-laravel-filament-json-field)[worksome/exchange

Check Exchange Rates for any currency in Laravel.

123544.7k](/packages/worksome-exchange)[ralphjsmit/livewire-urls

Get the previous and current url in Livewire.

82270.3k4](/packages/ralphjsmit-livewire-urls)

PHPackages © 2026

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