PHPackages                             lazycmsapp/lazy-cms-builder - 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. lazycmsapp/lazy-cms-builder

ActiveLibrary[Admin Panels](/categories/admin)

lazycmsapp/lazy-cms-builder
===========================

A reusable WordPress-like admin dashboard package.

v1.2.0(1mo ago)07↓50%MITBladePHP ^8.1CI failing

Since Jun 11Pushed 1mo agoCompare

[ Source](https://github.com/lazycmsapp/lazy-cms-builder)[ Packagist](https://packagist.org/packages/lazycmsapp/lazy-cms-builder)[ RSS](/packages/lazycmsapp-lazy-cms-builder/feed)WikiDiscussions main Synced 1w ago

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

Lazy CMS Builder
================

[](#lazy-cms-builder)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e143df3bb662a81818c55966b8f5a5fa46af1ffa0ffcaf18edf0a2210f212461/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c617a79636d736170702f6c617a792d636d732d6275696c6465722e737667)](https://packagist.org/packages/lazycmsapp/lazy-cms-builder)[![License](https://camo.githubusercontent.com/bd5ba6539f97c54de7f5b0e534d254dd544e5bc47fa0b38210d80cf2f04944bf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6c617a79636d736170702f6c617a792d636d732d6275696c646572)](LICENSE)

A powerful, modular, and easy-to-use CMS package for Laravel applications with built-in multi-language support, robust Role-Based Access Control (RBAC), a drag-and-drop page builder (Lazy Builder), and a WordPress-like theme &amp; hook system.

🚀 Installation
--------------

[](#-installation)

To install the package in a fresh Laravel project:

1. **Require the package via Composer:**

    ```
    composer require lazycmsapp/lazy-cms-builder
    ```
2. **Run the Automated Installation:**

    ```
    php artisan lazy:install
    ```

    *This command handles migrations, asset publishing, theme distribution, storage linking, and default admin creation.*

---

🛠 Commands Summary
------------------

[](#-commands-summary)

Lazy CMS comes with a set of automated commands to make development easier.

CommandDescription`php artisan lazy`**Help Menu:** Lists all available Lazy CMS commands in CLI.`php artisan lazy:install`**Full Setup:** Migrations, Assets, Themes, User and seeds.`php artisan lazy:update`**Sync Update:** Refreshes assets, themes, and permissions.`php artisan lazy:seed`**Demo Data:** Seeds default menus and initial demo data.`php artisan make:lazy-page`**Scaffold:** Creates a new dashboard page, controller, and menu item.---

🔐 Role-Based Access Control (RBAC)
----------------------------------

[](#-role-based-access-control-rbac)

Version 4.0.0 introduces a granular permission system with several predefined roles:

- **Administrator**: Full access to all settings, content, and system configurations.
- **Editor**: Can publish and manage all posts and pages, access media library, and moderate comments.
- **Author**: Can publish and manage **only their own** posts.
- **Contributor**: Can write and manage their own posts but **cannot** publish them (pending review).
- **Subscriber**: Access to their own profile and basic dashboard view.
- **User**: Custom role with access to Posts, Pages, Media, Comments, and Language Tools.

> **Note:** Content ownership is strictly enforced. Authors and Contributors are isolated from other users' content.

---

🎨 Theme Development &amp; Isolation
-----------------------------------

[](#-theme-development--isolation)

### 📂 Strict Theme Structure

[](#-strict-theme-structure)

Frontend views **MUST** be located in `resources/views/themes/{theme-name}/`. For security and organization, any view file created directly in the root `resources/views/` folder will be blocked from frontend rendering (returns a 404).

### 🪄 Automated Theme Sync

[](#-automated-theme-sync)

When you update the package, your themes are automatically refreshed. To ensure this works, add the following to your `composer.json` scripts:

```
"post-autoload-dump": [
    "@php artisan vendor:publish --tag=lazy-themes --force"
]
```

---

🌐 Multi-Language Support
------------------------

[](#-multi-language-support)

Lazy CMS supports dynamic localization. You can enable or disable multi-language support from the Admin Settings.

- **Clean URLs:** When multi-language is disabled, URLs are clean (e.g., `/my-post`).
- **ISO Prefixes:** When enabled, URLs include the language code (e.g., `/en/my-post`).
- **Dynamic Admin UI:** The language selection metabox automatically hides when multi-language is disabled.

---

🛠 Features
----------

[](#-features)

- **Consolidated Migrations:** Optimized database structure.
- **Dynamic Post Types (CPT):** Create custom post types from the dashboard.
- **Advanced Hook System:** WordPress-like Action and Filter hooks.
- **Headless Mode:** Full REST API support for decoupled apps.
- **Theme Isolation:** High-security frontend view resolution.

---

⚓ Hook System Examples
----------------------

[](#-hook-system-examples)

### Adding a Filter

[](#adding-a-filter)

```
add_lazy_filter('lazy_general_settings_fields', function($fields) {
    $fields['my_custom_option'] = ['type' => 'text', 'label' => 'Custom Option'];
    return $fields;
});
```

### Adding an Action

[](#adding-an-action)

```
add_lazy_action('lazy_after_post_content', function($post) {
    echo "Related Content Here";
});
```

🧪 Testing
---------

[](#-testing)

Automated tests live in the host app under `tests/Feature/Cms/` and run on an isolated in-memory SQLite database (configured in `phpunit.xml`) — they never touch real data.

Requirements: the `pdo_sqlite` PHP extension must be enabled (`extension=pdo_sqlite` in `php.ini`).

```
# run every test
php artisan test

# run only the CMS tests
php artisan test tests/Feature/Cms

# run a single file
php artisan test tests/Feature/Cms/ScheduleStatusTest.php

# filter by test name
php artisan test --filter=future_publish_date_becomes_scheduled
```

Current coverage (the regression-prone areas):

FileGuards`BuilderShortcodeConverterTest`JSON ↔ shortcode round-trip stays lossless &amp; readable (no base64)`ScheduleStatusTest`"schedule only on a future time" status logic`PublishTimezoneTest`publish date is interpreted in the CMS timezone and stored as UTC`SchedulePublishFlowTest`due posts auto-publish; scheduled posts stay hidden until liveGreen ✓ = safe; red ⨯ = something regressed (the diff shows expected vs actual). Run the suite after changing the converter, scheduling, or save/publish code.

---

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

[](#requirements)

- PHP 8.1+
- Laravel 10, 11, or 12
- MySQL 5.7+ / MariaDB 10.3+ / SQLite 3.x

---

Developed by **[Tareq Codex](https://github.com/tareqcodex)**

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance91

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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

12

Last Release

42d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/200030180?v=4)[tareqcodex](/maintainers/tareqcodex)[@tareqcodex](https://github.com/tareqcodex)

---

Top Contributors

[![tareqcodex](https://avatars.githubusercontent.com/u/200030180?v=4)](https://github.com/tareqcodex "tareqcodex (99 commits)")

### Embed Badge

![Health badge](/badges/lazycmsapp-lazy-cms-builder/health.svg)

```
[![Health](https://phpackages.com/badges/lazycmsapp-lazy-cms-builder/health.svg)](https://phpackages.com/packages/lazycmsapp-lazy-cms-builder)
```

###  Alternatives

[slowlyo/owl-admin

基于 laravel、amis 开发的后台框架~

61315.0k26](/packages/slowlyo-owl-admin)

PHPackages © 2026

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