PHPackages                             hydrat/grogu-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. hydrat/grogu-cms

ActiveLibrary[Admin Panels](/categories/admin)

hydrat/grogu-cms
================

Quickly mount a Content Management System on top of Filament on Laravel. Chose your front stack, or go Headless.

v0.5.4(6mo ago)63581[1 issues](https://github.com/Hydrat-Agency/Grogu-CMS/issues)MITPHPPHP ^8.1CI failing

Since Jan 9Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/Hydrat-Agency/Grogu-CMS)[ Packagist](https://packagist.org/packages/hydrat/grogu-cms)[ Docs](https://github.com/hydrat/grogu-cms)[ GitHub Sponsors](https://github.com/Hydrat)[ RSS](/packages/hydrat-grogu-cms/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (34)Versions (21)Used By (0)

Quickly mount a Content Management System on top of Filament on Laravel. Chose your front stack, or go Headless.
================================================================================================================

[](#quickly-mount-a-content-management-system-on-top-of-filament-on-laravel-chose-your-front-stack-or-go-headless)

[![Latest Version on Packagist](https://camo.githubusercontent.com/649799f229578cf6d7285b5a530ce9c4527baa9d5335a02a330e7b20f7c94b84/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6879647261742f67726f67752d636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hydrat/grogu-cms)[![GitHub Tests Action Status](https://camo.githubusercontent.com/94bf280b7cf4b3b697eff48c11cee79279f90e26b9356480347eb39a6ee8cec0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6879647261742f67726f67752d636d732f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/hydrat/grogu-cms/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/8680ea36738034bfe0ac086e02244681396f64e995b2f64a688d098556addfd5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6879647261742f67726f67752d636d732f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/hydrat/grogu-cms/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/0040df5d57c2bf8dce21d606fed08234af911651baee79f2dbcf395561efee61/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6879647261742f67726f67752d636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hydrat/grogu-cms)

This package aims to help you building a fast, reliable, and SEO-friendly website, by providing a set of pre-configured tools to manage your content, settings, and SEO from your [Filament](filamentphp.com) panel.

It is designed to be plugged with a front-end stack of your choice (TALL, Intertia, plain blade...) or as a headless CMS.

What this package provides :

- Users and Permissions management
- Multilingual content (using individual models with eloquent scope instead of json columns)
- Content management
    - Pages/Post or any Custom models
    - Menus
    - Forms
    - Page Templates
    - Blueprints
    - Flexible content blocks
    - Hierarchical structure
    - SEO tools
    - Settings pages

This CMS is developer friendly : You are keeping the entire control on your models, migrations, routes, and views. All back-office fields and layouts are defined using Filament resources.

Packages used
-------------

[](#packages-used)

The CMS plugins makes use of the following packages :

- [ralphjsmit/laravel-filament-media-library](https://filamentphp.com/plugins/ralphjsmit-media-library-manager) for media management (Paid plugin)
- [spatie/laravel-permission](https://spatie.be/docs/laravel-permission/v6/introduction) for role and permissions in the CMS
- [spatie/laravel-welcome-notification](https://github.com/spatie/laravel-welcome-notification) for sending welcome emails to new users, so they can set their password
- [spatie/laravel-sitemap](https://github.com/spatie/laravel-sitemap)
- [ralphjsmit/laravel-seo](https://github.com/ralphjsmit/laravel-seo) for SEO tools
- [jeffgreco13/filament-breezy](https://github.com/jeffgreco13/filament-breezy) for profile page, password change, two factor authentication, api tokens management
- [grantholle/laravel-altcha](https://github.com/grantholle/laravel-altcha) for spam protection on forms

Screenshots
-----------

[](#screenshots)

// TODO

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

[](#installation)

First, add the following repository to your composer file :

```
"repositories": [
    {
        "type": "composer",
        "url": "https://satis.ralphjsmit.com"
    }
],
```

You can install the package via composer:

```
composer require hydrat/grogu-cms
```

You can publish and run the migrations with:

```
php artisan vendor:publish --tag="grogu-cms-migrations"
php artisan migrate
```

You should also publish assets from dependancies :

```
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan vendor:publish --provider="Spatie\WelcomeNotification\WelcomeNotificationServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Spatie\LaravelSettings\LaravelSettingsServiceProvider"
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="medialibrary-migrations"
php artisan vendor:publish --tag="seo-migrations"
php artisan vendor:publish --tag="filament-media-library-migrations"
php artisan breezy:install
php artisan migrate
```

You can publish the config file with:

```
php artisan vendor:publish --tag="grogu-cms-config"
```

You can publish the assets with:

```
php artisan vendor:publish --tag="grogu-cms-assets"
```

You can publish the language files with:

```
php artisan vendor:publish --tag="grogu-cms-translations"
```

Optionally, you can publish the views using

```
php artisan vendor:publish --tag="grogu-cms-views"
```

This is the contents of the published config file:

```
return [
];
```

You will need to register the plugin into your Filament Panel :

```
use Hydrat\GroguCMS\GroguCMSPlugin;
use Pboivin\FilamentPeek\FilamentPeekPlugin;
use Jeffgreco13\FilamentBreezy\BreezyCore;
use RalphJSmit\Filament\MediaLibrary\FilamentMediaLibrary;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ...
            ->plugins([
                GroguCMSPlugin::make()
                    ->discoverTemplates(in: app_path('Content/Templates'), for: 'App\\Content\\Templates')
                    ->discoverBlueprints(in: app_path('Content/Blueprints'), for: 'App\\Content\\Blueprints')
                    ->discoverBlockComposers(in: app_path('Content/BlockComposers'), for: 'App\\Content\\BlockComposers'),

                FilamentPeekPlugin::make(),

                BreezyCore::make()
                    ->enableTwoFactorAuthentication()
                    ->myProfile(
                        hasAvatars: true,
                        slug: 'my-profile'
                    ),

                FilamentMediaLibrary::make()
                    ->navigationGroup(__('Site'))
                    ->navigationLabel(__('Media Library'))
                    ->navigationSort(1)
                    ->acceptImage()
                    ->acceptPdf()
                    ->acceptVideo(),
            ]);
    }
}
```

Adapt your User model to include required traits and methods :

```
