PHPackages                             globalis/wp-cubi - 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. globalis/wp-cubi

ActiveProject[Framework](/categories/framework)

globalis/wp-cubi
================

WordPress modern stack for developers

1.12.1(3w ago)664867GPL-2.0-or-laterPHPPHP &gt;=8.1 &lt;8.5

Since Jun 15Pushed 3w ago6 watchersCompare

[ Source](https://github.com/globalis-ms/wp-cubi)[ Packagist](https://packagist.org/packages/globalis/wp-cubi)[ Docs](https://github.com/globalis-ms/wp-cubi)[ RSS](/packages/globalis-wp-cubi/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (46)Versions (77)Used By (0)

[wp-cubi](https://github.com/globalis-ms/wp-cubi/)
==================================================

[](#wp-cubi)

[![PHP Version Require](https://camo.githubusercontent.com/ad9433711d09dda5dfb357c9a514ebdebf4a1a62666424470e802a33e16b5264/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f676c6f62616c69732f77702d637562692f7068703f636f6c6f723d253233336662393131)](https://github.com/globalis-ms/wp-cubi/blob/master/composer.json)[![Latest Stable Version](https://camo.githubusercontent.com/a7e8407bca5e79d7e6a807333989f8bf694614055a5d2d50cd69e03688915615/68747470733a2f2f706f7365722e707567782e6f72672f676c6f62616c69732f77702d637562692f762f737461626c65)](https://packagist.org/packages/globalis/wp-cubi)[![License](https://camo.githubusercontent.com/945b84ddf7c32f3713faeb1f6170c4bcdc63ff3f12d037d5478c8a8bbef82e5e/68747470733a2f2f706f7365722e707567782e6f72672f676c6f62616c69732f77702d637562692f6c6963656e7365)](https://github.com/globalis-ms/wp-cubi/blob/master/LICENSE.md)

WordPress modern stack for developers

[![wp-cubi](https://github.com/globalis-ms/wp-cubi/raw/master/.resources/wp-cubi-500x175.jpg)](https://github.com/globalis-ms/wp-cubi/)

Overview
--------

[](#overview)

wp-cubi provides a modern stack and project structure to make professional web applications with WordPress.

Built with [Composer](http://getcomposer.org) dependency manager and [Robo](http://robo.li/) task runner.

Features
--------

[](#features)

- Environment-specific configuration
- Automated `no-index` and mail-trapper on development / staging environments
- Command-line administration with [wp-cli](http://wp-cli.org/)
- Monitoring tools ([query-monitor](https://wordpress.org/plugins/query-monitor/), [wp-crontrol](https://wordpress.org/plugins/wp-crontrol/), [user-switching](https://wordpress.org/plugins/user-switching/), [wp-cubi-admin-bar](https://github.com/globalis-ms/wp-cubi/tree/master/web/app/mu-modules/10-wp-cubi-admin-bar))
- Cleaner wp-admin with [globalis/wp-unhooked](https://github.com/globalis-ms/wp-unhooked)
- Gitflow integration with Robo commands
- Optimized `.htaccess` generation
- Logging system with [inpsyde/wonolog](https://github.com/inpsyde/Wonolog) and [monolog](https://github.com/Seldaek/monolog)
- Standalone image minification plugin with [globalis/wp-cubi-imagemin](https://github.com/globalis-ms/wp-cubi-imagemin)
- Additional functions with [globalis/wp-cubi-helpers](https://github.com/globalis-ms/wp-cubi-helpers)
- [advanced-custom-fields-pro](https://www.advancedcustomfields.com/pro/) installed with composer, if license key provided
- SEO friendly, with [The SEO Framework](https://wordpress.org/plugins/autodescription/) plugin and [roots/soil](https://github.com/roots/soil) DOM optimizations
- Lighter and faster than a default WordPress application, by disabling things we don't use from core
- Comments disabled by default
- Automatically cache nav-menus with [globalis/wp-cubi-transient-cache](https://github.com/globalis-ms/wp-cubi-transient-cache/)

Security optimizations
----------------------

[](#security-optimizations)

- Separated web root folder
- `.htaccess` security directives
- Deactivation of REST API and `xmlrpc.php` unless explicitly activated
- Better password encryption with [roots/wp-password-bcrypt](https://github.com/roots/wp-password-bcrypt)
- Anti brute-force protection on `wp-login.php` with [Limit Login Attempts Reloaded](https://wordpress.org/plugins/limit-login-attempts-reloaded/)

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

[](#requirements)

- [PHP](http://php.net/) &gt;=8.1 &lt;8.5
- [Composer](http://getcomposer.org)
- [Git](https://git-scm.com/)

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

[](#installation)

1. Create a new project: `composer create-project --remove-vcs globalis/wp-cubi your-project && cd your-project`
2. Run installation command and answer the questions: `./vendor/bin/robo install --setup-wordpress`
3. Access your new site administration: `/wpcb/wp-admin/`

Configuration
-------------

[](#configuration)

- Edit `WP_UNHOOKED_CONFIG` constant, according to your needs, in [`config/application.php`](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php)
- Login page logo: Replace `./web/logo.png` with your application logo (or edit [`00-wp-cubi-core-mu/20-wp-login.php`](https://github.com/globalis-ms/wp-cubi/blob/master/web/app/mu-modules/00-wp-cubi-core-mu/src/20-wp-login.php))
- If your application uses a SMTP server for outgoing emails, configure it in `config/local.php`
- Image minification: Configure [globalis/wp-cubi-imagemin](https://github.com/globalis-ms/wp-cubi-imagemin) to enable a meaningfull level of uploads / image minification

wp-cron tasks
-------------

[](#wp-cron-tasks)

For an optimal wp-cron setup in production, apply following configuration :

- Set constant `DISABLE_WP_CRON` to `true` in `./config/environments/production.php`
- Add to your production server crontab :

```
*/1 * * * * /usr/bin/php8.4 /var/www/my-app/web/wpcb/wp-cron.php &>/dev/null

```

Notes :

- Be sure you adapt PHP binary path (with accurate version) and your application path in above command
- Using absolute paths is recommended

WordPress core automatic updates
--------------------------------

[](#wordpress-core-automatic-updates)

Even though WordPress does not comply with semantic versioning specification, core minor updates generally respect backward compatibility and could be applied automatically, for security purposes.

It can be done by adding to your staging and production server crontabs :

```
*/30 * * * *  /usr/bin/php8.4 /var/www/my-app/vendor/bin/wp core update --minor  &>/dev/null

```

Notes :

- Be sure you adapt PHP binary path (with accurate version) and your application path in above command
- Using absolute paths is recommended

This cron task will ensure, every 30 minutes, that WordPress instance running on server is up-to-date with latest minor version of its current branch.

This cron task will **not** automatically change roots/wordpress version in your composer.lock file.

To avoid unwanted rollbacks when deploying, wp-cubi deploy command will check before every deployment that you're about to deploy last minor version of your WordPress current branch. If not, it will invite you to abort deployment and run `./vendor/bin/robo wp:apply-available-patch`.

Commands
--------

[](#commands)

### wp-cli

[](#wp-cli)

- `./vendor/bin/wp ` (see [complete list](https://developer.wordpress.org/cli/commands/))

### Coding standards

[](#coding-standards)

- `./vendor/bin/phpcs [directory]` : Check coding standards (see [`./phpcs.xml`](https://github.com/globalis-ms/wp-cubi/blob/master/phpcs.xml))
- `./vendor/bin/phpcbf [directory]` : Fix coding standards auto-fixable violations

### Robo

[](#robo)

- `./vendor/bin/robo install [--setup-wordpress]`
- `./vendor/bin/robo configure`
- `./vendor/bin/robo build`
- `./vendor/bin/robo build:composer`
- `./vendor/bin/robo build:config`
- `./vendor/bin/robo build:htaccess`
- `./vendor/bin/robo wp:apply-available-patch`
- `./vendor/bin/robo wp:language-install [] [--activate]`
- `./vendor/bin/robo wp:language-update [] [--activate]`
- `./vendor/bin/robo wp:update-timezone`
- `./vendor/bin/robo wp:install-acf-pro [--username=""] [--password=""]`
- `./vendor/bin/robo feature:start `
- `./vendor/bin/robo feature:finish `
- `./vendor/bin/robo hotfix:start [--semversion=]`
- `./vendor/bin/robo hotfix:finish [--semversion=]`
- `./vendor/bin/robo release:start [--semversion=]`
- `./vendor/bin/robo release:finish [--semversion=]`
- `./vendor/bin/robo deploy   [--ignore-assets] [--ignore-composer]`
- `./vendor/bin/robo deploy:setup `
- `./vendor/bin/robo media:dump  [--delete]`
- `./vendor/bin/robo media:push  [--delete]`

WordPress plugins
-----------------

[](#wordpress-plugins)

wp-cubi handles WordPress plugin dependencies (including [wordpress.org](https://wordpress.org/) plugins) through Composer.

If you want to use plugins that are not available through [wordpress.org](https://wordpress.org/) or a public Composer repository, you have two options:

1. **Simplest:** Manually add the plugin in your `./web/app/modules/` directory, then whitelist it in your `./gitignore` file
2. **Recommanded:** Create a [private Composer repository](https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md) to host your plugin

Logs
----

[](#logs)

wp-cubi comes with [inpsyde/wonolog](https://github.com/inpsyde/Wonolog), which allows to log anything with a single line of code, and automatically writes logs for multiple events like PHP errors, DB errors, HTTP API errors, `wp_mail()` errors, and more.

Basic configuration is possible in wp-cubi [`./config/application.php`](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php) and [`./config/environments/`](https://github.com/globalis-ms/wp-cubi/tree/master/config/environments) files, where you can change the maximum number of log files and the log level.

For advanced configuration (adding channels or handlers), you can edit [`./web/app/mu-modules/00-wp-cubi-core-mu/src/00-wonolog.php`](https://github.com/globalis-ms/wp-cubi/blob/master/web/app/mu-modules/00-wp-cubi-core-mu/src/00-wonolog.php) (see [inpsyde/wonolog documentation](https://inpsyde.github.io/Wonolog/) and [monolog documentation](https://github.com/Seldaek/monolog/tree/master/doc))

Deploys
-------

[](#deploys)

wp-cubi provides a basic deploy command `./vendor/bin/robo deploy` that builds the application and deploys it with `rsync`.

You can build your own deploy method using [Deployer](https://deployer.org/), [Capistrano](https://capistranorb.com/) or any other tool by editing [`./RoboFile.php`](https://github.com/globalis-ms/wp-cubi/blob/master/RoboFile.php).

Where is the block editor gone ?
--------------------------------

[](#where-is-the-block-editor-gone-)

We use [globalis/wp-unhooked](https://github.com/globalis-ms/wp-unhooked) to disable a lot of things from WordPress core, such as block editor, REST-API, xmlrpc, comments, most of dashboard widgets and a few admin menus entries.

It allows your application to be cleaner, faster and lighter. It also improves security, by disabling potential attack routes when you don't need them.

If you need to activate one of those things, edit `WP_UNHOOKED_CONFIG` constant in [`config/application.php`](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php).

###  Health Score

63

—

FairBetter than 99% of packages

Maintenance95

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity96

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 98% 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 ~45 days

Recently: every ~260 days

Total

72

Last Release

23d ago

Major Versions

0.7.4 → 1.0.02019-10-14

PHP version history (10 changes)0.1.0PHP &gt;=5.6

0.4.2PHP &gt;=7.0

1.0.0PHP &gt;=7.1

1.0.2PHP &gt;=7.2

1.1.0PHP &gt;=7.4

1.4.0PHP &gt;=8.0 &lt;8.1

1.5.0PHP &gt;=8.0 &lt;8.2

1.6.0PHP &gt;=8.0 &lt;8.3

1.11.0PHP &gt;=8.1 &lt;8.4

1.12.0PHP &gt;=8.1 &lt;8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/dd8698f16f37576ccaab853278c3a85e7149237662d7062fea863574a5b8988c?d=identicon)[globalis](/maintainers/globalis)

---

Top Contributors

[![pierre-dargham](https://avatars.githubusercontent.com/u/6932545?v=4)](https://github.com/pierre-dargham "pierre-dargham (48 commits)")[![akramkies](https://avatars.githubusercontent.com/u/102603388?v=4)](https://github.com/akramkies "akramkies (1 commits)")

---

Tags

composerwordpressstackwprobowp-cubiglobalis

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/globalis-wp-cubi/health.svg)

```
[![Health](https://phpackages.com/badges/globalis-wp-cubi/health.svg)](https://phpackages.com/packages/globalis-wp-cubi)
```

###  Alternatives

[ronilaukkarinen/dudestack

A modern WordPress stack

1131.2k](/packages/ronilaukkarinen-dudestack)

PHPackages © 2026

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