PHPackages                             kirbycode/media-hub - 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. [Image &amp; Media](/categories/media)
4. /
5. kirbycode/media-hub

ActiveKirby-plugin[Image &amp; Media](/categories/media)

kirbycode/media-hub
===================

Centralized media library for Kirby CMS 5 — WordPress-style asset management with folder organisation, metadata, search, and a custom picker field.

v1.0.2(today)00MITJavaScript

Since Jun 8Pushed todayCompare

[ Source](https://github.com/logitechshiv/kirby-media-hub)[ Packagist](https://packagist.org/packages/kirbycode/media-hub)[ Docs](https://github.com/logitechshiv/kirby-media-hub)[ RSS](/packages/kirbycode-media-hub/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

Kirby Media Hub
===============

[](#kirby-media-hub)

A centralized media library plugin for [Kirby CMS](https://getkirby.com) 5 — WordPress-style asset management built directly into the Panel.

[![Kirby Media Hub — Panel overview](screenshots/preview.png)](screenshots/preview.png)

[![Kirby Media Hub — File metadata](screenshots/single-image-meta.png)](screenshots/single-image-meta.png)

---

Features
--------

[](#features)

- **Dedicated Panel area** — a full-screen Media Hub accessible from the Kirby sidebar
- **Folder organisation** — create and delete subfolders to keep assets tidy
- **Drag-and-drop upload** — upload files directly to any folder
- **Full-text search** — searches filename, title, alt text, description, copyright, and photographer fields simultaneously
- **File metadata** — edit title, alt text, description, copyright, photographer, and upload date per file
- **`mediahubpicker` field** — a custom field type that lets any blueprint pick files from the Media Hub
- **UUID-based references** — saved as `file://uuid` — identical format to Kirby's native `files` field
- **Works inside structure fields** — the inline picker does not conflict with Kirby's dialog close handlers
- **Usage tracking** — see every page that references a given file
- **Dashboard stats** — total files, unused files, file-type breakdown, recent uploads, largest files
- **Auto-refresh stats** — counters update immediately after upload or delete
- **No build step** — pure PHP + Vue 3 template strings, drops straight into `site/plugins/`

---

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

[](#requirements)

- Kirby CMS **5.0** or higher
- PHP **8.1** or higher

---

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

[](#installation)

### Composer (recommended)

[](#composer-recommended)

```
composer require kirbycode/media-hub
```

### Manual

[](#manual)

1. Download or clone this repository.
2. Copy the `media-hub-pro` folder into your site's `site/plugins/` directory.
3. The plugin auto-creates `content/media-hub/` on the first page load — no further setup needed.

---

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

[](#configuration)

All options go in your site's `config/config.php`:

```
return [
    // Change the slug of the hub root page (default: 'media-hub').
    // Useful if your site already has a page at that slug.
    'kirbycode.media-hub.root-slug' => 'media-hub',
];
```

---

Blueprint Usage
---------------

[](#blueprint-usage)

Add the `mediahubpicker` field type to any page or file blueprint:

### Single image picker

[](#single-image-picker)

```
fields:
  hero_image:
    label: Hero Image
    type: mediahubpicker
    multiple: false
    accept: image
```

### Multi-select gallery

[](#multi-select-gallery)

```
fields:
  gallery:
    label: Gallery
    type: mediahubpicker
    multiple: true
    accept: image
    help: Pick images from the Media Hub
```

### Document / PDF picker

[](#document--pdf-picker)

```
fields:
  brochure:
    label: Download
    type: mediahubpicker
    multiple: false
    accept: document
```

### Field options

[](#field-options)

OptionTypeDefaultDescription`multiple`bool`true`Allow selecting more than one file`accept`string*(all)*Filter picker to a type: `image`, `document`, `video`, `audio``label`string`Media Hub Files`Panel field label`help`string—Help text shown below the field### What gets saved

[](#what-gets-saved)

The field writes a standard Kirby YAML list of `file://` UUIDs to the content `.txt` file — the same format as Kirby's built-in `files` field:

```
Hero_image:

- file://abc123def456

```

---

Supported File Types
--------------------

[](#supported-file-types)

CategoryExtensionsImagesjpg, jpeg, png, gif, webp, svg, avifDocumentspdf, doc, docx, xls, xlsx, ppt, pptx, txtVideomp4, mov, webm, aviAudiomp3, wav, ogg, m4aArchiveszip, gz, tarDesignai, eps, psd---

How It Works
------------

[](#how-it-works)

The plugin registers a Kirby content page at `content/media-hub/` (created automatically on first load). Subfolders are standard Kirby child pages. Files are stored using Kirby's native file system with `.txt` metadata sidecars.

The Panel area is a custom Kirby `area` with Vue 3 components (no build step — uses Kirby's bundled runtime). Ten REST API routes under `/api/media-hub/` handle all operations.

---

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md).

---

License
-------

[](#license)

MIT — [Shivlal Sheladiya](https://kirbycode.com)

---

Credits
-------

[](#credits)

Built with [Kirby CMS](https://getkirby.com) by [kirbycode.com](https://kirbycode.com).

If this plugin saves you time, consider [sponsoring further development](https://kirbycode.com).

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

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

Total

2

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2da8515bc9406e47ee15814ba323520b9ecd14802f7c71f5d364652c15c1e39e?d=identicon)[logitechshiv](/maintainers/logitechshiv)

---

Top Contributors

[![logitechshiv](https://avatars.githubusercontent.com/u/8897105?v=4)](https://github.com/logitechshiv "logitechshiv (10 commits)")

---

Tags

mediacmsmedia librarykirbykirby-pluginkirby5asset management

### Embed Badge

![Health badge](/badges/kirbycode-media-hub/health.svg)

```
[![Health](https://phpackages.com/badges/kirbycode-media-hub/health.svg)](https://phpackages.com/packages/kirbycode-media-hub)
```

###  Alternatives

[getkirby/cms

The Kirby core

1.5k567.4k428](/packages/getkirby-cms)[getkirby/starterkit

Kirby Starterkit

20413.1k](/packages/getkirby-starterkit)[timnarr/kirby-imagex

Modern images for Kirby CMS – This plugin helps you orchestrate modern, responsive and performant images in Kirby

818.4k1](/packages/timnarr-kirby-imagex)[getkirby/plainkit

Kirby Plainkit

11911.4k1](/packages/getkirby-plainkit)[tomatophp/filament-media-manager

Manage your media files using spatie media library with easy to use GUI for FilamentPHP

14749.5k3](/packages/tomatophp-filament-media-manager)[belugadigital/kirby-navigation

Kirby 5 field for hierarchical menus with drag &amp; drop level indentation.

8613.8k](/packages/belugadigital-kirby-navigation)

PHPackages © 2026

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