Joomla Component

JoomShift

Export anything, import anywhere.

Export and import your site’s content between any two Joomla installations — modules, menus, articles, categories, custom fields, and users.

Joomla 3.4–3.10 & 4.0+/5.x/6.x
Two editions, one JSON format
Native ACL & CSRF protected
JoomShift

The problem

Joomla has no built-in way to move content between sites. Migrating today usually means recreating modules by hand, copy-pasting menu structures, re-entering articles one at a time, or fighting phpMyAdmin exports that break the moment two sites have slightly different database schemas.

What JoomShift does

JoomShift replaces all of that with select → export → upload → import, through a single tabbed admin screen.

select
→
export
→
upload
→
import

Editions & requirements

JoomShift ships as two separate installable packages that share the exact same JSON export format — a file exported from one can be imported into the other, in any direction (3→5, 5→3, 4→6, etc.).

J4/5/6 EditionJ3 Edition
Joomla versions4.0+, 5.x, 6.x3.4 – 3.10
PHP required8.1+5.6+
DatabaseMySQL 5.7+ / MariaDB 10.3+MySQL 5.5+ / MariaDB 10.0+
ArchitectureModern namespaced MVCClassic legacy MVC
Dark modeYes — adapts to Joomla native dark theme— (J3 admin has no dark theme)
Custom FieldsYes — full supportNot available
Modules / Menus / Articles / UsersYesYes

Feature breakdown

One panel per data type, matching the component’s own admin UI.

  • Export one, several, or all modules in a single action; filter by client (Site/Administrator)
  • Preserves full config: params, position, ordering, access level, language, publish state
  • Preserves menu assignment mappings
  • Automatic SP Page Builder detection — exports #__sppagebuilder content for mod_sppagebuilder so layouts survive the move
  • Overwrite toggle matches by ID or title+type instead of duplicating
  • Validates module type is installed on destination before importing; skips unsupported ones with a clear warning
  • Export selected items or an entire menu type in one click
  • Preserves parent-child hierarchy, item type, link, component, ordering, params, access rules
  • Automatic menu-type creation if destination doesn’t have the target menu
  • ID remapping keeps parent-child relationships correct even when IDs collide
  • Supports every menu item type: component links, URLs, aliases, separators, headings
  • Component validation — checks the target component is installed before importing; skips with a warning if missing
  • Export selected articles, everything, one category, or categories-only (structure without content)
  • Preserves intro/full text, metadata, URLs, featured flag, category assignment
  • Category hierarchy rebuilt correctly on import, not flattened
  • ZIP-based media export — real image files (not base64), covering intro/full images, inline <img> tags, and CSS background images (JPG, PNG, GIF, WebP, SVG, BMP, ICO up to 10MB)
  • Accepts both .zip and legacy .json exports
  • Custom Fields (J4/5/6 only) — captures every field group/definition, category restrictions, and actual saved values including multi-select/checkbox fields; media-type fields bundled into the same ZIP; recreates missing fields/groups on import automatically
  • Export selected users, or all users filtered by group
  • Preserves name, username, email, password hash, registration date, last visit, blocked status
  • Users can log in immediately after import — password hashes carried over as-is
  • Exports/restores user group assignments and the group definitions themselves
  • Exports/restores profile data (#__user_profiles)
  • Overwrite toggle matches by ID/username/email; duplicates auto-skipped without it
  • Cross-version compatibility via dynamic column-filtering (filterColumns()) against the destination schema
  • Pagination on every tab: 20/50/100/250 rows per page, built for large sites
  • Automatic batch export for anything over 500 items, split into sequential downloads to avoid memory/timeout limits
  • Native Joomla ACL (core.manage) gating, CSRF protection, image-only upload allowlist with path-traversal protection
  • Tabbed UI with stat cards, search/filter bars, drag-and-drop upload, native Joomla toolbar integration

How it works

Exporting

  1. Open Components → JoomShift
  2. Pick a tab: Modules, Menus, Articles, or Users
  3. Search/filter to narrow the list if needed
  4. Check items and Export Selected, or use Export All (scoped by client/menu type/category/group)
  5. Batches download automatically if scope exceeds 500 items
  6. A .json or .zip file downloads

Importing

  1. On the destination site, open Components → JoomShift, matching tab
  2. Click Import (toolbar or tab button)
  3. Drag the exported file onto the drop zone
  4. Optionally enable Overwrite existing items
  5. Click Start Import
  6. JoomShift reports exactly what was imported, updated, or skipped — and why

Typical migration

Joomla 3 → Joomla 5, step by step

  1. Install the J3 Edition on the old site
  2. Export Modules, Menus, Articles (with categories/custom fields where applicable), and Users
  3. Install the J4/5/6 Edition on the new Joomla 5 site
  4. Import each file in any order — dependencies and schema differences are resolved automatically

Security

Permissions

Every action gated behind Joomla’s native ACL (core.manage on the component)

Forms

CSRF protection on every form submission via Joomla’s session token system

Uploads

Media imports restricted to an explicit image-extension allowlist; extracted paths validated to stay inside the intended directory

Cleanup

Temporary files from import/export cleaned up automatically

Specifications

EditionJoomlaPHPDatabase
J4/5/6 Edition4.0.0+ / 5.x / 6.x8.1+MySQL 5.7+ / MariaDB 10.3+
J3 Edition3.4.0 – 3.105.6+MySQL 5.5+ / MariaDB 10.0+

Installation

  1. Download the ZIP package matching your Joomla version
  2. Joomla admin: System → Install → Extensions (J4/5/6) or Extensions → Extension Manager → Upload Package File (J3)
  3. Upload and install
  4. Find it under Components → JoomShift

FAQ

Yes — export from any supported version and import into any other; JoomShift adapts to schema differences automatically.

Get the edition that matches your Joomla version

Download J3 Edition

Both packages read and write the same JSON format, so you can mix editions across a migration.

Image

Everything you need to build on Joomla — one subscription away.

Resources