PHPackages                             bale/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. [Framework](/categories/framework)
4. /
5. bale/cms

ActiveLibrary[Framework](/categories/framework)

bale/cms
========

CMS package for manage content

0245Blade

Since Jul 3Pushed 4w agoCompare

[ Source](https://github.com/papa-ree/cms)[ Packagist](https://packagist.org/packages/bale/cms)[ RSS](/packages/bale-cms/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

CMS package for manage content
==============================

[](#cms-package-for-manage-content)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7b5bdbc6d263a02edb11053117c9092b5c0f56f8e327bf58baf8a3d8b28164c7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f706170612d7265652f636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/papa-ree/cms)[![GitHub Tests Action Status](https://camo.githubusercontent.com/20b91a9c86e0d2c21e011e6b7dc303b080de3bbe08bd101b215c700f4bee1fe5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f706170612d7265652f636d732f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/papa-ree/cms/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/bab1ba92e336509f562bc20cc7eb89ff9528875c738495341b5f0faf1ca9829b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f706170612d7265652f636d732f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/papa-ree/cms/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/1071a4e762e3637bd8a811849dfd2bbb53d7270a1aeace10986e986ce9335db0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f706170612d7265652f636d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/papa-ree/cms)

This is where your description should go. Limit it to a paragraph or two. Consider adding a small example.

Support us
----------

[](#support-us)

[![](https://camo.githubusercontent.com/4989421fbd95d30fced6221e098a4f5ba40a6b71f7eba8691ba51e81d78bc623/68747470733a2f2f6769746875622d6164732e73332e65752d63656e7472616c2d312e616d617a6f6e6177732e636f6d2f636d732e6a70673f743d31)](https://spatie.be/github-ad-click/cms)

We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us).

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards).

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

[](#installation)

You can install the package via composer:

```
composer require papa-ree/cms
```

You can publish and run the migrations with:

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

### Migration Publisher (Recommended)

[](#migration-publisher-recommended)

Alternatively, you can use the interactive migration publisher which provides more control:

```
php artisan cms:publish-migration
```

This command allows you to:

- **All**: Publish all migrations.
- **Auto (Only missing)**: Publish only migrations that don't exist yet in your application.
- **Specific Migration**: Select specific migrations from a list.

You can publish the config file with:

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

This is the contents of the published config file:

```
return [
];
```

Optionally, you can publish the views using

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

Artisan Commands
----------------

[](#artisan-commands)

Bale CMS provides several artisan commands to manage organizations, bales (tenants), and user assignments.

### Create Organization

[](#create-organization)

Generate a new parent organization.

```
php artisan cms:make-organisasi --name="Nama Organisasi"
```

### Create Bale (Tenant)

[](#create-bale-tenant)

Generate a new bale instance for a specific organization. This will store the tenant database credentials.

```
php artisan cms:make-bale \
    --organization_slug="nama-organisasi" \
    --name="Nama Bale" \
    --database="tenant_db_name" \
    --host="127.0.0.1" \
    --username="root" \
    --password="password" \
    --port=3306
```

Note

Database credentials (username and password) are automatically encrypted before being stored in the database.

### Assign User to Bale

[](#assign-user-to-bale)

Link an existing user from the main database to a specific Bale instance using their NIP (username).

```
php artisan cms:make-user --bale_slug="nama-bale" --nip="12345678"
```

Shared Components
-----------------

[](#shared-components)

### Option Component

[](#option-component)

The `x-core::option` component provides a standard UI for item options (edit/delete).

```

```

When using inside a loop (like a table), ensure the dropdown initializes safely.

### Item Actions (Livewire)

[](#item-actions-livewire)

For more complex actions that need to trigger Livewire events directly, use the `ItemActions` component.

```

```

> \[!IMPORTANT\] &gt; **Use `wire:key` in Loops**When iterating over a list of items (e.g., in a table) and using `livewire:core.shared-components.item-actions`, you **MUST** provide a unique `wire:key`. Failure to do so will result in Livewire losing track of components after updates (like deleting an item), causing errors like `Method [delete] not found`.

Usage
-----

[](#usage)

The package is primarily used via its Livewire components for content management. Ensure you have properly configured your tenant database connections in the `bale_lists` table (or via the commands above).

Analytics (Umami Integration)
-----------------------------

[](#analytics-umami-integration)

Bale CMS integrates with Umami Analytics (self-hosted) to display website traffic statistics on the dashboard overview.

### How it works

[](#how-it-works)

1. `AnalyticsService` fetches data via `UmamiService` (from `bale-core`).
2. Configuration is fetched from the `tenant_analytics` table in the main database.
3. Data is cached in the active tenant's database to prevent excessive API calls.

### Display

[](#display)

- **Stats Cards**: Displays Total Visitors, Bounce Rate, and Avg Session Duration.
- **Traffic Overview**: A line chart showing Visitors and Page Views over the last 7 days using the `x-core::chart` component.

If the analytics service is unavailable or unconfigured, the dashboard will gracefully display an "Unavailable" state without crashing.

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

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

[](#contributing)

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

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Papa Ree](https://github.com/papa-ree)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance62

Regular maintenance activity

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/6a4dff95fb8ef6beb3956487f0421a9229b3ded20f76917e49a1e7c2004267e4?d=identicon)[papa-ree](/maintainers/papa-ree)

---

Top Contributors

[![papa-ree](https://avatars.githubusercontent.com/u/79291092?v=4)](https://github.com/papa-ree "papa-ree (112 commits)")

### Embed Badge

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

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

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k39.6M299](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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