Migrates Elementor-built WordPress pages to Bricks Builder by reading JSON widget trees from post meta, mapping widgets to Bricks equivalents, generating approval plans, and writing Bricks JSON to target pages.
npx claudepluginhub respira-press/agent-skills-wordpressThis skill uses the workspace's default tool permissions.
Converts Elementor-built WordPress pages to Bricks Builder. Reads Elementor's JSON widget tree from post meta, maps each widget to its closest Bricks element equivalent, generates a migration plan for approval, and writes clean Bricks JSON to the target pages. Use this skill whenever someone wants to move from Elementor to Bricks, rebuild Elementor pages in Bricks, or switch page builders from ...
Migrates WPBakery Page Builder pages to Bricks Builder by parsing vc_* shortcodes from post_content, mapping elements to Bricks JSON equivalents, generating a migration plan, and writing to target pages.
Edit Elementor pages on WordPress sites: WP-CLI for text/image updates, browser automation for styling, layouts, sections, and templates.
Converts React/HTML/Next.js codebases into pixel-perfect WordPress themes with preserved SEO, dynamic CMS features, and strict UI audits. Use for high-fidelity frontend-to-WP migrations.
Share bugs, ideas, or general feedback.
Converts Elementor-built WordPress pages to Bricks Builder. Reads Elementor's JSON widget tree from post meta, maps each widget to its closest Bricks element equivalent, generates a migration plan for approval, and writes clean Bricks JSON to the target pages. Use this skill whenever someone wants to move from Elementor to Bricks, rebuild Elementor pages in Bricks, or switch page builders from Elementor to Bricks.
Elementor and Bricks are both visual page builders, but they store content in fundamentally different formats — Elementor uses a nested JSON widget tree in _elementor_data, while Bricks uses a flat-ish JSON array in _bricks_page_content_2. This skill bridges that gap by reading every Elementor widget, understanding its purpose, and recreating it as the appropriate Bricks element.
Handles:
Preserves:
Elementor stores page content in the _elementor_data post meta field as a JSON string. The structure is a nested tree:
Document
└─ Section (type: "section")
├─ settings: { structure, layout, content_width, ... }
└─ elements: [
Column (type: "column")
├─ settings: { _column_size, ... }
└─ elements: [
Widget (type: "widget", widgetType: "heading")
└─ settings: { title, size, header_size, ... }
]
]
Key Elementor specifics:
widgetType field (e.g., heading, text-editor, image, button)margin, margin_tablet, margin_mobile_elementor_css post meta — not needed for migration but useful for verification_elementor_page_settings (page layout, hide title, etc.)templateID — must be resolved before mappingRead Elementor content via wordpress_extract_builder_content with builder=elementor.
Bricks stores content in _bricks_page_content_2 as a JSON array. Each element is a flat object with parent references:
[
{ "id": "abc123", "name": "section", "parent": 0, "settings": {...} },
{ "id": "def456", "name": "container", "parent": "abc123", "settings": {...} },
{ "id": "ghi789", "name": "heading", "parent": "def456", "settings": { "tag": "h2", "text": "..." } }
]
Key Bricks specifics:
name (not widgetType): section, container, heading, text-basic, image, button, video, iconparent field referencing parent idtag not header_size, text not title)_breakpoints key within settingsWrite Bricks content via wordpress_inject_builder_content with builder=bricks.
wordpress_get_site_context. If unavailable, stop and show setup guidance.wordpress_list_plugins.wordpress_get_site_context.wordpress_list_pages and wordpress_list_postswordpress_get_builder_infowordpress_extract_builder_content with builder=elementorPresent a clear migration plan:
## Elementor → Bricks Migration Plan
### Site Inventory
- Total Elementor pages: X
- Total widgets to convert: X
- Auto-convertible widgets: X (Y%)
- Manual attention needed: X (Y%)
### Widget Mapping Summary
| Elementor Widget | Bricks Element | Status |
|-----------------|----------------|--------|
| heading | heading | Auto |
| text-editor | text-basic | Auto |
| image | image | Auto |
| [addon widget] | — | Manual |
### Page-by-Page Plan
1. **[Page Title]** — X widgets, [simple/moderate/complex]
- Auto-convertible: X widgets
- Needs attention: [list any flagged widgets]
2. ...
### Flagged Items (Require Manual Work)
- [List of third-party widgets, dynamic tags, etc.]
Ask for confirmation:
Ready to proceed? I'll create Bricks duplicates of each page — your original Elementor pages stay untouched.
- Migrate all pages
- Migrate specific pages (pick from list)
- Start with a test page first
- Just keep this plan as reference
For each approved page:
wordpress_extract_builder_content with builder=elementorsectioncontainer (assign parent)_tablet, _mobile) to Bricks breakpoint format<!-- MIGRATION NOTE: ... --> commentsid, name, parent, settingswordpress_create_page_duplicate or wordpress_create_post_duplicatewordpress_inject_builder_content with builder=bricksThis skill converts Elementor page content to Bricks Builder format and creates draft duplicates for review.
It cannot:
It can:
Core WordPress tools
wordpress_get_site_contextwordpress_list_pluginswordpress_list_pageswordpress_list_postswordpress_read_pagewordpress_read_postwordpress_get_builder_infowordpress_extract_builder_contentwordpress_inject_builder_contentwordpress_find_builder_targetswordpress_create_page_duplicatewordpress_create_post_duplicateAfter run completion, send fire-and-forget usage tracking to:
POST https://www.respira.press/api/skills/track-usageInclude:
skill_slug = migrate-elementor-to-bricksNever block user flow on telemetry failure.
Built by Respira Team https://respira.press/skills/migrate-elementor-to-bricks