PHPackages                             itzmekhokan/sitecargo - 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. [Database &amp; ORM](/categories/database)
4. /
5. itzmekhokan/sitecargo

ActiveWordpress-plugin[Database &amp; ORM](/categories/database)

itzmekhokan/sitecargo
=====================

SiteCargo — selectively promote WordPress FSE structure and content (patterns, templates, parts, global styles, navigation) between environments, without a full database migration.

0.1.1(1mo ago)00GPL-2.0-or-laterPHPPHP &gt;=7.4CI passing

Since May 30Pushed 1mo agoCompare

[ Source](https://github.com/itzmekhokan/sitecargo)[ Packagist](https://packagist.org/packages/itzmekhokan/sitecargo)[ Docs](https://github.com/itzmekhokan/sitecargo)[ RSS](/packages/itzmekhokan-sitecargo/feed)WikiDiscussions main Synced 1w ago

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

SiteCargo
=========

[](#sitecargo)

> Selectively promote WordPress FSE structure and content between environments — without a full database migration.

[![Packagist Version](https://camo.githubusercontent.com/13508dec5833858b96b7f4c00527b2f591b3c2789f499acaa34dfd24720fbdab/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69747a6d656b686f6b616e2f73697465636172676f3f6c6f676f3d7061636b6167697374266c6162656c3d5061636b6167697374)](https://packagist.org/packages/itzmekhokan/sitecargo)[![PHP](https://camo.githubusercontent.com/88915e11efe3afbcc4d0c59e73128a0b06eec3267ea18b50150fab73632ba98b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e342d3838393242463f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](composer.json)[![WordPress](https://camo.githubusercontent.com/33eaf6de800078314a98f9a6a97327ada6839579aad3d7e0dc7217e8fb6e9d4a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576f726450726573732d253345253344362e352d3231373539423f6c6f676f3d776f72647072657373266c6f676f436f6c6f723d7768697465)](readme.txt)[![License](https://camo.githubusercontent.com/cd781d0568c328bdea35f284d33e2b1e96675ef60910926c1dd75d5a4d46de66/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d322e302d2d6f722d2d6c617465722d626c7565)](LICENSE)[![Website](https://camo.githubusercontent.com/7373fddb5be5c358f385390124c4acf5e931bac4b5c4e97bda21f85fe0f95d94/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d69747a6d656b686f6b616e2e6769746875622e696f25324673697465636172676f2d344636424646)](https://itzmekhokan.github.io/sitecargo/)

🔗 **Website &amp; docs:**

WordPress full-site-editing structure (patterns, template parts, templates, global styles, navigation) lives in the database. Moving *some* of it from staging to production today means a full DB sync (destructive to orders/users/form entries) or manual copy-paste. **SiteCargo** packs exactly what you choose into a portable, git-trackable bundle and applies it elsewhere with stable identity, ID remapping, and media sideloading — never touching the data you didn't select.

> **Status:** `0.1.1` — early release. Patterns, templates, template parts, global styles, and navigation, with a full export→import loop. Not yet production-hardened.

How it works
------------

[](#how-it-works)

```
your-bundle/
├─ manifest.json              # schema version, source site, entity index + checksums
├─ entities/
│   └─ wp_block/.json    # one file per exported entity (verbatim content + references)
└─ media/
    ├─ .          # content-addressed media blobs (deduped)
    └─ media.json              # id → hash → url map for sideloading on import

```

Two ideas make it safe and repeatable:

- **Stable identity.** Standalone posts (patterns, navigation) are stamped with a portable UUID (`_sitecargo_guid`) so re-applying updates the same entity instead of duplicating it. Templates, parts, and global styles key on `theme + slug` instead, since those are file-or-DB by nature.
- **Reference rewriting.** Numeric IDs baked into block markup (image IDs, reusable-block refs, navigation refs, gallery ID lists) are extracted on export with their position in the block tree, then re-resolved to local IDs on import.

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

[](#installation)

SiteCargo is a WP-CLI tool — [WP-CLI](https://wp-cli.org/) is required to use it.

**Via Composer** (for Composer-managed sites such as [Bedrock](https://roots.io/bedrock/)):

```
composer require itzmekhokan/sitecargo
```

The `wordpress-plugin` package type installs it into `wp-content/plugins/sitecargo`. Then activate it:

```
wp plugin activate sitecargo
```

**From the WordPress.org Plugin Directory** (once approved): search for "SiteCargo" under **Plugins → Add New**, or `wp plugin install sitecargo --activate`.

**Manually:** download a [release](https://github.com/itzmekhokan/sitecargo/releases), unzip it into `wp-content/plugins/`, and activate.

Usage
-----

[](#usage)

```
# On the source: export structure into a bundle. The bundle is written under
# wp-content/uploads/sitecargo/; --dir is just the folder name.
wp sitecargo export --all --dir=my-bundle
wp sitecargo export --patterns --templates --parts --global-styles --navigation --dir=my-bundle
wp sitecargo export --patterns --slug=hero,call-to-action --dir=my-bundle

# On the target: preview what an import would change (no writes).
# --dir takes a name under uploads/sitecargo/, or a full path to a bundle
# copied over from another environment.
wp sitecargo diff --dir=my-bundle

# On the target: apply the bundle (remaps IDs, sideloads media).
wp sitecargo apply --dir=my-bundle --yes
```

Supported entity types: patterns (`wp_block`), templates (`wp_template`), template parts (`wp_template_part`), global styles (`wp_global_styles`), and navigation (`wp_navigation`). Templates/parts must be customized in the database to be exported — unedited theme-file templates ship with the theme already.

Roadmap
-------

[](#roadmap)

PhaseScopeStatus1`wp_block` patterns — export, media collection, reference extraction✅ done2aImport side — `diff` (dry-run) + `apply` with ID remapping &amp; media sideloading✅ done2bTemplates, template parts, global styles (theme+slug identity)✅ done3aNavigation menus (`wp_navigation`) + `wp:navigation` ref remapping✅ done3bSelected posts/CPTs by slug (+ `navigation-link` ID remapping)planned4Admin UI (checkbox tree + visual diff)planned5Direct site→site push over REST (application passwords)plannedDevelopment
-----------

[](#development)

```
composer install
composer test          # PHPUnit — needs the WP test library (see tests/bootstrap.php)
```

Tests use the WordPress PHPUnit harness. Set `WP_TESTS_DIR`, or run from a workspace where `wordpress-develop` is a sibling directory (the bootstrap will find it automatically).

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

[](#contributing)

Issues and pull requests are welcome:

- **Report a bug or request a feature:** [github.com/itzmekhokan/sitecargo/issues](https://github.com/itzmekhokan/sitecargo/issues)
- **Source &amp; releases:** [github.com/itzmekhokan/sitecargo](https://github.com/itzmekhokan/sitecargo)

Please run the test suite (`composer test`) and ensure it passes before opening a PR.

License
-------

[](#license)

GPL-2.0-or-later. See [LICENSE](LICENSE).

###  Health Score

31

—

LowBetter than 65% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity25

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 ~1 days

Total

2

Last Release

53d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13062380?v=4)[Khokan Sardar](/maintainers/itzmekhokan)[@itzmekhokan](https://github.com/itzmekhokan)

---

Top Contributors

[![itzmekhokan](https://avatars.githubusercontent.com/u/13062380?v=4)](https://github.com/itzmekhokan "itzmekhokan (14 commits)")

---

Tags

wordpressmigrationdeploymentstagingfseblock-themes

### Embed Badge

![Health badge](/badges/itzmekhokan-sitecargo/health.svg)

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

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.5k10](/packages/helsingborg-stad-municipio)[wp-media/wp-rocket

Performance optimization plugin for WordPress

7531.3M4](/packages/wp-media-wp-rocket)[andreyryabin/sprint.migration

bitrix migration module

207208.2k2](/packages/andreyryabin-sprintmigration)[dragon-code/laravel-deploy-operations

Performing any actions during the deployment process

244226.1k2](/packages/dragon-code-laravel-deploy-operations)[dbout/wp-orm

WordPress ORM with Eloquent.

12910.3k1](/packages/dbout-wp-orm)[olliejones/index-wp-mysql-for-speed

Speed up your WordPress site by adding high-performance keys (database indexes) to your MySQL database tables.

1491.9k](/packages/olliejones-index-wp-mysql-for-speed)

PHPackages © 2026

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