PHPackages                             laravelplus/version-platform-manager - 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. laravelplus/version-platform-manager

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

laravelplus/version-platform-manager
====================================

A Laravel package for managing platform versions and showing what's new to users

v1.0.3(9mo ago)0418↓85%MITBladePHP ^8.4

Since Jul 14Pushed 6mo agoCompare

[ Source](https://github.com/LaravelPlus/version-platform-manager)[ Packagist](https://packagist.org/packages/laravelplus/version-platform-manager)[ RSS](/packages/laravelplus-version-platform-manager/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (4)Dependencies (5)Versions (5)Used By (0)

LaravelPlus Version Platform Manager
====================================

[](#laravelplus-version-platform-manager)

A Laravel package for managing platform versions and showing "what's new" content to users based on their current version.

Features
--------

[](#features)

- **Version Management**: Track platform versions and user versions
- **What's New Content**: Store and manage feature announcements
- **Smart Notifications**: Show modals to users based on their version
- **Version Comparison**: Compare user versions with platform versions
- **Admin Interface**: Manage versions and content through admin panel

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

[](#installation)

1. Install the package via Composer:

```
composer require laravelplus/version-platform-manager
```

2. Publish the configuration and migrations:

```
php artisan vendor:publish --provider="LaravelPlus\VersionPlatformManager\Providers\VersionPlatformManagerServiceProvider"
```

3. Run the migrations:

```
php artisan migrate
```

Usage
-----

[](#usage)

### Basic Usage

[](#basic-usage)

The package automatically handles version checking and modal display. Simply include the component in your views:

```

```

### Managing Platform Versions

[](#managing-platform-versions)

Add a new platform version:

```
use LaravelPlus\VersionPlatformManager\Models\PlatformVersion;

PlatformVersion::create([
    'version' => '1.0.0',
    'title' => 'Major Update',
    'description' => 'New features and improvements',
    'is_active' => true,
    'released_at' => now(),
]);
```

### Managing What's New Content

[](#managing-whats-new-content)

Add content for a specific version:

```
use LaravelPlus\VersionPlatformManager\Models\WhatsNew;

WhatsNew::create([
    'platform_version_id' => $version->id,
    'title' => 'New Feature',
    'content' => 'Description of the new feature',
    'type' => 'feature', // feature, improvement, bugfix, security
    'is_active' => true,
]);
```

### Checking User Versions

[](#checking-user-versions)

Check if a user needs to see updates:

```
use LaravelPlus\VersionPlatformManager\Services\VersionService;

$versionService = app(VersionService::class);
$needsUpdate = $versionService->userNeedsUpdate($user);
```

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

[](#configuration)

The package configuration file `config/version-platform-manager.php` contains:

- Default user version
- Modal display settings
- Version comparison logic
- Admin panel settings

Admin Sidebar (Dynamic Navbar)
------------------------------

[](#admin-sidebar-dynamic-navbar)

The admin sidebar is fully configurable via the `navbar_links` array in `config/version-platform-manager.php`.

You can add, remove, or reorder links. Each link supports:

- `label`: The text to display
- `route`: (optional) The Laravel route name to use
- `url`: (optional) A direct URL (internal or external)
- `icon`: (optional) SVG icon markup
- `target`: (optional) e.g. `_blank` to open in a new tab

**Example:**

```
'navbar_links' => [
    [
        'label' => 'Dashboard',
        'route' => 'version-manager.dashboard',
        'icon' => '',
    ],
    [
        'label' => 'Logs',
        'url' => '/admin/logs',
        'icon' => '',
        'target' => '_blank', // open in new tab
    ],
    // Add more links as needed
],
```

- If both `route` and `url` are present, `route` is used.
- The sidebar will highlight the active link for both route and URL types.
- You can use any SVG icon markup for the `icon` field.

Database Structure
------------------

[](#database-structure)

### Platform Versions Table

[](#platform-versions-table)

Stores platform version information:

- `version`: Version string (e.g., "1.0.0")
- `title`: Version title
- `description`: Version description
- `is_active`: Whether the version is active
- `released_at`: Release date

### What's New Table

[](#whats-new-table)

Stores feature announcements:

- `platform_version_id`: Reference to platform version
- `title`: Feature title
- `content`: Feature description
- `type`: Feature type (feature, improvement, bugfix, security)
- `is_active`: Whether the feature is active

### User Versions Table

[](#user-versions-table)

Tracks user version information:

- `user_id`: User reference
- `version`: User's current version
- `last_seen_version`: Last version the user has seen
- `updated_at`: Last update timestamp

Components
----------

[](#components)

### What's New Modal

[](#whats-new-modal)

The package provides a Blade component that automatically shows the modal when needed:

```

```

### Admin Components

[](#admin-components)

Admin components for managing versions and content:

```

```

API
---

[](#api)

### VersionService

[](#versionservice)

Main service for version management:

```
$versionService = app(VersionService::class);

// Check if user needs update
$needsUpdate = $versionService->userNeedsUpdate($user);

// Get user's current version
$version = $versionService->getUserVersion($user);

// Update user version
$versionService->updateUserVersion($user, '1.0.0');

// Get what's new for user
$whatsNew = $versionService->getWhatsNewForUser($user);
```

Events
------

[](#events)

The package fires several events:

- `UserVersionUpdated`: When a user's version is updated
- `PlatformVersionCreated`: When a new platform version is created
- `WhatsNewCreated`: When new content is added

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

[](#contributing)

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

License
-------

[](#license)

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

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance62

Regular maintenance activity

Popularity17

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

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 ~17 days

Total

4

Last Release

295d ago

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

v1.0.2PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/4e4629de002c40aef796e5b320091892f0b7b35b62497260c52cef3eb721eed1?d=identicon)[Nejcc](/maintainers/Nejcc)

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/laravelplus-version-platform-manager/health.svg)

```
[![Health](https://phpackages.com/badges/laravelplus-version-platform-manager/health.svg)](https://phpackages.com/packages/laravelplus-version-platform-manager)
```

###  Alternatives

[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17818.7k](/packages/markwalet-nova-modal-response)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

591.7k1](/packages/crumbls-layup)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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