PHPackages                             arunika/laravel-page-builder-v24 - 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. arunika/laravel-page-builder-v24

ActiveLibrary

arunika/laravel-page-builder-v24
================================

Standalone modular Page Builder v2.4 for Laravel 13.

v0.2.0(yesterday)04↑2900%proprietaryVuePHP ^8.3

Since Aug 24Pushed yesterdayCompare

[ Source](https://github.com/andhika96/LaraPhoenix-Page-Builder)[ Packagist](https://packagist.org/packages/arunika/laravel-page-builder-v24)[ RSS](/packages/arunika-laravel-page-builder-v24/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (5)Versions (3)Used By (0)

Arunika Laravel Page Builder V24
================================

[](#arunika-laravel-page-builder-v24)

Standalone Page Builder v2.4 package for Laravel 13. It contains the complete 50-module catalog, editor and frontend runtime, Form/Dataset/Product Lead Form backend, prebuilt browser assets, and an isolated CKFinder instance.

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

[](#requirements)

- PHP 8.3 or newer;
- Laravel 13;
- PHP extensions: Fileinfo, GD, JSON, Mbstring, Session, and Zip;
- the standard Laravel `users` table/model for standalone auth, or an existing host authentication system.

The package can use the host application's authentication or enable its own minimal login/logout flow. It does not install Fortify, Breeze, Jetstream, registration, password reset, cache, jobs, or Spatie Permission tables.

Composer installation
---------------------

[](#composer-installation)

Install the package from Packagist:

```
composer require arunika/laravel-page-builder-v24
```

For a completely fresh Laravel 13 application, enable the package-owned login:

```
php artisan migrate
php artisan arunika-page-builder-v24:install --with-auth
php artisan optimize:clear
php artisan storage:link
php artisan arunika-page-builder-v24:doctor
php artisan serve
```

When the configured user table is empty and the terminal is interactive, the installer asks for the first editor's name and email, generates a secure 24-character password, and prints it once:

```
Authentication mode: standalone
Login URL: http://localhost:8000/page-builder/v2.4/login
Editor URL: http://localhost:8000/page-builder/v2.4/create
Credentials:
Email: editor@example.test
Password:

```

Store the generated password securely. A repeated install never creates a second account or resets an existing password. When users already exist, their current credentials are used and cannot be displayed because passwords are stored as one-way hashes.

If the user table does not exist yet, or the installer runs non-interactively, finish migrations and create the account explicitly:

```
php artisan migrate
php artisan arunika-page-builder-v24:create-admin --generate-password
```

Open the URLs printed by the installer. With the default prefix they are:

```
Login: http://localhost:8000/page-builder/v2.4/login
Editor: http://localhost:8000/page-builder/v2.4/create
Public pages: http://localhost:8000/pages/{uri}

```

When the host application already provides authentication, keep the default `host` mode:

```
php artisan arunika-page-builder-v24:install
php artisan migrate
php artisan storage:link
php artisan arunika-page-builder-v24:doctor
```

Composer downloads every hard PHP dependency automatically. The consumer does not need Node.js, NPM, or a frontend build command.

For a private ZIP artifact, place the archive in a directory registered as a Composer `artifact` repository, then run the same `composer require` command.

Composer updates
----------------

[](#composer-updates)

After v0.2.0 is installed, update the package normally:

```
composer update arunika/laravel-page-builder-v24 -W
```

Laravel's normal `package:discover` step automatically reconciles the owned editor and CKFinder assets under `public/vendor/arunika-page-builder-v24`. Package PHP code, routes, views, and the login screen are loaded from the new Composer version immediately. Existing admin records remain in the host database, so their email and password are not recreated or changed.

Reconciliation removes files that an earlier package ownership record or CKFinder payload manifest owns but the new release no longer ships. Files that are not recorded as package-owned are preserved.

The v0.1 ownership marker did not record individual dist files. Therefore the first v0.1-to-v0.2 sync does not guess at or delete unknown legacy dist files; CKFinder can still use its prior payload manifest. The first v0.2 sync upgrades the marker to schema v3, after which both dist and CKFinder obsolete files are reconciled precisely on future updates.

Database migrations are intentionally not executed during Composer updates. When `doctor` reports a missing package table or column, run:

```
php artisan migrate
php artisan arunika-page-builder-v24:doctor
```

Automatic asset reconciliation can be disabled in the published config:

```
'updates' => [
    'auto_sync_assets' => false,
],
```

What the install command does
-----------------------------

[](#what-the-install-command-does)

`arunika-page-builder-v24:install`:

- publishes package config when it is not present;
- publishes prebuilt assets under `public/vendor/arunika-page-builder-v24`;
- activates bundled CKFinder under `public/vendor/arunika-page-builder-v24/ckfinder`;
- creates package-owned CKFinder and rendition storage directories;
- writes and validates a package ownership marker;
- refuses to overwrite an unowned destination;
- is idempotent and only reconciles changed owned payloads.

With `--with-auth`, the command also sets this environment value without replacing other `.env` entries:

```
ARUNIKA_PAGE_BUILDER_V24_AUTH_MODE=standalone
```

It then prints the login/editor URLs and creates the first editor when that is safe and possible. If Laravel configuration or routes are cached, run `php artisan optimize:clear` once after enabling standalone auth and before opening the login page.

It deliberately does not run migrations. Host mode never seeds user data; standalone mode may create only the first editor when `--with-auth` is explicitly selected and the configured user table is empty. Preview asset and configuration targets without writing by using:

```
php artisan arunika-page-builder-v24:install --dry-run
```

Database ownership
------------------

[](#database-ownership)

The package owns exactly three tables by default:

- `arunika_page_builder_v24_pages`;
- `arunika_page_builder_v24_form_datasets`;
- `arunika_page_builder_v24_form_submissions`.

Table names are configurable before the first migration. An existing table is accepted only when its required columns, indexes, unique constraints, defaults, nullability, and unbound host-ID contract are compatible.

Authentication and roles
------------------------

[](#authentication-and-roles)

Authentication has two modes:

- `host` (default) keeps the host middleware and login system;
- `standalone` provides isolated Page Builder login/logout routes while still using Laravel's configured stateful guard and user provider.

### Existing or custom host authentication

[](#existing-or-custom-host-authentication)

When the Laravel application already has authentication, install without `--with-auth`. The package does not register its standalone login routes and does not replace the application's `/login` route. A user authenticated by the host can open the editor immediately.

For a custom stateful guard, publish the config and align both settings with the host application, for example:

```
'routes' => [
    'middleware' => ['web', 'auth:admin'],
],

'auth' => [
    'guard' => 'admin',
],
```

The configured guard is then shared by editor ownership, Datasets, role resolution, and the CKFinder session bridge. The user returned by the guard must implement Laravel's `Authenticatable` contract. If that model declares a non-default database connection, account creation and `doctor` use the model's connection for schema and uniqueness checks.

Use `--with-auth` only for a fresh application or when a separate Page Builder login URL is intentionally required. Standalone login uses the configured user provider with `email` and `password`; applications with another credential scheme should keep `host` mode.

Configure the mode through the environment or the top-level `auth_mode` key in the published config:

```
ARUNIKA_PAGE_BUILDER_V24_AUTH_MODE=host
```

Editor, Dataset, module-asset, shared-control, preview, and draft-form routes use the middleware configured in:

```
'routes' => [
    'middleware' => ['web', 'auth'],
],
```

The optional `auth.guard` setting is used consistently by the editor, ownership checks, role resolution, and CKFinder bridge.

Standalone mode uses the existing model configured under Laravel's auth provider, normally `App\Models\User`, and its existing table. The package does not create a competing user table and never creates a default password. Create accounts interactively with:

```
php artisan arunika-page-builder-v24:create-admin
```

To generate and display a strong password once, use:

```
php artisan arunika-page-builder-v24:create-admin --generate-password
```

Passwords are entered through hidden prompts, validated, and hashed. Login requests are CSRF protected, session IDs are regenerated after login, logout invalidates the session, and login attempts are throttled. The throttle is configurable through `auth.login_throttle`.

Spatie Permission is optional. If the authenticated user exposes `getRoleNames()`, those roles are used. Otherwise the package uses the `authenticated` fallback. A host may replace `Arunika\PageBuilder\V24\Auth\RoleResolver` with its own binding.

Routes
------

[](#routes)

Default editor prefix: `/page-builder/v2.4`.

Default public page route: `/pages/{uri}`.

Standalone auth routes:

- `GET /page-builder/v2.4/login`;
- `POST /page-builder/v2.4/login`;
- `POST /page-builder/v2.4/logout`.

All names use `arunika.page-builder.v24.*`. Route loading, prefixes, and middleware are configurable in `config/arunika-page-builder-v24.php`. Only published v2.4 pages and their public forms are accessible anonymously. The package never registers or replaces the host application's global `/login` route.

CKFinder isolation
------------------

[](#ckfinder-isolation)

The CKFinder payload is part of the Composer package, so `composer require`downloads it under `vendor`. The install command activates a separate copy and does not replace `public/ckfinder` or another existing CKFinder installation.

Isolation includes:

- package-specific public and storage roots;
- an ownership marker;
- per-user resource directories;
- a dedicated native session cookie;
- namespaced authorization/user/role/expiry session keys;
- Laravel host-session verification on every connector request;
- local storage by default and fail-closed authentication.

Configure licensed CKFinder values only through environment/config:

```
ARUNIKA_PB_V24_CKFINDER_LICENSE_NAME=
ARUNIKA_PB_V24_CKFINDER_LICENSE_KEY=
```

Without valid licensed values, CKFinder identifies itself as a demo. CKFinder is proprietary; do not publish this package outside the licensed private or internal channel until redistribution rights have been verified.

Development verification
------------------------

[](#development-verification)

```
composer test
npm test
npm run build
php artisan arunika-page-builder-v24:doctor
```

The repository also contains a Testbench Laravel 13 workbench for disposable runtime verification. Workbench files, tests, backups, QA evidence, `vendor`, and `node_modules` are excluded from Composer release archives.

Upgrading from v0.1.0
---------------------

[](#upgrading-from-v010)

Standalone authentication is added in v0.2.0 and is opt-in. Existing installations remain in `host` mode. Update the package, publish the latest config if needed, and first allow Composer to move from the v0.1 constraint:

```
composer require arunika/laravel-page-builder-v24:^0.2 -W
```

The Composer update automatically refreshes package code, login views, and owned public assets. Existing users keep their current credentials. To enable the package-owned standalone login on that installation, run:

```
php artisan migrate
php artisan arunika-page-builder-v24:install --with-auth
php artisan optimize:clear
```

Existing users keep their current credentials. To add a separate editor account intentionally, run `php artisan arunika-page-builder-v24:create-admin --generate-password`.

Create and push a `v0.2.0` Git tag so Packagist exposes this release instead of changing the already published `v0.1.0` tag.

Versioned namespace
-------------------

[](#versioned-namespace)

Runtime PHP classes use:

```
Arunika\PageBuilder\V24\
```

This prevents v2.4 classes, routes, tables, storage, browser globals, and CKFinder assets from replacing another Page Builder version.

License
-------

[](#license)

Arunika package code is proprietary. Third-party components retain their own licenses; see [THIRD\_PARTY\_NOTICES.md](THIRD_PARTY_NOTICES.md) and the license files shipped with each payload.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

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

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/45284932?v=4)[Andhika Adhitia N](/maintainers/andhika96)[@andhika96](https://github.com/andhika96)

---

Top Contributors

[![andhika96](https://avatars.githubusercontent.com/u/45284932?v=4)](https://github.com/andhika96 "andhika96 (2 commits)")

---

Tags

laravelcmspage builderCKFinder

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/arunika-laravel-page-builder-v24/health.svg)

```
[![Health](https://phpackages.com/badges/arunika-laravel-page-builder-v24/health.svg)](https://phpackages.com/packages/arunika-laravel-page-builder-v24)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

28.0k175.2k9](/packages/bagisto-bagisto)[statamic/cms

The Statamic CMS Core Package

4.9k3.8M1.2k](/packages/statamic-cms)[code16/sharp

Laravel Content Management Framework

79466.1k10](/packages/code16-sharp)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.4k](/packages/typicms-base)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

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

PHPackages © 2026

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