The site kit: design file to a launched WordPress site
- Built by
- Claude Design for the look, then Claude Code in Local
- Lands as
- Native Elementor V4 pages with global styles
- Edited by
- Anyone, in the Elementor editor
- Proven on
- A live client site, Oct 2026
A folder of instructions, templates, checklists and tools that Claude reads before it builds anything. The design and content change for each client; the process doesn’t. It covers the whole job, from an empty Local site to a launched domain with payments, email and DNS handled.
Copy the kit into each new site, fill in the blanks, and Claude follows the same rules, build order and checks every time. Start with what’s in it and how to begin, then work through Build, Launch and Fix it.
What’s in the kit
CLAUDE.mdRules + build order. Claude reads it first, every session.BUILD-LOG.mdWhat’s done, decisions, custom code, what’s left.page-spec.mdEvery page, section by section, with links.design-tokens.mdColors, fonts, sizes, radii, buttons.LAUNCH-PLAYBOOK.mdLocal → host → live, as checklists.LESSONS.mdEvery gotcha, with its fix.RESPONSIVE-PROMPT.mdPhones and tablets, desktop untouched.tools/DNS snapshot and email-recipient check.Every file is in , ready to copy.
Start a new site
- Design it in Claude Design first. Get the owner’s approval on every page there, where changes are quick and cheap. Export the approved design as HTML; it becomes the kit’s visual source of truth.
- Create the site in Local with HTTPS on. Note the PHP version; the host must match it.
- Make a
handoff/folder next toapp/and copy the kit into it. - Add the inputs:
reference/(the approved design, each page labeled by its URL), the filled-inpage-spec.mdanddesign-tokens.md,data/CSVs plus animage-map.csv, every image inimages/, and optional phone/tablet previews. - Fill in the site rules in
CLAUDE.md, and delete the optional parts that don’t apply. - Open Claude Code in the Local site folder and give it one instruction:
Read handoff/CLAUDE.md and follow it. Start with step 1 of the build order and check with me before moving to the next step.
Optional: connect Claude to Elementor first (WP Admin → Elementor → MCP) so it can build through Elementor’s own tools.
The rules that make it work
Site rules — per client
- Pricing, and what’s bought online vs. quoted.
- Contact details allowed on public pages.
- Names never to use (suppliers, manufacturers).
- Brand colors by product line.
- Shipping, tax, payments, business details, social links, email routing.
Standing rules — every site
- Claude never types passwords or keys; the owner pastes them in.
- No permanent deletes; trash and tell the owner.
- Downloads need permission; back up before editing data directly.
- Local is the source of truth; host-only fixes are scripts that also run on Local.
- Check in a real browser before saying “done”; stop for review every 4–5 pages.
Quality rules
Real Elementor widgets and containers, never one big HTML widget. Every color, font and size from the globals. Match the reference by measuring at 1440px, not by eye. Mockup-only code (placeholder images, fake forms, page switchers) is replaced with real WordPress features. All custom code lives in one must-use plugin, each piece numbered and explained in the build log.
Something broken? Jump to the fix
Pick what you’re seeing. It opens the lesson with the fix.
Plugins and every build step
The plugin stack the build ran on, the design step in Claude Design, the 15 build steps in Claude Code as they actually happened, the issues that came up along the way, and the mobile rule.
Each step lists what was done, which plugins it used, and any issue it hit, with a link to the fix.
The plugin stack
Everything the build ran on, what each piece did, and the one thing to watch with it.
Elementor + Elementor Pro
Every page, header, footer, form and pop-up, built as native atomic (V4) elements on global styles.
Watch: Pro license per site; reconnect after a domain change.
Hello Elementor
Near-empty theme, so global styles aren’t fighting theme CSS.
Watch: Nothing to configure; that’s the point.
WooCommerce
Products, cart, checkout, tax and shipping, plus Coming soon mode during review.
Watch: Share link breaks behind a page cache.
Request a Quote plugin (YITH Premium)
Quote-only product lines: quote button instead of price and Add to Cart.
Watch: Single-site license; Cc on its emails needs a filter.
Card payment gateway
Card payments, kept disabled until launch except one $1 live test.
Watch: Saving keys can reset other gateway settings.
Cloudflare Turnstile
Protects forms, login and checkout.
Watch: Every hostname must be allowed, or nothing submits.
FluentSMTP
Sends store and form emails through the real mail provider.
Watch: Connect on the host only; match SPF.
Rank Math
Titles, descriptions, sitemap and share images.
Watch: Needs full image URLs; set share images on key pages.
Cookie banner (e.g. Complianz)
Consent banner with the least-tracking default.
Watch: List every outside service in the Privacy Policy.
Must-use plugin
One file holding every piece of custom code, numbered and explained in the build log.
Watch: Template overrides need checking after plugin updates.
Claude DesignLocalClaude CodeWP EngineWP-CLI over SSHHeadless browser checksElementor MCP (optional)Step by step: what we did
The build as it actually happened: the design step in Claude Design, then the 15 build steps in Claude Code, with what was done, which plugins each used, and the issues that came up. Tick steps off when you reuse it; progress is saved.
- 00
Design it in Claude Design
Designed every page in Claude Design and iterated with the owner until it was approved, while changes were still quick. Exported the approved design as HTML into
handoff/reference/with each screen labeled by its URL, then pulled its colors, fonts and sizes intodesign-tokens.mdand its sections and links intopage-spec.md.Claude DesignHandoff to Claude CodeFrom here the approved design is the visual source of truth. Claude Code builds it in WordPress and matches it; it doesn’t redesign it.
- 01
Set up Local
Created the site with HTTPS on, installed Elementor + Pro on Hello Elementor, WooCommerce and the quote plugin, set permalinks to Post name.
LocalElementor ProHello ElementorWooCommerceIssue we hitA site built on http pushes to the host looking completely unstyled.
- 02
Load the globals
Loaded every color, font, type size, spacing step and radius from
design-tokens.mdinto Elementor Site Settings before any page existed.Elementor ProIssue we hitKit CSS lost to Elementor’s own rules on specificity; it needed
.elementor/.e-conprefixes and a helper script to write it. - 03
Media
Renamed every image and uploaded it with alt text from
image-map.csv. Nothing hotlinked.Media Library - 04
Store settings
Address, currency, tax shown as an amount (never the rate), pickup or quoted shipping, payment gateway installed but disabled.
WooCommercePayment gateway - 05
Imports
Products, locations, FAQs and documents imported from the CSVs, in order.
WooCommerce - 06
Quotes
Quote buttons on quote-only lines, with price and Add to Cart hidden there, and the quote form fields set.
Quote pluginIssue we hitA true Cc on quote and store emails needed the email-headers filter.
- 07
Header and footer
Theme Builder templates with the mega menus from the design; a hamburger with tap-to-open sections at 1024px and below.
Elementor Pro - 08
Templates
Single product, product archive and custom post type templates; plugin template overrides kept in the must-use plugin folder.
Elementor ProMust-use plugin - 09
Pages
Built in the order in
page-spec.md, matched to the reference at 1440px by measuring, with a stop for review every 4–5 pages.Elementor ProIssue we hitEditing page data directly left search and share images showing old content until the plain-HTML copy was rebuilt.
- 10
Forms and pop-ups
Elementor forms with notification recipients from the site rules, Turnstile on every form, timed pop-ups.
Elementor ProTurnstileIssue we hitThe pop-up blocked itself: “show up to X times” counted before it ever appeared.
- 11
Cart and checkout
Styled to match, with bought and quoted items handled separately and payment options in the right order.
WooCommercePayment gatewayIssue we hitPayment order lives in its own setting; only the real checkout shows the truth.
- 12
Legal and privacy
Privacy Policy listing every outside service, Terms, Accessibility, and a cookie banner.
Cookie banner - 13
SEO
Titles and descriptions, sitemap, redirects for old URLs, share images on key pages.
Rank MathIssue we hitPages without a featured image shared an icon, and root-relative links broke share images.
- 14
Review pass
Every page at 1440, 768 and 375px in a headless browser; every URL crawled for errors; build log updated.
Headless browser - 15
Launch
Pushed to the host, ran the post-push fixes, gave reviewers logins, ran the $1 payment test, connected email, moved licenses and the domain.
WP EngineFluentSMTPIssue we hitThe reviewer’s share link only opened the first page behind the host’s cache.
Mobile rule
Becomes a swipe carousel
- Product grids, feature cards, galleries, showcases.
- Location cards, “you may also need”, testimonials.
- Always with visible arrow buttons and a “1 of X” count, never a hidden-scrollbar strip.
Stays stacked
- FAQ accordions, every form, the footer.
- Long text, spec tables, document lists, cart and checkout.
- Long lists collapse into closed accordions with the item count.
Body text at least 16px, every tap target at least 44px, no sideways scrolling at any width. Work one page at a time with before/after screenshots at 375px and a 1440px check that desktop didn’t move. The full paste-in version is RESPONSIVE-PROMPT.md in the kit files.
Local → host → live
Eight phases as checklists, from the first push to the domain move. Written for Local + WP Engine; the order holds for any host.
Open a phase to tick its items. Progress is saved, so you can pick up where you left off.
Launch: Local → host → live
Written for Local + WP Engine; the order holds for any host. Open a phase to tick its items.
1. Before the first push +
2. Create the host environment +
3. Right after every push +
4. Reviewer access +
5. Payment live test (shops) +
6. Email sending +
7. Licenses after a domain change +
8. Domain move and go-live +
Lessons, by what you’re seeing
Every gotcha from the build, grouped by the symptom you’d notice, with the cause and the fix. Plus the testing habits that caught them.
Find the symptom, open it, and follow the fix. Read these before pushing, testing payments or moving DNS.
Lessons, by what you’re seeing
Each one cost real time once. Open the one that matches the symptom.
Pushes and hosting: the pushed site looks unstyled or old +
Local on http makes the push save the WordPress Address as http://. Browsers then block the styles on the https page. Turn on HTTPS in Local first; after a push, fix Settings → General, regenerate Elementor CSS, replace http:// with https://, clear the cache.
A database push replaces everything on the host: payment keys, license activations, host-only users, the mailer connection, anything built there. Local stays the source of truth; host-only changes go in a script that also runs on Local.
The host page cache can serve old pages for about 10 minutes. Test with ?nc=123 on the URL.
Over SSH there’s no user, so Elementor refuses saves. Always pass --user=1.
The admin email and the store “From” address come over as Local’s dev address. Change both after the first push.
Coming soon: the reviewer’s share link only opens the first page +
The host’s page cache ignores WooCommerce’s share cookie, so every page after the first is served as Coming soon.
Reviewers log in instead (seamless login or a Shop Manager user), or the host excludes the cookie from cache.
The public Coming soon page logs one Elementor console error. It disappears at launch.
Elementor V4: search or share images show old content +
Editing _elementor_data directly leaves Elementor’s plain-HTML copy stale. Rebuild it after direct edits.
Root-relative image links break share images, and pages without a featured image share their first picture, often an icon. Make URLs absolute and set a social image on key pages.
Kit CSS can lose to Elementor’s base rules. Prefix with .elementor / .e-con, and write kit CSS with a helper script.
Copy V4 formats (headings, links, form email fields) from an existing element instead of guessing.
Matching a reference usually comes down to line heights, list margins and indents. Measure both; aim for within 1px.
Pop-ups: the pop-up never shows, or shows too often +
Triggers can’t be combined with OR. Use a small script that opens the pop-up only when Elementor’s own rules allow it.
“Show up to X times” counting on open counts before it appears. Count on close and record showings yourself.
A fixed pop-up has no offsetParent; check with the pop-up’s own visibility method.
The built-in × is 16px. Give it a 44px tap area.
Payments: gateway settings changed after saving keys +
Live mode needs HTTPS, so key entry and the $1 test happen on the host.
Saving or activating keys can reset the payment page mode, method names and descriptions. Re-check the whole screen every time.
Payment method order is a separate setting. Check the real checkout.
A logged-in test fills checkout with that user’s details, so the confirmation goes to them.
Email: site emails don’t arrive +
Check MX and SPF first. An SPF record ending -all means only the listed provider can send.
Adding the business inbox as a WordPress user doesn’t let the site send as it. That needs the mailbox owner, the mail admin, or a verified sending service.
Store email “Recipient” takes a comma list; a true Cc needs the email-headers filter. V4 forms have their own To / Cc / Bcc.
Changing the admin email sends a notice to the old address.
Licenses: Elementor Pro shows “Mismatch” +
After a domain change, Disconnect then Connect & Activate on the new site. Other sites stay connected.
Premium plugins limited to one site must be deactivated on the old site first.
Turnstile: forms say “Unable to connect to website” +
Every hostname (Local, sandbox, live) must be listed in the widget’s Hostname Management, or checkout, login and forms can’t submit.
DNS: company email stopped after the domain move +
A public lookup can’t list every record. Export the zone file as well as running the snapshot script.
Copy MX, SPF, DKIM, DMARC, autodiscover and verification records before moving DNS.
Testing habits that paid off
Crawl every URL
Status, PHP output, old local addresses, http:// links.
Headless browser at 1440 and 375px
Console errors, failed requests, sideways scroll, tap-target sizes.
Side-by-side with the reference
Cropped per section, with measured section heights.
Emails without sending
Intercept pre_wp_mail so nothing goes out.
Real behavior for timed things
Fresh browser profile per pop-up scenario, expectations written down.
Optional: the Elementor MCP
Using the Elementor MCP with the kit (optional) +
WP Admin → Elementor → Elementor MCP → enable, choose Claude Code, generate the prompt and paste it into Claude Code. It needs the atomic editor (V4) on.
HTML-widget shortcuts instead of native elements, code folded into generic snippets, and Claude choosing prices. The kit’s rules already forbid all three; check anyway.
Elementor’s agent plugin handles the WordPress side (media, WooCommerce, ACF, PHP). Run one agent bridge per site, not two.
Every template and tool, plus a glossary
Read any kit file, copy it into a new site’s handoff/ folder, and look up any plugin or tool mentioned in the guides.
Bracketed items in the templates are filled in per client.
If you only remember this
Put the kit in a handoff folder, fill in the site rules, and let Claude follow the build order one checked step at a time. Local is the source of truth, Claude never touches passwords or keys, and every push is followed by the same fixes. Launch from the checklists, and read the lessons before pushing, testing payments or moving DNS.
The kit files
Pick a file to read it, then copy it into your new site’s handoff/ folder. Bracketed items are filled in per client.
# [SITE NAME] — WordPress build (Claude Code instructions)
> **Template.** Replace every `[BRACKETED]` item, delete the example lines you don't need, and save this as
> `handoff/CLAUDE.md` in the new site's Local folder. Sections marked *(optional)* can be deleted if they don't apply.
You are building the approved [SITE NAME] design as a real WordPress site in **Local**, using **Elementor Pro** on the
**Hello Elementor** theme[, with **WooCommerce**][ and **[QUOTE PLUGIN, e.g. YITH Request a Quote Premium]**]. Read
this whole file before doing anything, then follow the build order at the bottom. Re-read it at the start of every
session; you have no memory between sessions. `BUILD-LOG.md` is the record of what's already done.
## What's in this folder
| Path | What it is |
|---|---|
| `CLAUDE.md` | This file: rules and build order. |
| `BUILD-LOG.md` | What's built, what's left, every piece of custom code. Keep it current. |
| `LAUNCH-PLAYBOOK.md` | Pushing to the host, reviews, payments test, email, licenses, domain move, go-live. |
| `LESSONS.md` | Gotchas from earlier builds. Read it before pushing, testing payments or editing Elementor data directly. |
| `page-spec.md` | Every page: URL, sections in order, headings, buttons and links, which Elementor widget builds each part. |
| `design-tokens.md` | Colors, fonts, type scale, spacing, radii. Load these as Elementor globals first. |
| `reference/[DESIGN FILE].html` | The approved design. **Visual source of truth.** Each screen is wrapped in `data-wp-page="/slug/"`. |
| `data/*.csv` | Import files: [products, quote items, locations/dealers, FAQs, documents, image rename map…]. |
| `images/` | Every image the design uses. Rename per `data/image-map.csv` before uploading. |
| `mobile-guide/` *(optional)* | Phone/tablet previews to follow at 1024px and below. |
| `tools/` | Reusable scripts (DNS snapshot, email-recipient check, any build scripts you add). |
## Site rules (never break these)
Fill these in for the business. The examples show the kind of rule that saved time on earlier builds.
1. **Pricing:** [e.g. Retail prices only. Never show trade/wholesale prices. Under every price show "[PRICING NOTE]".]
2. **Contact details on public pages:** [e.g. No email address on any public page; phone [PHONE] and forms only. The
business inbox may appear only in form/notification settings.]
3. **Names never to use:** [e.g. supplier or manufacturer names that must not appear in product names, descriptions,
alt text, filenames or URLs.]
4. **Brand colors by product line:** [e.g. Color A = brand/product line 1; Color B = product line 2 only. Never mix
them on one component.]
5. **What can be bought online vs. quoted** *(optional, shops)*: [e.g. Line A → Add to Cart and checkout. Line B →
quote only, no price, no cart.]
6. **Shipping** *(optional)*: [e.g. pickup at [ADDRESS] (free) or "ship to my site (quoted)". No live rates.]
7. **Sales tax** *(optional)*: [rule, and what customers see, e.g. "Sales tax $X", never the rate or city.]
8. **Payments** *(optional)*: [gateway name; test/live keys; gateway disabled until launch except for one small live
test, which is voided the same day.]
9. **Business details:** [NAME] · [ADDRESS] · [HOURS] · [PHONE] · [languages, if shown].
10. **Social links:** [list, in order]. [Anything never to link.]
11. **Email routing:** [e.g. store and form notifications go To [OWNER EMAIL], Cc [SALES EMAIL]. Customer emails go
only to the customer.]
## How to build (quality rules)
- **Real Elementor widgets and containers.** Never paste a page as one big HTML widget. A small HTML/Code widget is
OK only for something no widget can do (e.g. a logo marquee); note it in `BUILD-LOG.md`.
- **Global styles.** Every color, font and size comes from the Elementor globals created from `design-tokens.md`. If
the design needs a one-off value, note it in `BUILD-LOG.md`.
- **Match the reference exactly**: copy, order, colors, spacing. When asked to match a section, compare it side by
side with the reference at 1440px and measure (heights, gaps, font sizes, line heights), don't eyeball it.
- **Images:** upload to the Media Library with the filename and alt text from `image-map.csv`. Never hotlink.
- **Mockup-only code in the reference isn't copied:** placeholder image slots, `localStorage`, page switchers, fake
form submissions, fake captchas. Replace with real WordPress/WooCommerce/Elementor features (Elementor Forms +
Cloudflare Turnstile for spam protection).
- **Custom code** lives in one must-use plugin (`wp-content/mu-plugins/[site]-site.php`), each piece numbered and
explained in plain English in `BUILD-LOG.md` → "Custom code used". Template overrides go in
`mu-plugins/[site]-templates/`. Styling goes in Elementor Site Settings → Custom CSS.
- **Visibility:** pages stay Draft until the owner approves, or the whole site stays behind WooCommerce
**Coming soon** mode with pages published (use one approach and record which in `BUILD-LOG.md`).
- **Keep `BUILD-LOG.md` current**: what was built, anything that couldn't be matched, every custom code piece, every
decision the owner made (with the date and their words when it matters).
## How Claude works on this project (standing rules)
- **Passwords and keys are never typed or pasted by Claude**, and never asked for in chat. The owner signs in, and
pastes API keys, license keys and payment keys into the site themselves.
- **No permanent deletes** (emptying trash, hard-deleting orders, posts or media). Move to trash and tell the owner.
- **Downloads need permission:** say what file, from where and why, then wait for a yes.
- **Back up before editing data directly** (page data, options, plugin files): save a copy in the scratchpad first.
- **Check before claiming done:** render the page in a real (headless) browser, screenshot it, and check console
errors, failed requests, sideways scrolling and 44px tap targets. Say plainly what was and wasn't checked.
- **Emails are tested without sending** (intercept `wp_mail`), unless the owner asks for a real test.
- **Local is the source of truth.** Anything built directly on a hosted copy (sandbox/staging) must also be added to
Local, or the next database push wipes it. Prefer a re-runnable script that works on both.
- **Mobile work changes 1024px and below only.** Desktop (1025px+) must not change unless asked.
- **Stop for review** every 4–5 pages, and whenever a request is ambiguous or a rule conflicts with the reference.
## Build order
Finish and check each step before moving on.
1. **Check setup:** WordPress, Elementor + Elementor Pro (licensed), Hello Elementor active, [WooCommerce], [quote
plugin (licensed)], Settings → Permalinks = Post name. **Turn on HTTPS in Local now** (see `LESSONS.md`).
2. **Globals:** colors, fonts, type scale, spacing and radii from `design-tokens.md` into Elementor Site Settings.
3. **Media:** rename and upload images per `image-map.csv`.
4. **Store settings** *(shops)*: address, currency, tax (rule 7), shipping (rule 6), payments (rule 8, disabled).
5. **Products / content imports:** [list the CSVs in order].
6. **Quotes** *(optional)*: quote buttons on quote-only categories; hide price and Add to Cart there; quote form fields
= [FIELDS].
7. **Header + footer:** Elementor Theme Builder templates; desktop mega menus/dropdowns as in the reference; mobile
hamburger with tap-to-open accordions.
8. **Templates:** single product, product archive, any custom post type templates.
9. **Pages:** in the order listed in `page-spec.md`.
10. **Forms & pop-ups:** [contact/quote, applications, submissions…]. Set notification recipients per rule 11.
11. **Cart & checkout** *(shops)*: styled to match; buy items and quote items handled separately.
12. **Legal & privacy:** Privacy Policy (list every outside service: maps, spam protection, fonts, video, payments),
Terms, Accessibility, disclaimers; cookie banner (e.g. Complianz) with the least-tracking default.
13. **SEO:** titles ~60 characters, descriptions ~155, share images on key pages, sitemap, redirects for old URLs.
14. **Review pass:** every page at 1440, 768 and 375px; every URL loads with no PHP warnings or JS errors; update
`BUILD-LOG.md`; tell the owner it's ready for review.
15. **Hosting and launch:** follow `LAUNCH-PLAYBOOK.md`.
## Mobile rule
Applies at **1024px and below only**. Never change the desktop layout (1025px and up) while doing mobile work.
**Breakpoints:** desktop 1025px+ · tablet 768–1024px · phone 767px and below.
**Header:** hamburger at 1024px and below. In the bar: logo, cart icon (shops), main call-to-action button. Dropdowns
become tap-to-open accordions inside the hamburger panel; no hover-only menus. Desktop-only top bars are hidden.
**Layout:**
- Multi-column sections stack into one column on phones.
- No fixed pixel widths, and nothing may cause sideways scrolling at any width.
- Images scale to their container (max-width 100%, object-fit cover).
- Side padding is about 20px on phones and 32px on tablets.
**Card rows become swipe carousels** (product grids, feature cards, galleries, showcases, location cards, "you may
also need", testimonials). Phone: one card with a peek of the next. Tablet: two cards with a peek. Swipe, plus visible
left/right arrow buttons. Desktop keeps its grid.
**Keep stacked (not carousels):** FAQ accordions, all forms, footer, long text, spec tables, document lists.
**Text and tap targets:** body text at least 16px on phones; buttons, links, menu items and form fields at least
44 × 44px.
**How to work:** one page at a time, with before/after screenshots at 375px plus a 1440px check that desktop didn't
change. Stop every 4–5 pages for review.
Tooling glossary
Nothing matches. Try another word or clear the filter.
Elementor
The page builder. Stores layout as JSON in _elementor_data postmeta and auto-generates per-page CSS from it.
The active theme
Supplies the base HTML skeleton and its own compiled CSS — often carrying global defaults that quietly compete with custom styles.
Local
Desktop app that runs WordPress on your computer. The source of truth for the build; pushes go from here to the host.
WP Engine
Managed WordPress host the launch playbook is written for. Sandboxes can’t take a custom domain; its page cache holds pages about 10 minutes.
Hello Elementor
Elementor’s near-empty theme, so the kit’s global styles aren’t fighting a theme’s CSS.
WooCommerce Coming soon
Hides the shop from the public while logged-in reviewers see everything. Its share link doesn’t survive a page cache.
Cloudflare Turnstile
Spam check on forms, login and checkout. Every hostname (Local, sandbox, live) must be allowed.
FluentSMTP
Connects site email to Microsoft 365, Google Workspace or a sending service, so store and form emails actually arrive.
Must-use plugin
A file in mu-plugins/ that always loads. The kit keeps every piece of custom code in one, numbered and explained.
WP-CLI
WordPress from the command line, used over SSH for host-only changes. Pass --user=1 or Elementor won’t save.
Rank Math
SEO plugin: titles, descriptions, sitemap and share images. Needs full image URLs.
Elementor MCP
Elementor’s official connector (4.3+) that lets Claude Code, Codex or Cursor build and edit pages as native, editable Elementor structure. Free to connect; saves everything as a draft.
Atomic editor (V4)
Elementor’s newer element system built on classes and variables. The MCP works with atomic structures, so it must be enabled.
Angie
Elementor’s AI agent plugin. Alongside the MCP it handles WordPress-level work: media library, WooCommerce, ACF, PHP and code snippets.
WordPress Abilities API
How plugins expose actions to AI tools. With Angie installed, the MCP can reach every registered ability, including WooCommerce’s.
ACF (Advanced Custom Fields)
Adds structured custom fields to posts and products. The free version has no repeater fields, so lists need a workaround.
CLAUDE.md
A rules file in the project folder that every new Claude session reads first, so project rules survive between sessions.
