PHPackages                             dominservice/laravel-cms - 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. [Admin Panels](/categories/admin)
4. /
5. dominservice/laravel-cms

ActiveLibrary[Admin Panels](/categories/admin)

dominservice/laravel-cms
========================

Laravel CMS Backend

4.4.5(2mo ago)0162MITPHPPHP &gt;=8.1

Since May 10Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/dominservice/laravel-cms)[ Packagist](https://packagist.org/packages/dominservice/laravel-cms)[ Docs](https://github.com/dominservice/laravel-cms)[ RSS](/packages/dominservice-laravel-cms/feed)WikiDiscussions main Synced 3w ago

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

 [![Dominservice Laravel CMS](docs/logo.png)](docs/logo.png)

dominservice/laravel-cms
========================

[](#dominservicelaravel-cms)

 Reusable Laravel CMS for multilingual pages, blocks, categories and media-driven content structures.

 [![Packagist](https://camo.githubusercontent.com/03c0a6a545cd176341e1e78bcc912032a4837e2f786e429dae5bca5dc41ad595/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646f6d696e736572766963652f6c61726176656c2d636d732e737667)](https://packagist.org/packages/dominservice/laravel-cms) [![Downloads](https://camo.githubusercontent.com/abab29a9292dfea181ed0f793e76a99f88b6175e658252fb558d381e19424056/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646f6d696e736572766963652f6c61726176656c2d636d732e737667)](https://packagist.org/packages/dominservice/laravel-cms/stats) [![PHP 8.2+](https://camo.githubusercontent.com/0c6edb93643e5d329948799779fa02580d548c8ab6a0b117bdda6869e5c6f62e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d373737626233)](#) [![Laravel 9–13](https://camo.githubusercontent.com/3ebcc2bab184017aa956c8e85f4d81ab14e05425ca09d49515ea22462f344da6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d3925453225383025393331332d666632643230)](#) [![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

What This Package Solves
------------------------

[](#what-this-package-solves)

`dominservice/laravel-cms` is designed for projects that need a practical CMS layer on top of Laravel, without locking the application into a closed website builder.

It gives you:

- multilingual `page` and `block` content models,
- configurable admin sections for content and categories,
- config-driven settings dashboards,
- Media Kit integration for images and video slots,
- publishable views that can be adapted to any admin theme,
- a structure that can start as a company website and grow into a larger CRM, ERP or portal.

Key Features
------------

[](#key-features)

- multilingual contents and categories,
- nested category trees,
- configurable admin routes, middleware, layout mode and route names,
- block-oriented homepage and static page management via `cms.default_pages.*`,
- configurable block schemas stored in `meta`,
- repeater fields for cards, FAQ items and similar structured content,
- Editor.js profile support for rich text fields,
- media slots for desktop/mobile image and video handling,
- direct integration with `dominservice/laravel-media-kit`, including reusable library assets,
- publishable views and language files.

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

[](#installation)

```
composer require dominservice/laravel-cms dominservice/laravel-media-kit

php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=config
php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=views
php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=lang
php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=migrations

php artisan vendor:publish --provider="Dominservice\MediaKit\MediaKitServiceProvider" --tag=mediakit-config
php artisan vendor:publish --provider="Dominservice\MediaKit\MediaKitServiceProvider" --tag=mediakit-migrations

php artisan migrate
```

Admin Panel
-----------

[](#admin-panel)

The package includes a configurable admin panel for content, categories and settings.

Main configuration lives in `config/cms.php`:

- `cms.admin.enabled`
- `cms.admin.prefix`
- `cms.admin.route_name_prefix`
- `cms.admin.middleware`
- `cms.admin.layout.mode`
- `cms.admin.layout.view`
- `cms.admin.layout.section`
- `cms.admin.layout.component`

Layout integration supports three modes:

- `package`: use package-provided layout,
- `extends`: render inside your existing Blade layout,
- `component`: render inside a Blade component.

This makes it easy to keep package logic inside the package, while styling the UI in the host project through published views.

Content Types, Blocks and Schemas
---------------------------------

[](#content-types-blocks-and-schemas)

The package supports configurable content and category types. You can keep simple arrays in config or point to your own enum classes.

```
'types' => [
    'content' => \App\Enums\CmsContentType::class,
    'category' => \App\Enums\CmsCategoryType::class,
],
```

For block-based pages you can define sections in config and assign form fields, media slots and schema fields per section or block.

Typical use cases:

- homepage sections such as `hero`, `about`, `services`, `faq`, `cta`,
- static pages with configurable visual variants,
- reusable block types for landing pages and company websites.

### Schema Fields in `meta`

[](#schema-fields-in-meta)

Block-specific configuration is stored in `meta`, so the host project can render frontend components using its own Blade views and CSS.

Supported patterns include:

- simple scalar fields,
- translatable fields,
- visual variants,
- repeater fields,
- structured button/link configuration,
- Editor.js rich text payloads.

Media Integration
-----------------

[](#media-integration)

The package uses `dominservice/laravel-media-kit` as the media layer.

Current integration supports:

- desktop and mobile images,
- desktop and mobile video posters,
- image and video slots in CMS forms,
- importing already uploaded assets from the shared media library,
- keeping CMS views publishable, so the host project can replace the UI without changing package logic.

### Media Picker Configuration

[](#media-picker-configuration)

```
'admin' => [
    'content' => [
        'media_picker' => [
            'enabled' => true,
            'browse_route' => 'admin.media.index',
            'label' => 'Biblioteka mediów',
            'helper' => 'Wybierz istniejący asset z biblioteki lub wgraj nowy plik.',
        ],
    ],
],
```

The package exposes backend support for selecting library asset UUIDs. The host project can publish and extend the form views to provide a custom picker UX.

Editor.js Profiles
------------------

[](#editorjs-profiles)

The package supports Editor.js configuration profiles so projects can choose a richer or more compact toolset per field.

Example:

```
'admin' => [
    'content' => [
        'editorjs' => [
            'profiles' => [
                'default' => [
                    'tools' => ['paragraph', 'header', 'list', 'quote'],
                ],
                'compact' => [
                    'tools' => ['paragraph', 'list'],
                ],
            ],
            'field_profiles' => [
                'description' => 'default',
                'faq_items.answer' => 'compact',
            ],
        ],
    ],
],
```

Settings Dashboard
------------------

[](#settings-dashboard)

The settings dashboard is driven by configuration and can sync UUID-based assignments back into structured config arrays.

Useful for:

- assigning homepage page UUIDs,
- assigning homepage blocks,
- syncing public menu structures,
- storing multilingual meta fields,
- managing config-driven CMS sections without writing extra controllers.

Views and Overrides
-------------------

[](#views-and-overrides)

The package is meant to be published and themed.

```
php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=views
php artisan vendor:publish --provider="Dominservice\LaravelCms\ServiceProvider" --tag=lang
```

Recommended approach:

- keep routes, controllers, Livewire classes and storage logic in the package,
- publish package views,
- override the views in the host project to match the chosen admin theme.

This keeps the CMS reusable between projects while still allowing tailored UI.

Extensibility
-------------

[](#extensibility)

The package is intentionally config-first and open to project-level extension.

You can extend it through:

- your own enum classes for content and category types,
- additional block schemas in app config,
- published views,
- custom frontend renderers,
- custom permissions and middleware on admin routes,
- custom settings panels and sync indexes.

Upgrade Notes
-------------

[](#upgrade-notes)

When upgrading existing projects:

- merge new config keys instead of overwriting the whole file,
- republish views only if you want the new default UI,
- republish migrations only when needed,
- verify `media-kit` config and routes if you use the shared media library.

License
-------

[](#license)

MIT

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance87

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity69

Established project with proven stability

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

Recently: every ~3 days

Total

85

Last Release

64d ago

Major Versions

1.1.1 → 2.0.02023-08-27

2.5.2 → 3.0.02025-09-18

3.7.3 → 4.0.02026-01-07

PHP version history (2 changes)1.0.0PHP &gt;=8.0

4.1.4PHP &gt;=8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/9d67c041316385020aafb7eef9f11971d6fad80a11a44f4078273bda6890722d?d=identicon)[dominservice](/maintainers/dominservice)

---

Top Contributors

[![dominservice](https://avatars.githubusercontent.com/u/13433147?v=4)](https://github.com/dominservice "dominservice (1 commits)")

---

Tags

laravelmanagercms

### Embed Badge

![Health badge](/badges/dominservice-laravel-cms/health.svg)

```
[![Health](https://phpackages.com/badges/dominservice-laravel-cms/health.svg)](https://phpackages.com/packages/dominservice-laravel-cms)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.3k2.2k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

27.4k169.0k9](/packages/bagisto-bagisto)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[arbory/arbory

Administration interface for Laravel

4753.9k3](/packages/arbory-arbory)[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)
